版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、河南理工大學(xué) 畢業(yè)設(shè)計(jì)(論文)題 目 基于單片機(jī)的交通信號(hào)燈設(shè)計(jì)基于MSC-51單片機(jī)的交通信號(hào)燈的設(shè)計(jì) 摘要: 根據(jù)MSC-51單片機(jī)的特點(diǎn)及交通燈在實(shí)際控制中的特點(diǎn),本文提出一種用單片機(jī)自動(dòng)控制交通燈及時(shí)間顯示的方法。同時(shí)給出了軟硬件設(shè)計(jì)方法設(shè)計(jì)過程包括硬件電路設(shè)計(jì)和程序設(shè)計(jì)兩大步驟,對在單片機(jī)應(yīng)用中可能遇到的重要技術(shù)問題都有涉足。本文對十字路口狀態(tài)預(yù)設(shè)為兩種,一種是正常狀態(tài),另一種是故障或緊急狀態(tài),并分別用黃、紅、綠色燈的不同組合來表示。本文介紹了控制基本原理以及控制的表現(xiàn),同時(shí)也介紹了城市交通信息系統(tǒng)的設(shè)計(jì)目標(biāo), 開發(fā)途徑及其系統(tǒng)結(jié)構(gòu)與功能和數(shù)據(jù)地理編碼、建庫, 同
2、時(shí)論述了系統(tǒng)中交通現(xiàn)狀、交通管理、交通規(guī)劃及背景信息查詢模塊的建造及應(yīng)用。介紹了用于城市交叉路口的三色程控交通信號(hào)時(shí)間顯示器的研制方案,對其電源供電、發(fā)光二極管構(gòu)成的負(fù)載結(jié)構(gòu)、燈色時(shí)間檢測都給出了精巧合理的優(yōu)化結(jié)構(gòu),大幅度地提高了產(chǎn)品可靠性并降低了制造成本關(guān)鍵詞:MSC-51單片機(jī);交通燈;自動(dòng)控制;時(shí)間顯示器;軟件;硬件;定時(shí)器;延時(shí);外部中斷 1 緒論 單片微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是一種非?;钴S和頗具生命力的機(jī)種。單片微型計(jì)算機(jī)簡稱單片機(jī),特別適合應(yīng)用于控制領(lǐng)域。 通常單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含計(jì)算機(jī)的基本功能部件:CPU、存儲(chǔ)器、I/O接口電路、定時(shí)
3、/計(jì)數(shù)器、串行口等。因此,單片機(jī)只需要在適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。MSC-51系列單片機(jī)是英特爾公司于1980年起推出的第二代產(chǎn)品。與8084相比,8051的硬件結(jié)構(gòu)和指令系統(tǒng)均有很大改進(jìn),可支持更大的存貯空間,擴(kuò)充了更多的硬件功能I/O功能,速度提高了2- 5倍,可完成邏輯運(yùn)算等。近年來推出的一些增強(qiáng)的MSC-51系統(tǒng)單片機(jī),片內(nèi)還集成了許多特殊功能單元,只需要加一些擴(kuò)展電路及必要的通道接口即可構(gòu)成各種計(jì)算機(jī)應(yīng)用系統(tǒng)。因此,MSC-51系統(tǒng)單片機(jī)在智能儀表、智能接口、功能模塊等領(lǐng)域得到了非常廣泛的應(yīng)用。 主要技術(shù)特性: 1.適于控制應(yīng)用的8位CPU。 2.擴(kuò)展的
4、邏輯處理能力。 3.64KB程序存貯器空間和64KB數(shù)據(jù)存貯器空間。 4.4KB片內(nèi)程序存貯器。 5.128B片內(nèi)數(shù)據(jù)RAM。 6.32根雙向和可單獨(dú)尋址的輸入輸出線。7.2個(gè)16位定時(shí)/計(jì)數(shù)器,片內(nèi)時(shí)鐘發(fā)生器。 8.全雙工異步發(fā)送/接收器。 9.6源5向量中斷結(jié)構(gòu),具有兩個(gè)優(yōu)先級。 圖1.1 8051引腳圖 單片微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是一種非?;钴S和頗具生命力的機(jī)種。單片微型計(jì)算機(jī)簡稱單片機(jī),特別適合應(yīng)用于控制領(lǐng)域。 通常單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含計(jì)算機(jī)的基本功能部件:中央處理器 CPU,存儲(chǔ)器 I/O 接口電路等。因此,單片機(jī)只需要在適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合
5、,便可成為一個(gè)單片機(jī)控制系統(tǒng)。 由于單片機(jī)是把微型計(jì)算機(jī)主要部件都集成在一塊芯片上,即一塊芯片就是一個(gè)微型計(jì)算機(jī)。因此,單片機(jī)具有以下特點(diǎn): 1.控制功能強(qiáng)。為了滿足工業(yè)控制要求,單片機(jī)系統(tǒng)的指令系統(tǒng)中均有極其豐富條件分支轉(zhuǎn)移指令,較強(qiáng)的 I/O 邏輯操作及位處理功能,因而其控制靈活,方便,容易滿足工業(yè)控制的要求。 2.抗干擾能力強(qiáng),可靠性好。單片機(jī)集成度高,體積小,內(nèi)部采用總線結(jié)構(gòu),減少了芯片間內(nèi)部之間的連線, 大大提高了單片機(jī)可靠性和抗干擾能力,適宜于惡劣環(huán)境下工作。 3.性能價(jià)格比高。單片機(jī)功能豐富,價(jià)格僅為 530 元。 4.易擴(kuò)展。片內(nèi)具有計(jì)算機(jī)正常運(yùn)行所必須的部件,片外有許多供擴(kuò)展
6、使用的三總線并行,串行輸入輸出管腳,很容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng)。 5.低功耗,低電壓。一般單片機(jī)的功耗僅為 20100mW,電壓為 26V,便于生產(chǎn)便攜式產(chǎn)品。 方案論證 隨著人民的生活水平不斷的提高,城市交通問題越來越引起人們的關(guān)注。人、車、路三者關(guān)系的協(xié)調(diào),已成為交通管理部門需要解決的重要問題之一。 優(yōu)越舒適的生活環(huán)境時(shí)刻吸引著收入不斷增加的人群,導(dǎo)致城市機(jī)動(dòng)車量的不斷增加,而城市道路在構(gòu)造上的特點(diǎn),也決定了城市高速道路的交通狀況必然受高速道路與普通道路耦合處交通狀況的制約。所以,如何采用合適的控制方法,最大限度利用好耗費(fèi)巨資修建的城市高速道路,緩解主干道與匝道、城區(qū)同周邊地區(qū)的交通擁堵
7、狀況,越來越成為交通運(yùn)輸管理和城市規(guī)劃部門亟待解決的主要問題。為此,本文就城鄉(xiāng)交通信號(hào)燈的電路原理、設(shè)計(jì)計(jì)算和實(shí)驗(yàn)調(diào)試等問題來進(jìn)行具體分析討論。 2.1對控制系統(tǒng)的要求 主支線路口的交通信號(hào)燈:主干道為南北兩道,支干道為東西兩道。正常情況下主干道綠燈亮18秒,支干道紅燈亮20秒,主干道綠燈亮完后轉(zhuǎn)為黃燈亮(閃爍亮)為2秒,黃燈亮完后轉(zhuǎn)為紅燈亮18秒,同時(shí)支干道有紅燈轉(zhuǎn)為綠燈亮16秒。支干道綠燈亮完后轉(zhuǎn)為黃燈(閃爍亮)為2秒,黃燈亮完后轉(zhuǎn)為紅燈亮20秒,同時(shí)主干道轉(zhuǎn)為綠燈亮18秒。有急救車到達(dá)時(shí),兩個(gè)方向交通信號(hào)燈全紅,以便讓急救車通過。設(shè)急救車通過路口時(shí)間可認(rèn)為控制,急救車通過后,交通恢復(fù)正常
8、。對主干道設(shè)置強(qiáng)制通行控制,視主干道交通擁擠狀況,可臨時(shí)安排主干道的通行,以保證交通的暢通。 2.2 方案選取 方案一 運(yùn)用電子電路設(shè)計(jì)。該方案主要用到了狀態(tài)控制器,狀態(tài)譯碼器,秒信號(hào)發(fā)生器,減法計(jì)數(shù)器等。狀態(tài)控制器主要用于記錄十字路口交通燈的工作狀態(tài),通過狀態(tài)譯碼器分別點(diǎn)亮相應(yīng)狀態(tài)的信號(hào)燈。秒信號(hào)發(fā)生器產(chǎn)生整個(gè)定時(shí)系統(tǒng)的時(shí)基脈沖,通過減法計(jì)數(shù)器完成狀態(tài)轉(zhuǎn)換,同時(shí),狀態(tài)譯碼器根據(jù)系統(tǒng)下一個(gè)工作狀態(tài),決定計(jì)數(shù)器下一次減法計(jì)數(shù)的初始值。減法計(jì)數(shù)器的狀態(tài)由BCD碼譯碼器譯碼、數(shù)碼管顯示。在黃燈亮其間,狀態(tài)譯碼器將秒脈沖引入黃燈控制電路,使黃燈閃爍。 狀態(tài)控制器主要采用二位二進(jìn)制計(jì)數(shù)器。狀態(tài)譯碼器的紅
9、黃綠燈的狀態(tài)主要取決于狀態(tài)控制器的輸出狀態(tài),他們之間的關(guān)系見真值表,對于信號(hào)燈的狀態(tài),“1”表示燈亮,“0”表示燈滅。表2.1 真值表狀態(tài)控制器輸出主干道信號(hào)燈支干道信號(hào)燈Q2Q1R(紅)Y(黃)G(綠)r(紅)y(黃)g(綠)00001100010101001010000111100010 現(xiàn)選擇半導(dǎo)體發(fā)光二極管模擬交通燈,由于門電路的帶灌電流的能力一般比帶拉電流的能力強(qiáng),要求門電路輸出低電平時(shí)點(diǎn)亮相應(yīng)的發(fā)光二極管。當(dāng)黃燈亮?xí)r,紅燈按1HZ的頻率閃爍。從狀態(tài)譯碼器真值表中看出,黃燈亮?xí)r,Q1為高電平,而紅燈亮信號(hào)與Q1無關(guān)?,F(xiàn)利用Q1信號(hào)去控制一個(gè)三態(tài)門電路74LS245(或模擬開關(guān)),當(dāng)Q
10、1為高電平時(shí),將秒信號(hào)脈沖引到驅(qū)動(dòng)紅燈得與非門輸入端,使紅燈在其黃燈亮其閃爍;反之將其隔離,紅燈信號(hào)不受黃燈信號(hào)得影響 。 產(chǎn)生秒信號(hào)的電路有多種形式,該設(shè)計(jì)是利用555定時(shí)器組成得秒信號(hào)發(fā)生器。對于該控制系統(tǒng)的調(diào)試,比較復(fù)雜,首先調(diào)試秒信號(hào)發(fā)生器,用示波器監(jiān)視秒信號(hào)發(fā)生器的輸出,調(diào)節(jié)電位器RW,使輸出信號(hào)的周期為1S。直接將秒信號(hào)引入狀態(tài)控制器脈沖輸入端,在脈沖作用下,模擬三色信號(hào)燈。將秒信號(hào)引入定時(shí)系統(tǒng)電路脈沖輸入端,在秒脈作用下,將三個(gè)74LS245的值數(shù)選通端以此接地,計(jì)數(shù)器三個(gè)不同的置數(shù)輸出為進(jìn)制體制完成減法計(jì)數(shù),兩位數(shù)碼管應(yīng)有相應(yīng)的顯示。把各個(gè)單元電路互相連接起來,進(jìn)行系統(tǒng)連調(diào)。
11、方案二 單片機(jī)控制系統(tǒng)。如用8位單片機(jī)AT89C51為控制器,組成交通信號(hào)燈系統(tǒng)。利用單片機(jī)的I/O口來完成信號(hào)的輸入和轉(zhuǎn)換,最終的顯示結(jié)果通過LED數(shù)碼管顯示出來,另外設(shè)置兩個(gè)按鈕來進(jìn)行交通路口的應(yīng)急處理及主干道強(qiáng)制通行處理。 硬件方面利用AT89C51的一個(gè)I/O口(P1口)驅(qū)動(dòng)黃綠紅燈,本裝置用發(fā)光二極管來代替交通燈??紤]到簡化驅(qū)動(dòng)電路,6個(gè)LED發(fā)光管直接通過P1口灌電流的方式驅(qū)動(dòng)。4個(gè)LED數(shù)碼管采用共陽、動(dòng)態(tài)顯示的方式,字型口串聯(lián)限流電阻510歐姆接到P0口,字位口通過4個(gè)PNP的三極管驅(qū)動(dòng)并控制,用于動(dòng)態(tài)掃描,分別通過P2.0P2.3控制。計(jì)時(shí)方面以秒作為基本計(jì)時(shí)單位,可用AT8
12、9C51的定時(shí)、計(jì)數(shù)器來實(shí)現(xiàn)。交通路口應(yīng)急處理及主干道強(qiáng)制通行處理,可利用中斷方式響應(yīng)。紅綠燈亮滅時(shí)間的控制及閃爍方式的控制,完全可通過程序方式實(shí)現(xiàn)。本方案用單次脈沖申請中斷,表示有急救車通過。編制中斷處理程序要注意的問題是:保護(hù)進(jìn)入中斷時(shí)的狀態(tài)(保護(hù)現(xiàn)場),并在退出中斷之前恢復(fù)進(jìn)入時(shí)的狀態(tài)(恢復(fù)現(xiàn)場)。 由以上兩個(gè)方案相比較可以看出,利用單片機(jī)AT89C51所設(shè)計(jì)的交通燈比利用電子電路所設(shè)計(jì)的交通燈具有明顯的優(yōu)越性。利用AT89C51單片機(jī)控制的硬件電路比較簡單,軟件方面程序也不復(fù)雜。因此制作的原理簡單,但功能作用并不低于電子電路設(shè)計(jì)的,方便小巧又通俗易懂。因此,我選擇利用單片機(jī)來控制交通燈
13、。 相關(guān)電子器件介紹 3.1 雙極型晶體三極管 半導(dǎo)體三極管也稱晶體三極管,是電子電路中重要的部分。它最主要的功能是電流放大和開關(guān)作用。三極管顧名思義具有三個(gè)電極。二極管是由一個(gè)PN結(jié)構(gòu)成的,而三極管由兩個(gè)PN結(jié)構(gòu)成,共用的一個(gè)電極成為三極管的基極。其他兩個(gè)電極成為集電極和發(fā)射極。 三極管最基本的作用是放大作用,它可以把微弱的電信號(hào)轉(zhuǎn)換成一定的強(qiáng)度的信號(hào)。三極管有一種重要參數(shù)就是電流放大倍數(shù)。 當(dāng)三極管應(yīng)用于開關(guān)狀態(tài)時(shí),必須保證導(dǎo)通時(shí)三極管處于飽和,其發(fā)射極、集電極正偏;斷開時(shí)三極管處于截止,其發(fā)射極、集電極反偏。 3.2 LED七段數(shù)碼管顯示器 發(fā)光二極管LED是一種通電后能發(fā)光的半導(dǎo)體器件
14、,其導(dǎo)電性質(zhì)與普通二極管類似。LED數(shù)碼顯示管就是由發(fā)光二極管組合而成的一種新型顯示器件,在單片機(jī)系統(tǒng)中應(yīng)用非常普遍。它使用了8個(gè)LED發(fā)光二極管,其中7個(gè)顯示字符,1個(gè)顯示小數(shù)點(diǎn),故通常稱之為7段發(fā)光二極管數(shù)碼顯示器。 為了顯示字符,要為 LED顯示器提供段碼(或稱字形代碼),組成一個(gè)“8”字形的7段,再加上1個(gè)小數(shù)點(diǎn)位,共計(jì)8段,因此提供給LED顯示的段碼為1個(gè)字節(jié)。各段碼位的對應(yīng)關(guān)系如下:表3.1 各段碼位的對應(yīng)關(guān)系段碼位 D7 D6 D5 D4 D3 D2 D1 D0 顯示段 dp g f e d c b a 用LED顯示十六進(jìn)制數(shù)和空白字符與P的顯示段碼表格3.2 顯示段碼所示。表3
15、.2 顯示段碼字型 共陽極段碼 字型 共陽極段碼 0 C0H 9 90H 1 F9H A 88H 2 A4H b 83H 3 B0H C C6H 4 99H d A1H 5 92H E 86H 6 82H F 84H 7 F8H 空白 FFH 8 80H P 8CH LED數(shù)碼顯示器是1種由LED發(fā)光二極管組合顯示字符的顯示器件,它使用了8個(gè)LED發(fā)光二極管。 LED數(shù)碼顯示器有兩種連接方法: 共陽極接法:把發(fā)光二極管的陽極連在一起構(gòu)成公共陽極,使用時(shí)公共陽極接+5 V, 每個(gè)發(fā)光二極管的陰極通過電阻與輸入端相連。當(dāng)陽極端輸入低電平時(shí),段發(fā)光二極管就導(dǎo)通點(diǎn)亮,而輸入高電平時(shí)則不點(diǎn)亮。 共陽極
16、顯示段碼 圖3.1 LED數(shù)碼顯示器的顯示段碼 LED數(shù)碼管顯示電路:該顯示電路由7段共陽數(shù)碼管,限流電阻,三極管,基極電阻,P0口,P2口等組成。P0口通過與8個(gè)510電阻與數(shù)碼管的8個(gè)數(shù)據(jù)位相連,送顯示數(shù)碼。電阻即可起到限流作用,又可起到上拉電阻的作用。P2口的P2.0P2.3通過4個(gè)4.7k的電阻和4個(gè)三極管與4個(gè)7段數(shù)碼管相連,起位選的作用。 控制器AT89C51的功能特征 4.1 引腳說明圖4.1 引腳圖 VCC:供電電壓。 GND:接地。 P0口:8位雙向I/O口。在訪問外部存儲(chǔ)器時(shí),P0口用于分時(shí)傳送低8位地址(地址總線)和8位數(shù)據(jù)信號(hào)(數(shù)據(jù)總線)。P0口能驅(qū)動(dòng)8個(gè)LSTTL門。
17、在不接外ROM和外RAM時(shí),P0口可做雙向I/O口用。 P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位準(zhǔn)雙向I/O口,P1口負(fù)載能力為4個(gè)LSTTL門。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。 P2口:8位準(zhǔn)雙向I/O口。在訪問外部存儲(chǔ)器時(shí),P2口用于傳送高8位地址。P2口負(fù)載能力為4個(gè)LSTTL門。 P3口:8位準(zhǔn)雙向I/O口??勺鲆话鉏/O口用,同時(shí)P3口每一引腳還具有第二功能,用于特殊信號(hào)輸入輸出和控制信號(hào)(屬控制總線)。P3口第二功能如下。 P3.0-RXD (串行輸入口) P3.1-TXD (串行輸出口) P3.2-
18、/INT0 (外部中斷0) P3.3-/INT1 (外部中斷1) P3.4-T0 (定時(shí)/計(jì)數(shù)器0外部輸入) P3.5-T1 (定時(shí)/計(jì)數(shù)器1外部輸入) P3.6-/WR (外部數(shù)據(jù)存儲(chǔ)器寫選通) P3.7-/RD (外部數(shù)據(jù)存儲(chǔ)器讀選通) P3口負(fù)載能力為4個(gè)LSTTL門。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ALE、/PROG:正常使用為ALE功能,用來鎖存P0口送出的低8位地址。P0口一般分時(shí)傳送低8位地址還是8位數(shù)據(jù)地址呢?當(dāng)ALE信號(hào)有效時(shí),P0口傳送的是低8位地址信號(hào);ALE信號(hào)無效時(shí),P0口傳送的是8位數(shù)據(jù)信號(hào)。通常在ALE信號(hào)的下降沿,
19、鎖定P0口傳送的內(nèi)容,即低8位地址信號(hào)。需要指出的是,當(dāng)CPU不執(zhí)行訪問外RAM指令(MOVX)時(shí),ALE以時(shí)鐘振蕩頻率1/6的固定速率輸出,因此ALE信號(hào)也可作為外部芯片CLK時(shí)鐘或其他需要。但是,當(dāng)CPU執(zhí)行MOVX指令時(shí),ALE將跳過一個(gè)ALE脈沖。 ALE端可驅(qū)動(dòng)8個(gè)LSTTL門電路。 /PROG在固化片內(nèi)存儲(chǔ)器的程序(也稱為“燒錄程序”)時(shí),此引腳用于輸入編程脈沖,此時(shí)為低電平有效。 /PSEN:外ROM的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外RAM或內(nèi)ROM時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。 /EA、VPP:正常工作時(shí),/EA為內(nèi)外R
20、OM選擇端。MCS-51型單片機(jī)ROM尋址范圍為64KB,其中4KB在片內(nèi),60KB在片外。當(dāng)/EA保持高電平時(shí),先訪問內(nèi)ROM,但當(dāng)PC(程序計(jì)數(shù)器)值超過4KB時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行外ROM中的程序。當(dāng)/EA保持低電平時(shí),則只訪問外ROM,不管芯片內(nèi)有否內(nèi)ROM。對80C31芯片,片內(nèi)無ROM,因此/EA必須接地。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。 4.2 復(fù)位電路 按鍵復(fù)位:與AT89C51的RESET腳相連,復(fù)位電路如圖: 圖4.2 復(fù)位電路圖 在加電的瞬間,電容通過電阻充電,就在RST端出現(xiàn)一定寬度的高電平,根據(jù)時(shí)間長數(shù)=RC
21、,設(shè)置R和C的大小使20ms就可以使單片機(jī)有效的復(fù)位。此復(fù)位電路在程序運(yùn)行期間還可以手動(dòng)復(fù)位,即按住開關(guān)鍵S1。 4.3 芯片擦除 整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過正確的控制信號(hào)組合,并保持ALE管腳處于低電平10ms來完成。在芯片擦除操作中,代碼陣列全被寫“1”且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。 此外,AT89C52設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。
22、 4.4 振蕩器特性 MCS51單片機(jī)內(nèi)部的振蕩電路是一個(gè)到增益反相放大器,引線XTAL1和XTAL2分別為反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入和來自反向振蕩器的輸出,該反向放大器可以配置為片內(nèi)振蕩器。單片機(jī)內(nèi)部雖然有震蕩電路,但要形成時(shí)鐘,外部還需要附加電路。石英振蕩和陶瓷振蕩均可采用。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對外部時(shí)鐘信號(hào)的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。51單片機(jī)的時(shí)鐘產(chǎn)生方式有兩種,分別為:內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。利用其內(nèi)部的震蕩電路XTAL1和XTAL2引線上外接定時(shí)元件,內(nèi)部震蕩電路便產(chǎn)生自激震蕩,用示波器可以觀察到XTAL
23、2輸出的時(shí)鐘信號(hào)。在MCS51單片機(jī)一般常用內(nèi)部時(shí)鐘方式,也就是在XTAL1和XTAL2之間連接晶體震蕩器與電容構(gòu)成穩(wěn)定的自激震蕩器,如下圖: 圖4.3 內(nèi)部時(shí)鐘方式 晶體和電容決定了單片機(jī)的工作時(shí)間精度為1微秒。晶體可在1.2-12MHz之間選擇。MCS-51單片機(jī)在通常應(yīng)用情況下,使用震蕩頻率為6MHz的石英晶體,而12MHz頻率的警惕主要是在高速串行通信情況下才使用,在這里我用的是6MHz石英晶體。對電容無嚴(yán)格要求,但它在取直對震蕩頻率輸出的穩(wěn)定性、大小及震蕩電路起震蕩速度有一點(diǎn)影響。C1和C2可在20-100pF之間取,一般情況取30pF。外部時(shí)鐘方式是把外部震蕩信號(hào)源直接接入XTAL
24、1或XTAL2。由于XTAL2的邏輯電平不是TTL的,所以還要接一個(gè)上拉電阻。 XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。 計(jì)時(shí)交通燈系統(tǒng)的設(shè)計(jì)5.1 硬件系統(tǒng)設(shè)計(jì) 5.1.1硬件框圖 圖5.1 硬件框圖 原理圖各部分作用: 復(fù)位電路:RC構(gòu)成微分電路,在接電瞬間,產(chǎn)生一個(gè)微分脈沖。按下復(fù)位按鈕,就可以使電路重新開始工作。 按鍵:即復(fù)位按鍵。 紅綠燈顯示:通過二進(jìn)制數(shù)的輸出來變換的,使得紅綠燈接收顯示不同的信號(hào),已達(dá)到此次設(shè)計(jì)的目的。 段碼控制輸出:通過P0口與LED數(shù)碼管顯示器
25、相連接,來控制段碼的輸出。 (1). AT89C51硬件資源的分配 電路采用的內(nèi)部振蕩器方式,晶體振蕩頻率為MHz,具有較高的頻率穩(wěn)定性,且延時(shí)采用數(shù)字計(jì)數(shù)的方式進(jìn)行,因而對時(shí)間的控制精度較高,可有效的控制延時(shí)。 初始加電時(shí),顯示初態(tài),但按下復(fù)位開關(guān),可以控制交通燈的顯示。 本電路的外接電源可用V直流電流電源,也可將交流電壓轉(zhuǎn)變?yōu)橹绷麟姡唵畏奖?。使用中?yīng)謹(jǐn)慎,避免硬件設(shè)施被燒壞。 本例中使用了INT0中斷,一般中斷處理程序進(jìn)入時(shí)應(yīng)保護(hù)PSW,ACC以及中斷處理程序使用但非其專用的寄存器。本例的INT0程序中應(yīng)保護(hù)PSW,ACC等,以便保護(hù)中斷前紅綠燈的狀態(tài)(保護(hù)現(xiàn)場),并且在退出前恢復(fù)原來紅
26、綠燈狀態(tài)(恢復(fù)現(xiàn)場)。 本設(shè)計(jì)中交通信號(hào)燈LED0LED5與P1.0P1.5連接。 硬件方面利用AT89C51的P1口直接驅(qū)動(dòng)黃綠紅燈,用P0口控制字型口,七段數(shù)碼管為共陽極。 (2). 緊急按鈕電路及參數(shù)選擇 按下S1鍵,處于緊急控制狀態(tài),東西南北向紅燈亮,禁止車輛通行。 松開鍵恢復(fù)原先工作狀態(tài)。 按下是S0鍵,處于強(qiáng)行通行狀態(tài),人為允許主干道通行禁止次干道車輛流通。松開S0鍵,恢復(fù)原先工作狀態(tài)。按鍵的上拉電阻選用10k。 圖5.2 按鍵電路圖 (3)驅(qū)動(dòng)電路及參數(shù)計(jì)算 圖5.3 驅(qū)動(dòng)電路圖 實(shí)際用的穩(wěn)壓源U=5V,PNP型三極管發(fā)射極-基極的正向壓降為0.3V,P2口輸出低電平時(shí)(為0.5
27、V),為保證三極管處于飽和狀態(tài),取基極電流為1mA,則基極電阻 R=(5-0.3-0.5)/0.001=4.2k,實(shí)取4.7k。 (4). LED顯示電路及參數(shù)計(jì)算 本設(shè)計(jì)中交通信號(hào)燈LED0LED5與P1.0P1.5連接,顯示倒計(jì)時(shí)時(shí)間。LED的正常工作電流I=510mA我們實(shí)際用的穩(wěn)壓源為U=5伏,管壓降為1.52V,所以 R=(5-2)/0.01=300如果電路中電阻太小,會(huì)燒壞LED;電阻太大,LED的亮度不夠,經(jīng)過老師的推薦,電路中實(shí)際應(yīng)用的電阻值是510 5.1.2 電路原理圖 根據(jù)以上設(shè)計(jì)計(jì)算,得到電路原理圖如下。 圖5.4 電路原理圖 5.2 軟件系統(tǒng)設(shè)計(jì) 5.2.1 51系列
28、匯編語言 (1).匯編語言 用戶要使用計(jì)算機(jī)能完成各式各樣的任務(wù),就要設(shè)計(jì)各種相應(yīng)的應(yīng)用程序,而設(shè)計(jì)程序就要用到程序設(shè)計(jì)語言。程序設(shè)計(jì)語言有3種:機(jī)器語言,匯編語言和高級語言。本次設(shè)計(jì)所采用的是匯編語言。所謂匯編語言,是指用指令的助記符符號(hào)地址,標(biāo)號(hào),偽指令等符號(hào)書寫程序的語言。 (2)匯編程序 用這種匯編語言書寫的程序稱為匯編語言源程序或稱源程序。把匯編語言源程序翻譯成在機(jī)器上能執(zhí)行的機(jī)器語言程序(目的代碼程序)的過程叫做匯編,完成匯編過程的系統(tǒng)程序稱為匯編程序。 匯編程序在對源程序進(jìn)行匯編過程中,除了將源程序翻譯成目的代碼外,還能給出源程序書寫過程中所出現(xiàn)的語法錯(cuò)誤信息,如非法格式,未定義
29、的助記符,標(biāo)號(hào),漏掉操作數(shù)等。另外,匯編程序還可以根據(jù)用戶要求,自動(dòng)分配各類存儲(chǔ)區(qū)域(如程序區(qū),數(shù)據(jù)區(qū),暫存區(qū)等),自動(dòng)進(jìn)行各種進(jìn)位制數(shù)至二進(jìn)制數(shù)的轉(zhuǎn)換,自動(dòng)進(jìn)行字符至 ASCII 碼轉(zhuǎn)換及計(jì)算表達(dá)式的值等。 完成匯編工作有兩種途徑:一種是人工匯編;一種是機(jī)器匯編。對于量小,簡單的程序,程序員經(jīng)過查指令系統(tǒng)表,將匯編源程序逐條翻譯成機(jī)器代碼,完成手工匯編,再從單片機(jī)開發(fā)裝置的鍵盤上輸入目標(biāo)程序進(jìn)行調(diào)試,運(yùn)行;而對于量大較復(fù)雜的程序,翻譯過程可采用計(jì)算機(jī)系統(tǒng)軟件匯編程序完成,即機(jī)器匯編。 匯編程序是將匯編源程序轉(zhuǎn)變?yōu)槟繕?biāo)程序的翻譯程序。由于指令助記符與機(jī)器語言指令一一對應(yīng)的等價(jià)關(guān)系所以匯編程序能
30、很容易將匯編源程序迅速,準(zhǔn)確,有效地翻譯成目標(biāo)程序。此外,匯編程序的功能還有:根據(jù)程序員的要求,自動(dòng)地編排目標(biāo)程序中指令的存放地址,分配存儲(chǔ)空間,自動(dòng)地對源程序進(jìn)行檢查,分析其語法,若有錯(cuò)誤,給出錯(cuò)誤信息等等。匯編程序的運(yùn)行一般是借助于通用微型計(jì)算機(jī)(PC 機(jī))來完成的,它利用PC機(jī)的串行口與單片機(jī)開發(fā)裝置進(jìn)行通訊,把匯編成的目標(biāo)程序傳送到單片機(jī)開發(fā)裝置中去調(diào)試,執(zhí)行。這種方式也稱之為交叉匯編。它效率高,不易出錯(cuò)。 5.2. 程序框圖 本案采用結(jié)構(gòu)化程序設(shè)計(jì)。主程序盡可能簡潔,廣泛使用子程序和循環(huán)結(jié)構(gòu),并利用了中斷資源。 本設(shè)計(jì)使用了T0中斷,T0中斷完成兩個(gè)功能,一是進(jìn)行秒定時(shí),二是對應(yīng)急處
31、理按鍵進(jìn)行檢測,以便及時(shí)響應(yīng)。一般中斷處理程序進(jìn)入時(shí)應(yīng)保護(hù)PSW,ACC以及中斷處理程序使用但非其專用的寄存器。本設(shè)計(jì)的T0中斷程序中應(yīng)保護(hù)PSW,ACC及相關(guān)寄存器等,以便保護(hù)中斷前紅綠燈的狀態(tài)(保護(hù)現(xiàn)場),并且在退出前恢復(fù)原來紅綠燈狀態(tài)(恢復(fù)現(xiàn)場)。 根據(jù)以上軟硬件資源的利用情況,制定出程序框圖如下。 主程序框圖:開始定時(shí)計(jì)數(shù)設(shè)定開外中斷初始狀態(tài)東西綠燈亮,南北紅燈亮,延時(shí)18秒東西黃燈亮,南北紅燈亮,延時(shí)2秒東西紅燈亮,南北綠燈亮,延時(shí)13秒東西紅燈亮,南北黃燈亮,延時(shí)2秒 圖5.5 主程序圖 中斷框圖:T0中斷T0賦初值進(jìn)行10ms計(jì)時(shí)緊急情況按鈕S1鍵按下否?流通按鈕S0按下N10m
32、s計(jì)時(shí)器+1時(shí)間累計(jì)1S定時(shí)計(jì)數(shù)-1顯示子程序中斷返回停止T0計(jì)數(shù),保護(hù)P1口狀態(tài)主干綠燈亮,支干紅燈亮S0開?數(shù)碼管靜態(tài)顯示恢復(fù)P1口,啟動(dòng)T0中斷返回YYN停止T0中斷,保護(hù)P1口狀態(tài)紅燈全亮,停止通行解決緊急狀態(tài)按鈕S1松開否?數(shù)碼管靜態(tài)顯示恢復(fù)P1口,啟動(dòng)T0中斷返回YNYN 圖5.6 中斷框圖 5.2. 匯編語言源程序 (1). 有關(guān)參數(shù)計(jì)算 本設(shè)計(jì)T0定時(shí)時(shí)間為10毫秒,計(jì)滿10毫秒就響應(yīng)一次中斷,計(jì)滿100次剛好為一秒。 T0定時(shí)器采用工作方式1,為16位計(jì)數(shù)器,晶振頻率為6MHz(12MHz),則機(jī)器周期為: 12÷6MHz = 2微秒(1us)定時(shí)值為10毫秒,計(jì)數(shù)
33、值為10000÷2=5000(10000÷1=10000)初值X0=M-計(jì)數(shù)值=655365000=60536=EC78H(X0=65536-10000=55536=D8F0H)根據(jù)16位定時(shí)器的特性,初值應(yīng)為;TH0=0ECH(0D8H),TL0=78H(0F0H)(2). 部分源程序 ORG 0000H AJMP MAIN ;轉(zhuǎn)主程序 ORG 000BH AJMP T0_INT;轉(zhuǎn)定時(shí)器T0服務(wù)子程序ORG 0030H MAIN: MOV SP, #50H MOV TMOD, #01H ;T0,定時(shí)方式1 MOV TL0, #78H ;定時(shí) 10ms,晶振6MHZ MO
34、V TH0, #0ECH SETB EA ;開總中斷 SETB ET0 ;允許T0中斷SETB TR0 ;啟動(dòng)定時(shí)器 MOV R3,#64H ;設(shè)定中斷次數(shù) LOP: MOV R4, #18 MOV R5, #20 LOP0: MOV P1,#0F3H ;東西綠燈亮,南北紅燈亮 ACALL RIS CJNE R4,#00H,LOP0 MOV R4,#02 LOP1: MOV P1,#0F5H ;東西黃燈亮,南北紅燈亮 ACALL RIS CJNE R4,#00H,LOP1MOV R4, #18 MOV R5, #16 LOP2: MOV P1,#0DEH ;東西紅燈亮,南北綠燈亮 ACALL
35、RIS CJNE R5,#00H,LOP2 MOV R5,#02LOP3:MOVP1,#0EEH ;東西紅燈亮,南北黃燈亮 ACALL RIS CJNE R5,#00H,LOP3 AJMP LOPT0_INT: MOV TL0,#78H ;定時(shí)器0中斷子程序 MOV TH0,#0ECH JNB P3.2,T02 ;判斷緊急按鈕是否有效JNB P3.3,T03 DJNZ R3,TTT MOV R3,#64H DEC R4 DEC R5TTT:RETI ;中斷子程序返回T02: CLR TR0 ;緊急狀態(tài)處理子程序PUSH P1 ;保護(hù)當(dāng)前狀態(tài)PINT0: MOV P1,#0F6H ;送緊急狀態(tài)控
36、制碼PN0: JB P3.2,PN2 ;查驗(yàn)是否解除緊急狀態(tài)PN1: ACALL RIS ;調(diào)用顯示子程序,使顯示器靜止顯示SJMP PN0PN2: POPP1 ;恢復(fù)緊急狀態(tài)前的狀態(tài) SETB TR0;再次啟動(dòng)定時(shí)器RETI T03: CLR TR0 PUSH P1SINT0: MOV P1,0F3HSN0: JB P3.3,SN2SN1: ACALL RISSJMP SN0 SN2: POP P1SETB TR0 RETI RIS: MOV A,R4 ;顯示子程序 MOV B,#OAH DIV AB MOV R6,#0FFH MOV DPTR,#TAB MOVC A,A+DPTR MOV
37、P0,A CLR P2.0DS1: DJNZ R6,DS1 SETB P2.0MOV R6,#0FFH MOV A,B MOVC A,A+DPTR MOV P0,A CLR P2.1 DS2: DJNZ R6,DS2 SETB P2.1MOV A,R5 MOV B,#0AH DIV AB MOV R6,#0FFH MOVC A,A+DPTR MOV P0,A CLR P2.2DS3: DJNZ R6,DS3 SETB P2.2 MOV A,BMOV R6,#0FFH MOVC A,A+DPTR MOV P0,A CLR P2.3DS4: DJNZ R6,DS4 SETB P2.3 RET ;顯示子程序返回TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H DB 82H,0F8H,80H,90H,88H ;字型碼表END 六 檢測與調(diào)試 6.1 硬件調(diào)試: 硬件調(diào)試是利用開發(fā)系統(tǒng)、基本測試儀器(萬用表、示波器)等,檢查用戶系統(tǒng)硬件中存在的故障。 硬件調(diào)試可分為靜態(tài)調(diào)試和動(dòng)態(tài)調(diào)試兩步進(jìn)行: 靜態(tài)調(diào)試:靜態(tài)調(diào)試是在用戶系統(tǒng)未工作時(shí)的一種調(diào)試。 步驟如下: 第一步:目測。檢查外部的各種元件或者是電路是否有斷點(diǎn)。 第二步:用萬用表測試。先用萬用表復(fù)核目測
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度門店合伙人激勵(lì)機(jī)制服務(wù)合同4篇
- 2025年度二零二五農(nóng)行個(gè)人二手房交易貸款合同2篇
- 2025年度綠色建筑節(jié)能改造工程合同(二零二五版)4篇
- 二零二五年度商業(yè)門面租賃合同范本-@-1
- 2025年度綠色生態(tài)餐廳檔口租賃合同樣本4篇
- 2025年度城市軌道交通鋼管材料供應(yīng)與承包合同協(xié)議書范本
- 2025版南海區(qū)創(chuàng)新創(chuàng)業(yè)人才居住就業(yè)支持合同4篇
- 2025版門面租賃合同消防安全及責(zé)任承擔(dān)4篇
- 二零二五年度外賣送餐服務(wù)合同書(含增值服務(wù))
- 二零二五年度年薪制工資與員工晉升合同模板
- 衛(wèi)生服務(wù)個(gè)人基本信息表
- 醫(yī)學(xué)脂質(zhì)的構(gòu)成功能及分析專題課件
- 高技能人才培養(yǎng)的策略創(chuàng)新與實(shí)踐路徑
- 廣東省湛江市廉江市2023-2024學(xué)年八年級上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 2024年湖北省知名中小學(xué)教聯(lián)體聯(lián)盟中考語文一模試卷
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 生物 含解析
- 交叉口同向可變車道動(dòng)態(tài)控制與信號(hào)配時(shí)優(yōu)化研究
- 燃?xì)庑袠I(yè)有限空間作業(yè)安全管理制度
- 數(shù)列練習(xí)題(含答案)基礎(chǔ)知識(shí)點(diǎn)
- 通用電子嘉賓禮薄
- 充電站監(jiān)理規(guī)劃
評論
0/150
提交評論