基于單片機(jī)的交通信號燈控制系統(tǒng)設(shè)計完整版李坤_第1頁
基于單片機(jī)的交通信號燈控制系統(tǒng)設(shè)計完整版李坤_第2頁
基于單片機(jī)的交通信號燈控制系統(tǒng)設(shè)計完整版李坤_第3頁
基于單片機(jī)的交通信號燈控制系統(tǒng)設(shè)計完整版李坤_第4頁
基于單片機(jī)的交通信號燈控制系統(tǒng)設(shè)計完整版李坤_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、二一四二一五學(xué)年第 二 學(xué)期信息科學(xué)與工程學(xué)院課程設(shè)計報告班 級: 自動化1304班 姓 名: 李坤 學(xué) 號: 201304134174 指導(dǎo)教師: 章政 二一六年一月十二日一、設(shè)計題目:單片機(jī)交通信號燈控制系統(tǒng)設(shè)計二、設(shè)計目的:通過本課程的設(shè)計,進(jìn)一步掌握I/O接口設(shè)計和常用程序設(shè)計技術(shù),掌握單片機(jī)控制系統(tǒng)的設(shè)計的一般方法,能根據(jù)系統(tǒng)設(shè)計要求,完成應(yīng)用系統(tǒng)的硬件和軟件設(shè)計。三、系統(tǒng)設(shè)計要求:本交通燈控制系統(tǒng)控制東西、南北兩個方向信號燈,每個路口分別設(shè)置兩組紅綠燈(左轉(zhuǎn),直行),紅燈禁止通行,綠燈允許通行,黃燈閃爍。左轉(zhuǎn)方向,南北直行,東西直行的通行時間由對應(yīng)的兩位BCD碼撥碼盤設(shè)置,綠燈向紅

2、燈轉(zhuǎn)換前黃燈閃爍三次共3秒鐘,紅燈向綠燈過渡時不閃爍。系統(tǒng)上電時的初始狀態(tài)為東西、南北兩個方向均為紅燈,持續(xù)2秒后為東西方向綠燈,南北方向紅燈,之后以定時方式控制兩個方向的汽車輪流通行。四、設(shè)計說明書要求:1. 根據(jù)交通燈控制系統(tǒng)功能要求,選擇合適的INTEL51系列CPU,設(shè)計單片機(jī)復(fù)位、振蕩電路。2. 設(shè)計輸入接口,實現(xiàn)由BCD撥碼盤設(shè)定通行時間的輸入。3. 設(shè)計輸出接口,每個LED代表一個燈,由輸出口控制東西、南北方向的左轉(zhuǎn),直行信號燈的點亮與熄滅。4. 設(shè)計并繪制控制系統(tǒng)接線原理圖。5. 設(shè)計并繪出系統(tǒng)軟件框圖。6. 根據(jù)系統(tǒng)軟件框圖編寫控制系統(tǒng)應(yīng)用程序,并調(diào)試控制程序。7. 撰寫計算

3、機(jī)控制系統(tǒng)課程設(shè)計說明書。8. 設(shè)計說明書包括封面、目錄、正文、參考文獻(xiàn)。正文包括設(shè)計目的與意義、設(shè)計要求、常見交通信號燈系統(tǒng)概述、系統(tǒng)硬件設(shè)計方案、系統(tǒng)原理圖及描述、軟件設(shè)計方案、程序框圖及描述、程序清單與注解說明、設(shè)計小結(jié)(體會與收獲)等。報告正文1設(shè)計任務(wù)及思路本交通燈控制系統(tǒng)控制東西、南北兩個方向信號燈,每個路口分別設(shè)置兩組紅綠燈(左轉(zhuǎn),直行),紅燈禁止通行,綠燈允許通行,黃燈閃爍。左轉(zhuǎn)方向,南北直行,東西直行的通行時間由對應(yīng)的兩位BCD碼撥碼盤設(shè)置,綠燈向紅燈轉(zhuǎn)換前黃燈閃爍三次共3秒鐘,紅燈向綠燈過渡時不閃爍。系統(tǒng)上電時的初始狀態(tài)為東西、南北兩個方向均為紅燈,持續(xù)2秒后為東西方向綠燈

4、,南北方向紅燈,之后以定時方式控制兩個方向的汽車輪流通行。2芯片的選擇2.1 74LS373以及74LS07簡介74LS373 是一種帶三態(tài)門的8D鎖存器,其管腳示意圖2如下所示:圖2 74LS373管腳示意圖其中: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)閉,輸出高阻。六驅(qū)動器(OC高壓輸出) 74LS07       Vcc  6A  6Y

5、  5A  5Y  4A  4          14  13  12  11  10   9   8Y = A   )              &

6、#160;                     1   2   3   4   5   6   7         7805實現(xiàn)正電壓輸出,負(fù)電壓截止。22交通燈控制原理分析與方案論證本設(shè)計以單片機(jī)為核心,

7、以LED數(shù)碼管作為倒計時指示,根據(jù)設(shè)計的要求我們考慮了各功能模塊的幾種設(shè)計方案,以求最佳方案,實現(xiàn)實時顯示系統(tǒng)各種狀態(tài),系統(tǒng)還增設(shè)了根據(jù)交通擁擠情況可分別設(shè)置主干道和次干道的通行時間,以提高效率,緩減交通擁擠。系統(tǒng)總體設(shè)計框圖如圖8所示:單片機(jī)最小系統(tǒng)倒計時交通燈鍵盤與狀態(tài)顯示2.3單片機(jī)最小系統(tǒng) 2.3.1 振蕩電路AT89C51是內(nèi)部具有振蕩電路的單片機(jī),只需在18腳和19腳之間接上石英晶體,給單片機(jī)加工作所需直流電源,振蕩器就開始振蕩起來。振蕩電路就為單片機(jī)工作提供了所需要的時鐘脈沖信號,是單片機(jī)的內(nèi)部電路、單片機(jī)的內(nèi)部程序(若有)開始工作。振蕩電路不工作,整個單片機(jī)電路都不能正常工作。

8、AT89C51常外接6MHz、12MHz的石英晶體,18腳和19腳分別對地接了一個20pF的電容,目的是防止單片機(jī)自激。若從18腳輸入外部時鐘脈沖,則19腳接地。2.3.2 復(fù)位電路復(fù)位電路就是在RST端(9腳)外接的一個電路,目的是使單片機(jī)上的電開始工作時,內(nèi)部電路從初始狀態(tài)開始工作,或者在工作中人為讓單片機(jī)重新從初始狀態(tài)開始工作。在時鐘工作的情況下,只要復(fù)位引腳高電平保持在兩個機(jī)器周期以上的時間,AT89C51便能完成系統(tǒng)重置的各項工作,使得內(nèi)部特殊功能寄存器的內(nèi)容均被設(shè)置成已知狀態(tài),并且從地址0000H處讀入程序代碼而執(zhí)行程序。單片機(jī)最小系統(tǒng)電路如圖9所示:2.4 顯示及其驅(qū)動模塊鍵盤在

9、本設(shè)計中用于緊急情況的手動控制裝置,以及定時時間的設(shè)置等功能,起到了不可缺少的重要作用。當(dāng)定時器定時為1秒時程序跳轉(zhuǎn)到時間顯示及信號燈顯示子程序,它將依次顯示信號燈時間,同時一直顯示信號燈的顏色,這時在返回定時子程序定時1秒,在顯示黃燈的下一個時間,這樣依次把所有的時間顯示完后在重新給時間計數(shù)器賦初值,重新進(jìn)入循環(huán)。鍵盤電路如圖10所示:圖10 鍵盤電路3系統(tǒng)軟件設(shè)計3.1延時程序設(shè)計延時方法可以有兩種一種是利用MCS-51內(nèi)部定時器產(chǎn)生溢出中斷來確定延時的時間,另一種是采用軟延時的方法。下面給出延時1秒的實現(xiàn)方法。3.1.1計數(shù)器硬件延時 計數(shù)器初值計算定時器工作時必須給計數(shù)器送計數(shù)器初值,

10、這個值是送到TH和TL中的。它是以加法記數(shù)的,并能從全1到全0時自動產(chǎn)生溢出中斷請求。因此,我們可以把計數(shù)器記滿為零所需的計數(shù)值設(shè)定為C和計數(shù)初值設(shè)定為TC 可得到如下計算通式:TC=M-C式中,M為計數(shù)器模值,該值和計數(shù)器工作方式有關(guān)。在方式0時M為213 ;在方式1時M的值為216;在方式2和3的M值為28。 計算公式 T=(MTC)T計數(shù)或TCMTT計數(shù)T計數(shù)是單片機(jī)時鐘周期TCLK的12倍;TC為定時初值如單片機(jī)的主脈沖頻率為TCLK=12MHZ,經(jīng)過12分頻方式0TMAX213 *1微秒8.192毫秒方式1TMAX216 *1微秒65.536毫秒方式2、3 TMAX= 28 *1微秒

11、=256微秒顯然1秒鐘已經(jīng)超過了計數(shù)器的最大定時間,所以我們只有采用定時器和軟件相結(jié)合的辦法和級聯(lián)的方式解決這么個問題。設(shè)置秒延時我們采用在主程序中設(shè)定一個初值為20的軟件計數(shù)器和使T0定時50毫秒。這樣每當(dāng)T0到50毫秒時CPU就響應(yīng)它的溢出中斷請求,進(jìn)入他的中斷服務(wù)子程序。在中斷服務(wù)子程序中,CPU先使軟件計數(shù)器減1,然后判斷它是否為零。為零表示1秒已到,可以返回到輸出時間顯示程序。相應(yīng)程序代碼 主程序定時器需定時50毫秒,故T0工作于方式1。初值:TCMTT計數(shù)21650ms/1us=15536=3CBOH ORG 1000H START: MOV TMOD, #01H ;令T0為定時器

12、方式1 MOV TH0, #3CH ;裝入定時器初值 MOV TL0, #BOH MOV IE,#82H ;開T0中斷 SEBT TR0;啟動T0計數(shù)器 MOV RO,#14H ;軟件計數(shù)器賦初值LOOP:SJMP $;等待中斷 中斷服務(wù)子程序 ORG000BH AJMPBRTO ORG2000H BRTO:DJNZ R0,NEXTAJMP TIME ;跳轉(zhuǎn)到時間及信號燈顯示子程序 MOVR0,#14H ;恢復(fù)R0值 MOV TH0,#3CH ;重裝入定時器初值 MOV TL0,#BOH MOV IE,#82H RETIEND3.1.2軟件延時MCS-51的工作頻率為2-12MHZ,我們選用的

13、8031單片機(jī)的工作頻率為6MHZ。機(jī)器周期與主頻有關(guān),機(jī)器周期是主頻的12倍,所以一個機(jī)器周期的時間為12*(1/6M)=2us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定1秒的時間。具體的延時程序分析:DELAY: MOV R4,#08H ;延時1秒子程序DE2: LCALL DELAY1 DJNZ R4,DE2 RETDELAY1: MOV R6,#0 ; 延時125ms 子程序 MOV R5,#0DE1: DJNZ R5,$ DJNZ R6,DE1 RET MOV RN,#DATA ;字節(jié)數(shù)數(shù)為2, 機(jī)器周期數(shù)為1DELAY1為一個延時125mS子程序的雙

14、重循環(huán),循環(huán)次數(shù)256*256=65536 所以延時時間為65536*2=131072us 約為125ms。 R4設(shè)置的初值為8時,主延時程序循環(huán)8次,所以125ms*8= 1秒。由于單片機(jī)的運行速度很快其他的指令執(zhí)行時間可以忽略不計。3.2程序設(shè)計3.2.1流程圖 按鍵流程圖如圖12所示: 圖12 按鍵流程圖程序流程圖如圖13所示:初始化開始黃燈燃亮狀態(tài)紅燈燃亮狀態(tài)R5=0?綠燈燃亮狀態(tài)R6=0?NNNYYY 有鍵盤事件?處理鍵盤事件YN R4=0? 圖13 程序流程圖3.2.2 源程序代碼R4 存放黃燈時間 3 03H (時間可以動態(tài)設(shè)定)R5 存放紅燈時間 20 14HR6 存放綠燈時間

15、 30 1EHPC0 顯示黃燈信號PC1 顯示紅燈信號PC2 顯示黃燈信號 工作于方式0 8255 PA、PB、PC口輸出控制字為10000000B (80H)程序代碼:ORG 0000H LJMP MAIN ORG 0100HMAIN: MOV R1,#03H ;初始化8255 MOV A,#80H MOVX R1,A MOV R4,#03 ; 存放黃燈時間 MOV R5,#20 ;存放紅燈時間 MOV R6,#30 ; 存放綠燈時間START: LCALL KEY_INLCALL DISP_Y LCALL DISP_R LCALL DISP_Y LCALL DISP_G LCALL DIS

16、P_Y MOV A,R5 ;保存R5中的時間 PUSH A MOV R5,#66 LCALL DISP_R POP A MOV R5,A JMP START按鍵子程序:KEY_IN: MOV P1,0FFH ;按鍵子程序 MOV C,P3.0 JNB EXIT MOV C,P1.7 JNB TEST_Y ANL P1,3FH ;顯示紅燈 MOV R5,P1 LCALL DISP_RTEST_Y: MOV C,P1.6 ;顯示綠燈 JNB EXIT ANL P1,3FH MOV R6,P1 LCALL DISP_GEXIT: RET DISP_Y: MOV R1,#O ;顯示黃燈十位 MOV D

17、PTR,#TAB MOV A,R1 MOVC A,A+DPTR MOV R1,#01H MOVX R1,A MOV A,R4 ;顯示黃燈個位 MOV R0,A NEXT1: MOV DPTR,#TAB MOV A,R0 MOVC A,A+DPTR MOV R1,#00H MOV R1,A MOV R1,#02H ;顯示黃燈信號 MOV A,#04H MOV R1,A ACALL DELAY ;延時1秒 DJNZ R0,NEXT1 RETDISP_R: MOV A,R5 MOV R0,A NEXT2: MOV DPTR,#TAB ;顯示紅燈十位 MOV A,R0 MOV B,#10 DIV AB

18、 MOVC A,A+DPTR MOV R1,#01H MOV A,R0 MOVX R1,AMOV DPTR,#TAB ;顯示紅燈個位 MOV R2,B MOV A,R2 MOVC A,A+DPTR MOV R1,#00H MOVX R1,A MOV R1,#02H ;顯示紅燈信號 MOV A,#01H MOVX R1,A ACALL DELAY ;延時1秒 DJNZ R0,NEXT2 RETDISP_G: MOV A,R6 MOV R0,A NEXT3: MOV DPTR,#TAB ;顯示綠燈十位 MOV A,R0 MOV B,#10 DIV AB MOVC A,A+DPTR MOV R1,#

19、01H MOV A,R0 MOVX R1,A MOV DPTR,#TAB ;顯示綠燈個位 MOV R2,B MOV A,R2 MOVC A,A+DPTR MOV R1,#00H MOVX R1,A MOV R1,#02H ;顯示綠燈信號 MOV A,#02H MOVX R1,A ACALL DELAY ;延時1秒 DJNZ R0,NEXT3 RETDELAY: MOV R4,#08H ;延時1秒子程序 DE2: LCALL DELAY1 DJNZ R4,DE2 RETDELAY1: MOV R6,#0 MOV R5,#0DE1: DJNZ R5,$ DJNZ R6,DE1 RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H ;驅(qū)動代碼表 END4 .調(diào)試運行 1.接硬件圖接線,為了確保東西南北紅黃綠燈能夠?qū)?yīng)顯示,實驗時,對P1口的接線做了調(diào)整。即,P1.0接L3,P1.1接L2,P1.2接L1,P1.3接L6,P1.4接L5,P1.5接L3。2.S/P區(qū)DATA插孔接BUS 3區(qū)P3。 S/P區(qū)CLK插孔接BUS 3區(qū)P3。 S/P區(qū) C

溫馨提示

  • 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

提交評論