單片機課程設(shè)計--交通信號燈實時控制系統(tǒng)設(shè)計_第1頁
單片機課程設(shè)計--交通信號燈實時控制系統(tǒng)設(shè)計_第2頁
單片機課程設(shè)計--交通信號燈實時控制系統(tǒng)設(shè)計_第3頁
單片機課程設(shè)計--交通信號燈實時控制系統(tǒng)設(shè)計_第4頁
單片機課程設(shè)計--交通信號燈實時控制系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、交通信號燈實時控制系統(tǒng)設(shè)計 一、設(shè)計目的1學(xué)習(xí)單片機基本電路的設(shè)計,加深對單片機理論知識的理解2掌握單片機內(nèi)部各功能模塊的功能與應(yīng)用,學(xué)會單片機基本外設(shè)電路的設(shè)計3、學(xué)習(xí)單片機匯編語言及程序設(shè)計方法,掌握單片機匯編語言的程序設(shè)計4掌握單片機應(yīng)用系統(tǒng)的軟件和硬件設(shè)計過程、調(diào)試方法及功能實現(xiàn)二、設(shè)計要求 1、根據(jù)實際交通狀況,分別控制紅、綠、黃燈的燃亮與熄滅情況2、各信號燈的燃亮?xí)r間為:綠燈:60秒,紅燈:80秒,黃燈:5秒3、紅燈倒計時時間,當(dāng)有車輛闖紅燈時,啟動蜂鳴器進(jìn)行報警,3S 后然后恢復(fù)正常。4、綠燈倒計時時,檢測車流量三、 硬件電路設(shè)計1芯片選用選用設(shè)備8051 單片機一片,8255

2、并行通用接口芯片一片,74LS07 兩片,MAX692看門狗一片,共陰極的七段數(shù)碼管兩個雙向晶閘管若干,7805 三端穩(wěn)壓電源一個,紅、黃、綠交通燈各兩個,開關(guān)鍵盤、連線若干。8051 是MCS-51 系列單片機的典型產(chǎn)品,8051 單片機包含中央處理器、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時/計數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線。8051引腳圖8255 可編程并行接口芯片有三個輸入輸出端口,即A口、B 口和C 口,對應(yīng)于引腳PA7PA0、PB7PB0 和PC7PC0。其內(nèi)部還有一個控制寄存器,即控制口。通常A 口、B 口作為輸入輸出

3、的數(shù)據(jù)端口。C 口作為控制或狀態(tài)信息的端口,它在方式字的控制下,可以分成4 位的端口,每個端口包含一個4 位鎖存器。它們分別與端口A配合使用,可以用作控制信號輸出或作為狀態(tài)信號輸入。8255引腳圖74LS373 是一種帶三態(tài)門的8D 鎖存器,其管腳示意圖如圖1:其中:1D-8D 為8 個輸入端。1Q-8Q 為8 個輸出端。LE 為數(shù)據(jù)打入端:當(dāng)LE 為“1”時,鎖存器輸出狀態(tài)同輸入狀態(tài);當(dāng)LE 由“1”變“0”時,數(shù)據(jù)打入鎖存器OE 為輸出允許端:當(dāng)OE=0 時,三態(tài)門打開;當(dāng)OE=1 時,三態(tài)門關(guān)閉,輸出高阻。 74LS373 芯片管腳圖2系統(tǒng)工作原理(1)開關(guān)鍵盤輸入交通燈初始時間,通過

4、8051 單片機 P1 輸入到系統(tǒng)(2)由 8051 單片機的定時器每秒鐘通過 P0 口向 8255 的數(shù)據(jù)口送信息,由 8255 的 PA口顯示紅、綠、黃燈的燃亮情況;由 8255 的 PC 口顯示每個燈的燃亮?xí)r間。(3)8051 設(shè)置各個信號燈的燃亮?xí)r間,通過 8051 設(shè)置,綠、紅時間分別為 60 秒、80 秒循環(huán),由 8051 的 P0 口向 8255 的數(shù)據(jù)口輸出。(4)通過 8051 單片機的 P3.0 位來控制系統(tǒng)是工作或設(shè)置初值,當(dāng)為 0 就對系統(tǒng)進(jìn)行初始化,為 1 系統(tǒng)就開始工作。(5)紅燈倒計時時間,當(dāng)有車輛闖紅燈時,啟動蜂鳴器進(jìn)行報警,3S 后然后恢復(fù)正常。(6)增加每次

5、綠燈時間車流量檢測的功能,并且通過查詢P2.0 端口的電平是否為低,開關(guān)按下為低電平,雙位數(shù)碼管顯示車流量,直到下一次綠燈時間重新記入。(7)綠燈時間倒計時完畢,重新循環(huán)。三、 軟件設(shè)計1秒脈沖的產(chǎn)生延時方法可以有兩種一中是利用MCS-51 內(nèi)部定時器才生溢出中斷來確定1 秒的時間,另一種是采用軟件延時的方法。2計數(shù)器硬件延時2.1 設(shè)置計數(shù)器初值定時器工作時必須給計數(shù)器送計數(shù)器初值,這個值是送到TH 和TL 中的。他是以加法記數(shù)的,并能從全1 到全0 時自動產(chǎn)生溢出中斷請求。因此,我們可以把計數(shù)器記滿為零所需的計數(shù)值設(shè)定為C 和計數(shù)初值設(shè)定為TC 可得到如下計算通式:TC=M-C式中,M 為

6、計數(shù)器摸值,該值和計數(shù)器工作方式有關(guān)。在方式0 時M 為213 ;在方式1 時M 的值為216;在方式2 和3 為282.2 計算公式T=(MTC)T 計數(shù)或 TCT 計數(shù)T 計數(shù)是單片機時鐘周期的12 倍;TC 為定時初值;如單片機的主脈沖頻率為12MHZ,經(jīng)過12 分頻:方式:TMAX213 *微秒8.192 毫秒方式:TMAX216 *微秒65.536 毫秒顯然秒鐘已經(jīng)超過了計數(shù)器的最大定時間,所以我們只有采用定時器和軟件相結(jié)合的辦法才能解決這個問題。2.3 秒計時我們采用在主程序中設(shè)定一個初值為20 的軟件計數(shù)器和使0 定時50 毫秒這樣每當(dāng)0 到50 毫秒時CPU 就響應(yīng)它的溢出中斷

7、請求,進(jìn)入他的中斷服務(wù)子程序。在中斷服務(wù)子程序中,CPU 先使軟件計數(shù)器減,然后判斷它是否為零。為零表示秒已到可以返回到輸出時間顯示程序。2.4 相應(yīng)程序代碼(1)主程序定時器需定時50 毫秒,故0 工作于方式。 初值:TC T 計數(shù) 21650ms/1us=15536=3CB0HORG 1000HSTART: MOV TMOD, #01H ;令T0 為定時器方式MOV TH0, #3CH ;裝入定時器初值MOV TL0, #B0HMOV IE, #82H ;開T0 中斷SEBT TR0 ;啟動T0 計數(shù)器MOV R0, #14H ;軟件計數(shù)器賦初值LOOP: SJMP $ ;等待中斷(2)中

8、斷服務(wù)子程序ORG 000BHAJMP BRT0ORG 00BHBRT0:DJNZ R0,NEXTAJMP TIME ; 跳轉(zhuǎn)到時間及信號燈顯示子程序DJNZ:MOV R0,#14H ;恢復(fù)R0 值MOV TH0, #3CH ;重裝入定時器初值MOV TL0, #B0H MOV IE, #82H3. 軟件延時MCS-51 的工作頻率為2-12MHZ,我們選用的8051 單片機的工作頻率為6MHZ。機器周期與主頻有關(guān),機器周期是主頻的12 倍,所以一個機器周期的時間為12*(1/6M)=2us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定1 秒的時間。具體的延時程序分

9、析:DELAY : MOV R4 , #08H ;延時1 秒子程序DE2 : LCALL DELAY1DJNZ R4 , DE2RETDELAY1 : MOV R6 , #0 ;延時125ms 子程序MOV R5 , #0DE1 : DJNZ R5 , $DJNZ R6 , DE1RETDELAY1 為一個雙重循環(huán),循環(huán)次數(shù)為256*256=65536,所以延時時間為65536*2=131072us,約為 125ms。DELAY 中R4 設(shè)置的初值為8,主延時程序循環(huán)8 次,所以125ms*8=1 秒。由于單片機的運行速度很快其他的指令執(zhí)行時間可以忽略不計。4. 時間及信號燈的顯示4.1 80

10、51 并行口的擴展8051 雖然有4 個8 位I/O 端口,但真正能提供借用的只有P1 口,因為P2 和P0 口通常用于傳送外部傳送地址和數(shù)據(jù),P3 口也有它的第二功能。因此,8051 通常需要擴展。由于我們用外部輸入設(shè)定紅綠燈倒計時初值、數(shù)碼管的輸出顯示、紅綠黃信號燈的顯示都要用到一個I/O 端口,顯然8051 的端口是不夠,需要擴展。擴展的方法有兩種:(1)借用外部RAM 地址來擴展I/O 端口;(2)采用I/O 接口新片來擴充。我們用8255 并行接口信片來擴展I/O 端口。4.2 顯示原理當(dāng)定時器定時為1 秒,時程序跳轉(zhuǎn)到時間顯示及信號燈顯示子程序,它將依次顯示信號燈時間,同時一直顯示

11、信號燈的顏色,這時在返回定時子程序定時一秒,在顯示黃燈的下一個時間,這樣依次把所有的燈色的時間顯示完后在重新給時間計數(shù)器賦初值,重新進(jìn)入循環(huán)。4.3 8255 PA 口輸出信號接信號燈由于發(fā)光二極管為共陽極接法,輸出端口為低電平,對應(yīng)的二極管發(fā)光,所以可以用置位方法點亮紅,綠,黃發(fā)光二極管。4.4 8255 輸出信號與數(shù)碼管的連接LED 燈的顯示原理:通過同名管腳上所加電平的高低來控制發(fā)光二極管是否點量而顯示不同的字形如 SP,g,f,e,d,c,b,a 管角上加上7FH 所以SP 上為伏,不亮其余為TTL 高電平,全亮則顯示為。4.5 8255 與8051 的連接用 8051 的P0 口的P

12、0.7 連接8255 的片選信號cs 我們用8031 的地址采用全譯碼方式,當(dāng)p0.7 =0 時片選有效,其他無效,P0.7 用于選擇8255 端口。P0.7 p0.6 p0.5 p0.4 p0.3 p0.2 P0.1 P0.0A7 A6 A5 A4 A3 A2 A1 A01 X X X X X 0 0 00H為8255的PA口1 X X X X X 0 1 01H為8255的PB口1 X X X X X 1 0 02H為8255的PC口1 X X X X X 1 1 03H為8255的控制口由于 8051 是分時對8255 和儲存器進(jìn)行訪問所以8051 的P0 口不會發(fā)生沖突。5. 程序設(shè)計

13、圖3 程序流程圖程序源代碼 ORG 0000H ;主程序的入口地址 LJMP MAIN ;跳轉(zhuǎn)到主程序的開始處 ORG 0003H ;外部中斷0的中斷程序入口地址 ORG 000BH ;定時器0的中斷程序入口地址 LJMP T0_INT ;跳轉(zhuǎn)到中斷服務(wù)程序處 ORG 0013H ;外部中斷1的中斷程序入口地址 MAIN : MOV SP,#50H MOV IE,#8EH ;CPU開中斷,允許T0中斷,T1中斷和外部中斷1中斷 MOV TMOD,#51H ;設(shè)置T1為計數(shù)方式,T0為定時方式,且都工作于模式1 MOV TH1,#00H ;T1計數(shù)器清零 MOV TL1,#00H SETB TR

14、1 ;啟動T1計時器 SETB EX1 ;允許INT1中斷 SETB IT1 ;選擇邊沿觸發(fā)方式 MOV DPTR ,#0003H MOV A, #80H ;給8255賦初值,8255工作于方式0 MOVX DPTR, AAGAIN: JB P3.1,N0 ;判斷是否要設(shè)定東西方向紅綠燈時間的初值,若P3.1為1 則跳轉(zhuǎn) MOV A,P1 JB P1.7,RED ;判斷P1.7是否為1,若為1則設(shè)定紅燈時間,否則設(shè)定綠燈時間 MOV R0,#00H ;R0清零 MOV R0,A ;存入東西方向綠燈初始時間 MOV R3,A LCALL DISP1 LCALL DELAY AJMP AGAINR

15、ED: MOV A,P1 ANL A,#7FH ;P1.7置0 MOV R7,#00H ;R7清零 MOV R7,A ;存入東西方向紅燈初始時間 MOV R3,A LCALL DISP1 LCALL DELAY AJMP AGAIN;-N0: SETB TR0 ;啟動T0計時器 MOV 76H,R7 ;紅燈時間存入76HN00: MOV A,76H ;東西方向禁止,南北方向通行 MOV R3,A MOV DPTR,#0000H ;置8255A口,東西方向紅燈亮,南北方向綠燈亮 MOV A,#0DDH MOVX DPTR, AN01: JB P2.0,B0N02: SETB P3.0 CJNE

16、R3,#00H,N01 ;比較R3中的值是否為0,不為0轉(zhuǎn)到當(dāng)前指令處執(zhí)行;-黃燈閃爍5秒程序-N1: SETB P3.0 MOV R3,#05H MOV DPTR,#0000H ;置8255A口,東西,南北方向黃燈亮 MOV A,#0D4H MOVX DPTR,AN11: MOV R4,#00HN12: CJNE R4,#7DH,$ ;黃燈持續(xù)亮0.5秒N13: MOV DPTR,#0000H ; 置8255A口,南北方向黃燈滅 MOV A,#0DDH MOVX DPTR,AN14: MOV R4,#00H CJNE R4,#7DH,$ ;黃燈持續(xù)滅0.5秒 CJNE R3,#00H,N1

17、;閃爍時間達(dá)5秒則退出;-N2: MOV R7,#00H MOV A,R0 ;東西通行,南北禁止 MOV R3,A MOV DPTR,#0000H ; 置8255A口,東西方向綠燈亮,南北方向紅燈亮 MOV A,#0EBH MOVX DPTR,AN21: JB P2.0,T03 N22: CJNE R3,#00H,N21;-黃燈閃爍5秒程序-N3: MOV R3,#05H MOV DPTR,#0000H ;置8255A口,東西,南北方向黃燈亮 MOV A,#0E2H MOVX DPTR,AN31: MOV R4,#00H CJNE R4,#7DH,$ ;黃燈持續(xù)亮0.5秒N32: MOV DP

18、TR,#0000H ; 置8255A口,南北方向黃燈滅 MOV A,#0EBH MOVX DPTR,AN33: MOV R4,#00H CJNE R4,#7DH,$ ;黃燈持續(xù)滅0.5秒 CJNE R3,#00H,N3 ;閃爍時間達(dá)5秒則退出 SJMP N00;-闖紅燈報警程序-B0: MOV R2,#03H ;報警持續(xù)時間3秒B01: MOV A,R3 JZ N1 ;若倒計時完畢,不再報警 CLR P3.0 ;報警 CJNE R2,#00H,B01 ;判斷3秒是否結(jié)束 SJMP N02;-1秒延時子程序-N7: RETIT0_INT:MOV TL0,#9AH ;給定時器T0送定時10ms的初

19、值 MOV TH0,#0F1H INC R4 INC R5 CJNE R5,#0FAH,T01 ;判斷延時是否夠一秒,不夠則調(diào)用顯示子程序 MOV R5,#00H ;R5清零 DEC R3 ;倒計時初值減一 DEC R2 ;報警初值減一T01: ACALL DISP ;調(diào)用顯示子程序 RETI ;中斷返回;-顯示子程序-DISP: JNB P2.4,T02DISP1: MOV B,#0AH MOV A,R3 ;R3中值二轉(zhuǎn)十顯示轉(zhuǎn)換 DIV AB MOV 79H,A MOV 7AH,BDIS: MOV A,79H ;顯示十位 MOV DPTR,#TAB MOVC A,A+DPTR MOV DP

20、TR,#0002H MOVX DPTR,A MOV DPTR,#0001H MOV A,#0F7H MOVX DPTR,A LCALL DELAYDS2: MOV A,7AH ;顯示個位 MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#0002H MOVX DPTR,A MOV DPTR,#0001H MOV A,#0FBH MOVX DPTR,A RET;-東西方向車流量檢測程序-T03: MOV A,R3 SUBB A,#00H ;若綠燈倒計時完畢,不再檢測車流量 JZ N3 JB P2.0,T03 INC R7 CJNE R7,#64H,E1 MOV R7,#

21、00H ;中斷到100次則清零E1: SJMP N22;-東西方向車流量顯示程序-T02: MOV B,#0AHMOV A,R7 ;R7中值二轉(zhuǎn)十顯示轉(zhuǎn)換 DIV AB MOV 79H,A MOV 7AH,BDIS3: MOV A,79H ;顯示十位 MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#0002H MOVX DPTR,A MOV DPTR,#0001H MOV A,#0F7H MOVX DPTR,A LCALL DELAYDS4: MOV A,7AH ;顯示個位 MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#0002H MOVX DPTR,A MOV DPTR,#0001H MOV A,#0FBH MOVX DPTR,A LJMP N7;-延時4MS子程序-DELAY: MOV R1,#0AHLOOP: MOV R6,#64H NOPLOOP1: DJNZ R6,LOOP1 DJNZ R1,LOOP RET ;-字符表-TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END程序運行結(jié)果: 五、結(jié)論 本系統(tǒng)充分利用了8051 和8255 芯片的I/O 引腳功能,系統(tǒng)采用MSC-51 系列單片機 8051 和可編程并行I/O 接口芯片8255A 為中心器件來設(shè)計交

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論