交通燈課程設(shè)計 - 副本
《交通燈課程設(shè)計 - 副本》由會員分享,可在線閱讀,更多相關(guān)《交通燈課程設(shè)計 - 副本(12頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 專業(yè)、班級 學(xué)號 姓名 一、任務(wù): 設(shè)計一個交通燈,要求具有以下功能: 設(shè)計一個交通燈。功能如下: 采用定時器中斷方式控制南北方向,東西方向交通燈,指示時間是30s,當(dāng)時間是5s時綠燈閃亮,為3s時黃燈點(diǎn)亮,30S時間到,交通燈換向。 二、要求: (1)用74LS164來驅(qū)動數(shù)碼顯示管 (2)用8位七段數(shù)碼管來顯示時間 三、主要參考資料 參考文獻(xiàn) 參考文獻(xiàn) 1張毅坤. 單片微型計算機(jī)原理及應(yīng)用,西安電子科技大學(xué)出版社 1998 2余錫存 曹國華.單片機(jī)原理
2、及接口技術(shù)[M].陜西:西安電子科技大學(xué)出版社,2000.7 3雷麗文 等.微機(jī)原理與接口技術(shù)[M].北京:電子工業(yè)出版社,1997.2 1 目錄 1.引言 3 2.工作系統(tǒng)的功能 3 3.硬件部分 3 3.1.AT89C51 3 3.2.74lS164 4 4.軟件設(shè)計流程圖 5 5.中斷系統(tǒng)介紹 5 5.1.實現(xiàn)中斷響應(yīng)和中斷返回 5 5.2實現(xiàn)優(yōu)先權(quán)排隊 5 5.3實現(xiàn)中斷嵌套 6 6.源程序代碼 6 7.參考文獻(xiàn) 11 8.附錄 11 1.引言 近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷深入,同時帶動傳統(tǒng)控制檢測技術(shù)日益更新。
3、在實時檢測和自動控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往作為一個核心部件來使用,僅單片機(jī)方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。 當(dāng)今,紅綠燈安裝在各個道口上,已經(jīng)成為疏導(dǎo)交通車輛最常見和最有效的手段。但這一技術(shù)在19世紀(jì)就已出現(xiàn)了。 電氣啟動的紅燈出現(xiàn)在美國,這種紅綠燈由紅綠黃三色圓形的投光器組成,1914年始安裝于紐約市5號大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。 信號燈的出現(xiàn),使交通得以有效管制,對于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。1968年,聯(lián)合國《道路交通和道路標(biāo)志信號協(xié)定》對各種信號燈的含義作了規(guī)定。綠燈是通行信號,面對
4、綠燈的車輛可以直行,左轉(zhuǎn)彎和右轉(zhuǎn)彎,除非另一種標(biāo)志禁止某一種轉(zhuǎn)向。左右轉(zhuǎn)彎車輛都必須讓合法地正在路口內(nèi)行駛的車輛和過人行橫道的行人優(yōu)先通行。紅燈是禁行信號,面對紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號,面對黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時可以進(jìn)入交叉路口 2.工作系統(tǒng)的功能 采用定時器中斷方式控制南北方向,東西方向交通燈,指示時間是25s,當(dāng)時間是5s時綠燈閃亮,為3s時黃燈點(diǎn)亮,25S時間到,交通燈換向。 3.硬件部分 3.1.AT89C51 8051是MCS-51系列單片機(jī)的典型產(chǎn)品,我們以這一代表性的機(jī)型進(jìn)行系統(tǒng)的講解。 8051
5、單片機(jī)包含中央處理器、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時/計數(shù)器、并行接口、串行接口和中斷系統(tǒng)等: 中央處理器: 中央處理器(CPU)是整個單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn)算和控制輸入輸出功能等操作。 數(shù)據(jù)存儲器(RAM) 8051內(nèi)部有128個8位用戶數(shù)據(jù)存儲單元和128個專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個,可存放讀寫的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶定義的字型表。 程序存
6、儲器(ROM): 8051共有4096個8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。 定時/計數(shù)器(ROM): 8051有兩個16位的可編程定時/計數(shù)器,以實現(xiàn)定時或計數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。 并行輸入輸出(I/O)口: 8051共有4組8位I/O口(P0、P1、P2或P3),用于對外部數(shù)據(jù)的傳輸。 全雙工串行口: 8051內(nèi)置一個全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。 中斷系統(tǒng): 8051具備較完善的中斷功能,有兩個外中斷、兩個定時/計數(shù)器中斷和一個串行中斷,可滿足不同的控制要求,并具有2級的優(yōu)
7、先級別選擇。 3.2.74lS164 74HC164、74HCT164是高速硅門CMOS器件,與低功耗肖特基型TTL(LSTTL)器件的引腳兼容。74HC164、74HCT164是8位邊沿觸發(fā)式移位寄存器,串行輸入數(shù)據(jù),然后并行輸出。數(shù)據(jù)通過兩個輸入端(DSA或DSB)之一串行輸入;任一輸入端可以用作高電平使能端,控制另一輸入端的數(shù)據(jù)輸入。兩個輸入端或者連接在一起,或者把不用的輸入端接高電平,一定不要懸空。 時鐘(CP)每次由低變高時,數(shù)據(jù)右移一位,輸入到Q0,Q0是兩個數(shù)據(jù)輸入端(DSA和DSB)的邏輯與,它將上升時鐘沿之前保持一個建立時間的長度。 主復(fù)位(MR)輸入端上的一個低電平
8、將使其它所有輸入端都無效,同時非同步地清除寄存器,強(qiáng)制所有的輸出為低電平。 功能圖 4.軟件設(shè)計流程圖 南北綠燈,東西紅燈 延時25秒 南北綠燈閃3s轉(zhuǎn)黃燈,亮2秒 南北紅燈,東西綠燈 延時25秒 東西綠燈閃3s轉(zhuǎn)黃燈,亮2秒 End 5.中斷系統(tǒng)介紹 中斷裝置和中斷處理程序統(tǒng)稱為中斷系統(tǒng)。中斷系統(tǒng)是計算機(jī)的重要組成部分。實時控制、故障自動處理、計算機(jī)與外圍設(shè)備間的數(shù)據(jù)傳送往往采用中斷系統(tǒng)。中斷系統(tǒng)的應(yīng)用大大提高了計算機(jī)效率。 5.1.實現(xiàn)中斷響應(yīng)和中斷返回 當(dāng)CPU收到中斷請求后,能根據(jù)具體情況決定是否響應(yīng)
9、中斷,如果CPU沒有更急、更重要的工作,則在執(zhí)行完當(dāng)前指令后響應(yīng)這一中斷請求。CPU中斷響應(yīng)過程如下:首先,將斷點(diǎn)處的PC值(即下一條應(yīng)執(zhí)行指令的地址)推入堆棧保留下來,這稱為保護(hù)斷點(diǎn),由硬件自動執(zhí)行。然后,將有關(guān)的寄存器內(nèi)容和標(biāo)志位狀態(tài)推入堆棧保留下來,這稱為保護(hù)現(xiàn)場,由用戶自己編程完成。保護(hù)斷點(diǎn)和現(xiàn)場后即可執(zhí)行中斷服務(wù)程序,執(zhí)行完畢,CPU由中斷服務(wù)程序返回主程序,中斷返回過程如下:首先恢復(fù)原保留寄存器的內(nèi)容和標(biāo)志位的狀態(tài),這稱為恢復(fù)現(xiàn)場,由用戶編程完成。然后,再加返回指令RETI,RETI指令的功能是恢復(fù)PC值,使CPU返回斷點(diǎn),這稱為恢復(fù)斷點(diǎn)?;謴?fù)現(xiàn)場和斷點(diǎn)后,CPU將繼續(xù)執(zhí)行原主程序
10、,中斷響應(yīng)過程到此為止。 5.2實現(xiàn)優(yōu)先權(quán)排隊 通常,系統(tǒng)中有多個中斷源,當(dāng)有多個中斷源同時發(fā)出中斷請求時,要求計算機(jī)能確定哪個中斷更緊迫,以便首先響應(yīng)。為此,計算機(jī)給每個中斷源規(guī)定了優(yōu)先級別,稱為優(yōu)先權(quán)。這樣,當(dāng)多個中斷源同時發(fā)出中斷請求時,優(yōu)先權(quán)高的中斷能先被響應(yīng),只有優(yōu)先權(quán)高的中斷先權(quán)排隊,這個過程可通過硬件電路來實現(xiàn),亦可通過軟件查詢來實現(xiàn)。 5.3實現(xiàn)中斷嵌套 當(dāng)CPU響應(yīng)某一中斷時,若有優(yōu)先權(quán)高的中斷源發(fā)出中斷請求,則CPU能中斷正在進(jìn)行的中斷服務(wù)程序,并保留這個程序的斷點(diǎn),響應(yīng)高級中斷,高級中斷處理結(jié)束以后,再繼續(xù)進(jìn)行被中斷的中斷服務(wù)程序,這個過程稱為中斷嵌套。如果發(fā)出新
11、的中斷請求的中斷源的優(yōu)先權(quán)級別與正在處理的中斷源同級或更低時,CPU不會響應(yīng)這個中斷請求,直至正在處理的中斷服務(wù)程序執(zhí)行完以后才能去處理新中斷請求。 6.源程序代碼 SECOND1 EQU 30H 東西路口計時寄存器 SECOND2 EQU 31H 南北路口計時寄存器 DBUF EQU 40H 顯示碼緩沖區(qū)1 TEMP EQU 44H 顯示碼緩沖區(qū)2 LED_G1 BIT P2.1
12、 東西路口綠燈 LED_Y1 BIT P2.2 東西路口黃燈 LED_R1 BIT P2.3 東西路口紅燈 LED_G2 BIT P2.4 南北路口綠燈 LED_Y2 BIT P2.5 南北路口黃燈 LED_R2 BIT P2.6 南北路口紅燈 ORG 0000H LJMP START ORG 0100H START: MOV TMOD,#01H
13、 置T0為工作方式1 MOV TH0, #3CH 置T0定時初值50ms MOV TL0, #0B0H CLR TF0 SETB TR0 啟動T0 CLR A MOV P1,A 關(guān)閉不相關(guān)的LED LOOP: MOV R2,#20 置1S計數(shù)初值,50ms*20=1s MOV R3,#25 紅燈25S MOV SECOND1,#30 東西路口計時顯示
14、初值30S MOV SECOND2,#30 南北路口計時顯示初值30S LCALL DISPLAY LCALL STATE1 調(diào)用狀態(tài)1 WAIT1: JNB TF0,WAIT1 查詢50ms到否 CLR TF0 MOV TH0,#3CH 恢復(fù)T0定時初值50Ms MOV TL0, #0B0H DJNZ R2,WAIT1 判斷1s到否?未到繼續(xù)狀態(tài)1 MOV R2,#20 置50ms計數(shù)初值
15、DEC SECOND1 東西路口顯示時間減1s DEC SECOND2 南北路口顯示時間減1s LCALL DISPLAY DJNZ R3,WAIT1 狀態(tài)1維持25s MOV R2,#5 置50ms計數(shù)初值5*4=20 MOV R3,#3 綠燈閃3s MOV R4,#4 閃爍間隔200ms MOV SECOND1,#5 東西路口計數(shù)顯示初值5s MO
16、V SECOND2,#5 南北路口計數(shù)顯示初值5s LCALL DISPLAY WAIT2: LCALL STATE2 調(diào)用狀態(tài)2 JNB TF0,WAIT2 查詢50ms到否 CLR TF0 MOV TH0,#3CH 恢復(fù)T0定時初值50s MOV TL0, #0B0H DJNZ R4,WAIT2 判斷200ms到否?未到繼續(xù)狀態(tài)2 CPL LED_G1 東西綠燈閃 MOV R4,#4
17、 閃爍間隔200ms DJNZ R2,WAIT2 判斷1s到否?未到繼續(xù)狀態(tài)2 MOV R2,#5 置50ms計數(shù)初值 DEC SECOND1 東西路口顯示時間減1s DEC SECOND2 南北路口顯示時間減1s LCALL DISPLAY DJNZ R3,WAIT2 狀態(tài)2維持3s MOV R2,#20 置50ms計數(shù)初值 MOV R3,#2
18、 黃燈閃2s MOV SECOND1,#2 東西路口計時顯示初值2s MOV SECOND2,#2 南北路口計時顯示初值2s LCALL DISPLAY WAIT3: LCALL STATE3 調(diào)用狀態(tài)3 JNB TF0,WAIT3 查詢100ms到否 CLR TF0 MOV TH0,#3CH 恢復(fù)T0定時初值100ms MOV TL0, #0B0H DJNZ R2,WAIT3 判斷1s到
19、否?未到繼續(xù)狀態(tài)3 MOV R2,#20 置100ms計數(shù)初值 DEC SECOND1 東西路口顯示時間減1s DEC SECOND2 南北路口顯示時間減1s LCALL DISPLAY DJNZ R3,WAIT3 狀態(tài)3維持2s MOV R2,#20 置50ms計數(shù)初值 MOV R3,#25 紅燈閃25s MOV SECOND1,#30 東西路口計時顯示初值
20、30s MOV SECOND2,#30 南北路口計時顯示初值30s LCALL DISPLAY WAIT4: LCALL STATE4 調(diào)用狀態(tài)4 JNB TF0,WAIT4 查詢100ms到否 CLR TF0 MOV TH0,#3CH 恢復(fù)T0定時初值100ms MOV TL0, #0B0H DJNZ R2,WAIT4 判斷1s到否?未到繼續(xù)狀態(tài)4 MOV R2,#20 置100ms計數(shù)初值 D
21、EC SECOND1 東西路口顯示時間減1s DEC SECOND2 南北路口顯示時間減1s LCALL DISPLAY DJNZ R3,WAIT4 狀態(tài)4維持20s MOV R2,#5 置50ms計數(shù)初值 MOV R4,#4 紅燈閃20ms MOV R3,#3 綠燈閃3s MOV SECOND1,#5 東西路口計數(shù)顯示初值5s MOV SECO
22、ND2,#5 南北路口計數(shù)顯示初值5s LCALL DISPLAY WAIT5: LCALL STATE5 調(diào)用狀態(tài)5 JNB TF0,WAIT5 查詢100ms到否 CLR TF0 MOV TH0,#3CH 恢復(fù)T0定時初值100ms MOV TL0, #0B0H DJNZ R4,WAIT5 判斷200ms到否?未到繼續(xù)狀態(tài)5 CPL LED_G2 南北綠燈閃 MOV R4,#4
23、 閃爍200ms DJNZ R2,WAIT5 判斷1s到否?未到繼續(xù)狀態(tài)5 MOV R2,#5 置100ms計數(shù)初值 DEC SECOND1 東西路口顯示時間減1s DEC SECOND2 南北路口顯示時間減1s LCALL DISPLAY DJNZ R3,WAIT5 狀態(tài)5維持3s MOV R2,#20 置50ms計數(shù)初值 MOV R3,#2 紅燈閃
24、2s MOV SECOND1,#2 東西路口計數(shù)顯示初值2s MOV SECOND2,#2 南北路口計數(shù)顯示初值2s LCALL DISPLAY WAIT6: LCALL STATE6 調(diào)用狀態(tài)6 JNB TF0,WAIT6 查詢100ms到否 CLR TF0 MOV TH0,#3CH 恢復(fù)T0定時初值100ms MOV TL0, #0B0H DJNZ R2,WAIT6 判斷1s到否?未到繼續(xù)狀態(tài)6 MOV
25、R2,#20 置100ms計數(shù)初值 DEC SECOND1 東西路口顯示時間減1s DEC SECOND2 南北路口顯示時間減1s LCALL DISPLAY DJNZ R3,WAIT6 狀態(tài)6維持2s LJMP LOOP 大循環(huán) STATE1: 狀態(tài)1 SETB LED_G1 東西路口綠燈亮 CLR LED_Y1 CLR LED_R1
26、 CLR LED_G2 CLR LED_Y2 SETB LED_R2 南北路口紅燈亮 RET STATE2: 狀態(tài)2 CLR LED_Y1 CLR LED_R1 CLR LED_G2 CLR LED_Y2 SETB LED_R2 南北路口紅燈亮 RET STATE3: 狀態(tài)3 CLR LED_G1 CLR LED_R1 CLR LED_G2 CLR LED_Y
27、2 SETB LED_R2 南北路口紅燈亮 SETB LED_Y1 東西路口綠燈亮 RET STATE4: 狀態(tài)4 CLR LED_G1 CLR LED_Y1 SETB LED_R1 東西路口紅燈亮 SETB LED_G2 南北路口綠燈亮 CLR LED_Y2 CLR LED_R2 RET STATE5: 狀態(tài)5 CLR L
28、ED_G1 CLR LED_Y1 SETB LED_R1 東西路口紅燈亮 CLR LED_Y2 CLR LED_R2 RET STATE6: 狀態(tài)6 CLR LED_G1 CLR LED_Y1 SETB LED_R1 東西路口紅燈亮 CLR LED_G2 CLR LED_R2 SETB LED_Y2 南北路口紅燈亮 RET DISPLAY: 數(shù)碼
29、顯示 MOV A,SECOND1 東西路口計時寄存器 MOV B,#10 十六進(jìn)制數(shù)拆成兩個十進(jìn)制數(shù) DIV AB MOV DBUF+3, A MOV A, B MOV DBUF+2, A MOV A, SECOND2 MOV B, #10 DIV AB MOV DBUF+1, A MOV A, B MOV DBUF, A MOV R0, #DBUF MOV R1, #TEMP MOV R7, #4 DP10: MOV DPTR, #LEDMAP MOV A,@R0 MO
30、VC A,@A+DPTR MOV @R1, A INC R0 INC R1 DJNZ R7, DP10 MOV R0, #TEMP MOV R1, #4 DP12: MOV R7, #8 MOV A,@R0 DP13: RLC A MOV P3.0, C CLR P3.1 SETB P3.1 DJNZ R7, DP13 INC R0 DJNZ R1, DP12 RET LEDMAP: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH 0,1,2,3,4,5 DB 7DH, 07H, 7FH, 6FH, 77H, 7CH 6,7,8,9,A,B DB 58H, 5EH, 7BH, 71H, 0, 40H C,D,E,F(xiàn) END 7.參考文獻(xiàn) 1張毅坤. 單片微型計算機(jī)原理及應(yīng)用,西安電子科技大學(xué)出版社,1998 2余錫存 曹國華.單片機(jī)原理及接口技術(shù)[M].陜西:西安電子科技大學(xué)出版社,2000.7 3雷麗文 等.微機(jī)原理與接口技術(shù)[M].北京:電子工業(yè)出版社,1997.2 8.附錄 電路原理圖 12
- 溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025《增值稅法》高質(zhì)量發(fā)展的增值稅制度規(guī)范增值稅的征收和繳納
- 深入學(xué)習(xí)《中華人民共和國科學(xué)技術(shù)普及法》推進(jìn)實現(xiàn)高水平科技自立自強(qiáng)推動經(jīng)濟(jì)發(fā)展和社會進(jìn)步
- 激揚(yáng)正氣淬煉本色踐行使命廉潔從政黨課
- 加強(qiáng)廉潔文化建設(shè)夯實廉政思想根基培育風(fēng)清氣正的政治生態(tài)
- 深入學(xué)習(xí)2024《突發(fā)事件應(yīng)對法》全文提高突發(fā)事件預(yù)防和應(yīng)對能力規(guī)范突發(fā)事件應(yīng)對活動保護(hù)人民生命財產(chǎn)安全
- 2023年四年級數(shù)學(xué)上冊第一輪單元滾動復(fù)習(xí)第10天平行四邊形和梯形作業(yè)課件新人教版
- 2023年四年級數(shù)學(xué)上冊第14單元階段性綜合復(fù)習(xí)作業(yè)課件新人教版
- 2023年四年級數(shù)學(xué)上冊易錯清單十五課件新人教版
- 2023年四年級數(shù)學(xué)上冊易錯清單七課件西師大版
- 2023年五年級數(shù)學(xué)下冊易錯清單六作業(yè)課件北師大版
- 2023年五年級數(shù)學(xué)下冊易錯清單二作業(yè)課件北師大版
- 2023年五年級數(shù)學(xué)下冊四分?jǐn)?shù)的意義和性質(zhì)第10課時異分母分?jǐn)?shù)的大小比較作業(yè)課件蘇教版
- 2023年五年級數(shù)學(xué)下冊周周練四作業(yè)課件北師大版
- 2023年五年級數(shù)學(xué)下冊六折線統(tǒng)計圖單元復(fù)習(xí)卡作業(yè)課件西師大版
- 2023年四年級數(shù)學(xué)上冊6除數(shù)是兩位數(shù)的除法單元易錯集錦一作業(yè)課件新人教版