版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、交通信號燈實時控制系統設計 一、設計目的1學習單片機基本電路的設計,加深對單片機理論知識的理解2掌握單片機內部各功能模塊的功能與應用,學會單片機基本外設電路的設計3、學習單片機匯編語言及程序設計方法,掌握單片機匯編語言的程序設計4掌握單片機應用系統的軟件和硬件設計過程、調試方法及功能實現二、設計要求 1、根據實際交通狀況,分別控制紅、綠、黃燈的燃亮與熄滅情況2、各信號燈的燃亮時間為:綠燈:60秒,紅燈:80秒,黃燈:5秒3、紅燈倒計時時間,當有車輛闖紅燈時,啟動蜂鳴器進行報警,3S 后然后恢復正常。4、綠燈倒計時時,檢測車流量三、 硬件電路設計1芯片選用選用設備8051 單片機一片,8255
2、并行通用接口芯片一片,74LS07 兩片,MAX692看門狗一片,共陰極的七段數碼管兩個雙向晶閘管若干,7805 三端穩(wěn)壓電源一個,紅、黃、綠交通燈各兩個,開關鍵盤、連線若干。8051 是MCS-51 系列單片機的典型產品,8051 單片機包含中央處理器、程序存儲器(ROM)、數據存儲器(RAM)、定時/計數器、并行接口、串行接口和中斷系統等幾大單元及數據總線、地址總線和控制總線等三大總線。8051引腳圖8255 可編程并行接口芯片有三個輸入輸出端口,即A口、B 口和C 口,對應于引腳PA7PA0、PB7PB0 和PC7PC0。其內部還有一個控制寄存器,即控制口。通常A 口、B 口作為輸入輸出
3、的數據端口。C 口作為控制或狀態(tài)信息的端口,它在方式字的控制下,可以分成4 位的端口,每個端口包含一個4 位鎖存器。它們分別與端口A配合使用,可以用作控制信號輸出或作為狀態(tài)信號輸入。8255引腳圖74LS373 是一種帶三態(tài)門的8D 鎖存器,其管腳示意圖如圖1:其中:1D-8D 為8 個輸入端。1Q-8Q 為8 個輸出端。LE 為數據打入端:當LE 為“1”時,鎖存器輸出狀態(tài)同輸入狀態(tài);當LE 由“1”變“0”時,數據打入鎖存器OE 為輸出允許端:當OE=0 時,三態(tài)門打開;當OE=1 時,三態(tài)門關閉,輸出高阻。 74LS373 芯片管腳圖2系統工作原理(1)開關鍵盤輸入交通燈初始時間,通過
4、8051 單片機 P1 輸入到系統(2)由 8051 單片機的定時器每秒鐘通過 P0 口向 8255 的數據口送信息,由 8255 的 PA口顯示紅、綠、黃燈的燃亮情況;由 8255 的 PC 口顯示每個燈的燃亮時間。(3)8051 設置各個信號燈的燃亮時間,通過 8051 設置,綠、紅時間分別為 60 秒、80 秒循環(huán),由 8051 的 P0 口向 8255 的數據口輸出。(4)通過 8051 單片機的 P3.0 位來控制系統是工作或設置初值,當為 0 就對系統進行初始化,為 1 系統就開始工作。(5)紅燈倒計時時間,當有車輛闖紅燈時,啟動蜂鳴器進行報警,3S 后然后恢復正常。(6)增加每次
5、綠燈時間車流量檢測的功能,并且通過查詢P2.0 端口的電平是否為低,開關按下為低電平,雙位數碼管顯示車流量,直到下一次綠燈時間重新記入。(7)綠燈時間倒計時完畢,重新循環(huán)。三、 軟件設計1秒脈沖的產生延時方法可以有兩種一中是利用MCS-51 內部定時器才生溢出中斷來確定1 秒的時間,另一種是采用軟件延時的方法。2計數器硬件延時2.1 設置計數器初值定時器工作時必須給計數器送計數器初值,這個值是送到TH 和TL 中的。他是以加法記數的,并能從全1 到全0 時自動產生溢出中斷請求。因此,我們可以把計數器記滿為零所需的計數值設定為C 和計數初值設定為TC 可得到如下計算通式:TC=M-C式中,M 為
6、計數器摸值,該值和計數器工作方式有關。在方式0 時M 為213 ;在方式1 時M 的值為216;在方式2 和3 為282.2 計算公式T=(MTC)T 計數或 TCT 計數T 計數是單片機時鐘周期的12 倍;TC 為定時初值;如單片機的主脈沖頻率為12MHZ,經過12 分頻:方式:TMAX213 *微秒8.192 毫秒方式:TMAX216 *微秒65.536 毫秒顯然秒鐘已經超過了計數器的最大定時間,所以我們只有采用定時器和軟件相結合的辦法才能解決這個問題。2.3 秒計時我們采用在主程序中設定一個初值為20 的軟件計數器和使0 定時50 毫秒這樣每當0 到50 毫秒時CPU 就響應它的溢出中斷
7、請求,進入他的中斷服務子程序。在中斷服務子程序中,CPU 先使軟件計數器減,然后判斷它是否為零。為零表示秒已到可以返回到輸出時間顯示程序。2.4 相應程序代碼(1)主程序定時器需定時50 毫秒,故0 工作于方式。 初值:TC T 計數 21650ms/1us=15536=3CB0HORG 1000HSTART: MOV TMOD, #01H ;令T0 為定時器方式MOV TH0, #3CH ;裝入定時器初值MOV TL0, #B0HMOV IE, #82H ;開T0 中斷SEBT TR0 ;啟動T0 計數器MOV R0, #14H ;軟件計數器賦初值LOOP: SJMP $ ;等待中斷(2)中
8、斷服務子程序ORG 000BHAJMP BRT0ORG 00BHBRT0:DJNZ R0,NEXTAJMP TIME ; 跳轉到時間及信號燈顯示子程序DJNZ:MOV R0,#14H ;恢復R0 值MOV TH0, #3CH ;重裝入定時器初值MOV TL0, #B0H MOV IE, #82H3. 軟件延時MCS-51 的工作頻率為2-12MHZ,我們選用的8051 單片機的工作頻率為6MHZ。機器周期與主頻有關,機器周期是主頻的12 倍,所以一個機器周期的時間為12*(1/6M)=2us。我們可以知道具體每條指令的周期數,這樣我們就可以通過指令的執(zhí)行條數來確定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)次數為256*256=65536,所以延時時間為65536*2=131072us,約為 125ms。DELAY 中R4 設置的初值為8,主延時程序循環(huán)8 次,所以125ms*8=1 秒。由于單片機的運行速度很快其他的指令執(zhí)行時間可以忽略不計。4. 時間及信號燈的顯示4.1 80
10、51 并行口的擴展8051 雖然有4 個8 位I/O 端口,但真正能提供借用的只有P1 口,因為P2 和P0 口通常用于傳送外部傳送地址和數據,P3 口也有它的第二功能。因此,8051 通常需要擴展。由于我們用外部輸入設定紅綠燈倒計時初值、數碼管的輸出顯示、紅綠黃信號燈的顯示都要用到一個I/O 端口,顯然8051 的端口是不夠,需要擴展。擴展的方法有兩種:(1)借用外部RAM 地址來擴展I/O 端口;(2)采用I/O 接口新片來擴充。我們用8255 并行接口信片來擴展I/O 端口。4.2 顯示原理當定時器定時為1 秒,時程序跳轉到時間顯示及信號燈顯示子程序,它將依次顯示信號燈時間,同時一直顯示
11、信號燈的顏色,這時在返回定時子程序定時一秒,在顯示黃燈的下一個時間,這樣依次把所有的燈色的時間顯示完后在重新給時間計數器賦初值,重新進入循環(huán)。4.3 8255 PA 口輸出信號接信號燈由于發(fā)光二極管為共陽極接法,輸出端口為低電平,對應的二極管發(fā)光,所以可以用置位方法點亮紅,綠,黃發(fā)光二極管。4.4 8255 輸出信號與數碼管的連接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 的地址采用全譯碼方式,當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 和儲存器進行訪問所以8051 的P0 口不會發(fā)生沖突。5. 程序設計
13、圖3 程序流程圖程序源代碼 ORG 0000H ;主程序的入口地址 LJMP MAIN ;跳轉到主程序的開始處 ORG 0003H ;外部中斷0的中斷程序入口地址 ORG 000BH ;定時器0的中斷程序入口地址 LJMP T0_INT ;跳轉到中斷服務程序處 ORG 0013H ;外部中斷1的中斷程序入口地址 MAIN : MOV SP,#50H MOV IE,#8EH ;CPU開中斷,允許T0中斷,T1中斷和外部中斷1中斷 MOV TMOD,#51H ;設置T1為計數方式,T0為定時方式,且都工作于模式1 MOV TH1,#00H ;T1計數器清零 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 ;判斷是否要設定東西方向紅綠燈時間的初值,若P3.1為1 則跳轉 MOV A,P1 JB P1.7,RED ;判斷P1.7是否為1,若為1則設定紅燈時間,否則設定綠燈時間 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轉到當前指令處執(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、;閃爍時間達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 ;閃爍時間達5秒則退出 SJMP N00;-闖紅燈報警程序-B0: MOV R2,#03H ;報警持續(xù)時間3秒B01: MOV A,R3 JZ N1 ;若倒計時完畢,不再報警 CLR P3.0 ;報警 CJNE R2,#00H,B01 ;判斷3秒是否結束 SJMP N02;-1秒延時子程序-N7: RETIT0_INT:MOV TL0,#9AH ;給定時器T0送定時10ms的初
19、值 MOV TH0,#0F1H INC R4 INC R5 CJNE R5,#0FAH,T01 ;判斷延時是否夠一秒,不夠則調用顯示子程序 MOV R5,#00H ;R5清零 DEC R3 ;倒計時初值減一 DEC R2 ;報警初值減一T01: ACALL DISP ;調用顯示子程序 RETI ;中斷返回;-顯示子程序-DISP: JNB P2.4,T02DISP1: MOV B,#0AH MOV A,R3 ;R3中值二轉十顯示轉換 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中值二轉十顯示轉換 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程序運行結果: 五、結論 本系統充分利用了8051 和8255 芯片的I/O 引腳功能,系統采用MSC-51 系列單片機 8051 和可編程并行I/O 接口芯片8255A 為中心器件來設計交
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024石材工程項目勞務分包服務合同3篇
- 2025年玻璃幕墻玻璃破碎風險評估與應急預案合同樣本3篇
- 2025年度美容儀器銷售代理與市場運營支持合同4篇
- 2025年度人工智能研發(fā)與應用合作協議3篇
- 家教中家長自我成長的重要性
- 現代家庭教育的五大核心能力
- 2025年度住宅小區(qū)物業(yè)費專項維修資金使用與管理合同3篇
- 2025年城市特色餐廳與旅行社聯合營銷合作協議2篇
- 2025年度網絡游戲代理合作協議書(聯合運營)4篇
- 二零二五年貨車共營項目合作協議3篇
- 2024年高考八省聯考地理適應性試卷附答案解析
- 足浴技師與店內禁止黃賭毒協議書范文
- 中國高血壓防治指南(2024年修訂版)要點解讀
- 2024-2030年中國光電干擾一體設備行業(yè)發(fā)展現狀與前景預測分析研究報告
- 湖南省岳陽市岳陽樓區(qū)2023-2024學年七年級下學期期末數學試題(解析版)
- 農村自建房安全合同協議書
- 杜仲葉藥理作用及臨床應用研究進展
- 4S店售后服務6S管理新規(guī)制度
- 高性能建筑鋼材的研發(fā)與應用
- 無線廣播行業(yè)現狀分析
- 漢語言溝通發(fā)展量表(長表)-詞匯及手勢(8-16月齡)
評論
0/150
提交評論