




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、-. z.摘 要近年來隨著科技的飛速開展,單片機的應用正在不斷深入,同時帶動傳統控制檢測技術日益更新。在實時檢測和自動控制的單片機應用系統中,單片機往往作為一個核心部件來使用,僅單片機方面知識是不夠的,還應根據具體硬件構造軟硬件結合,加以完善。十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。則靠什么來實現這井然秩序呢?靠的就是交通信號燈的自動指揮系統。交通信號燈控制方式很多。本系統采用MCS-51系列單片機AT89C51為中心器件來設計交通燈控制器,實現了能根據實際車流量通過8051芯片的P3口設置紅、綠燈燃亮時間的功能;紅綠燈循環點亮,倒計時剩5秒時黃燈閃爍警示交通燈信號通過P1口
2、輸出,顯示時間通過P0口輸出至雙位數碼管。本系統設計周期短、可靠性高、實用性強、操作簡單、維護方便、擴展功能強。關鍵詞:單片機;交通燈 AbstractIn recent years, with the rapid development of science and technology, the application of SCM is going deep, driving the traditional detection techniques to renew day by day. In the real-time e*amination and in the automatic
3、 control monolithic integrated circuit application system, the monolithic integrated circuit often took a core part uses.The monolithic integrated circuit aspect knowledge is only insufficient, but should also act according to the concrete hardware architecture software and hardware union, to be imp
4、roved.The intersection vehicles shuttle, the pedestrian is bustling, car dealership traffic lane, person sidewalk, methodical. Then depending on what to realizes this orderly order the traffic lights on the automatic control system. There are great number kinds of modes to control the traffic lights
5、. The system uses a series of MCS-51 as the center AT89C51 single-chip device designed to control the traffic lights,so as to realize the function of setting red, green light time by 8051 chips P3 port according to the actual traffic flows, lighting the red-light and green-light by turn and lighting
6、 the yellow-light to warm while 5 seconds left(outputting the traffic light signal by P1,outpuing the time by P0 and showing the time on double-digitsni*ie tube). Short of the design cycle, high reliability, practical, simple operation, easy maintenance, the e*pansion of powerful is this system.Key
7、words:SCM; MCU; traffic light目 錄TOC o 1-2 h z uHYPERLINK l _Toc278403553中 英 文 摘 要 PAGEREF _Toc278403553 h 2HYPERLINK l _Toc2784035541設計要求4HYPERLINK l _Toc278403555設計目的 PAGEREF _Toc278403555 h 4HYPERLINK l _Toc2784035563方案比擬、設計與論證 PAGEREF _Toc278403556 h 4HYPERLINK l _Toc2784035574原理分析 PAGEREF _Toc27
8、8403557 h 5HYPERLINK l _Toc2784035584.1 交通燈顯示時序的理論分析 PAGEREF _Toc278403558 h 5HYPERLINK l _Toc2784035594.2 交通燈顯示的理論分析7HYPERLINK l _Toc2784035605程序設計流程圖 PAGEREF _Toc278403560 h 7HYPERLINK l _Toc2784035616總體設計與電路圖 PAGEREF _Toc278403561 h 9HYPERLINK l _Toc2784035626.1芯片選擇 PAGEREF _Toc278403562 h 9HYPER
9、LINK l _Toc2784035636.2設計電路圖10HYPERLINK l _Toc2784035646.3PROTEUS仿真圖:11HYPERLINK l _Toc2784035656.4交通燈程序12HYPERLINK l _Toc2784035667 仿真測試、數據及結果分析18HYPERLINK l _Toc2784035678 總結與展望 PAGEREF _Toc278403567 h 18HYPERLINK l _Toc278403568致謝20HYPERLINK l _Toc278403569參考文獻:21HYPERLINK l _Toc278403570附 錄 PAGE
10、REF _Toc278403570 h 221設計要求1.1程序開場運行先南北段通行、東西段制止60s,后東西段通行、南北段制止60s,依此循環。 1.2系統分三種工作模式:正常模式、繁忙模式、特殊模式,并且通過三個按鈕正常、繁忙、特殊可相互轉化。1.3正常模式: 直行時間顯示數碼管顯示60。此時南北段直行通行綠燈、東西段制止紅燈40s,南北段人行道通行綠燈,東西段人行道制止紅燈,同時南北段和東西段方向的數碼管分別從40s和60s開場倒計時,至最后5s時南北段綠燈變成黃燈閃爍;此后南北段左拐左拐燈亮通行、東西段制止紅燈20s,南北段、東西段人行道都制止紅燈,同時南北段和東西段方向的數碼管都從2
11、0s開場倒計時,至最后5s時南北段左拐燈變成黃燈閃爍;再后東西段直行通行綠燈、南北段制止紅燈40s,東西段人行道通行綠燈,南北段人行道制止紅燈,同時東西段和南北段方向的數碼管分別從40s和60s開場倒計時,至最后5s時東西段綠燈變成黃燈閃爍;最后東西段左拐左拐燈亮通行、南北段制止紅燈20s,東西段、南北段人行道都制止紅燈,同時東西段和南北段方向的數碼管都從20s開場倒計時,至最后5s時東西段左拐燈變成黃燈閃爍。1.4繁忙模式:繁忙指示燈亮,南北段、東西段的通行時間改為45s,其中左拐的時間改為15s,其它與正常模式類似。1.5特殊模式:特殊模式燈亮,南北段、東西段的通行時間改為75s,其中左拐
12、的時間改為20s,其它與正常模式類似。設計目的2.1了解交通燈管理的根本工作原理2.2熟悉AT89C51的工作原理和應用編程2.3熟悉AT89C51并行接口的各種工作方式和應用2.4熟悉AT89C51計數器/定時器的工作方式和應用編程外部中斷的方法2.5掌握多位LED顯示問題的解決 3方案比擬、設計與論證3.1 顯示界面方案3.1.1 倒計時顯示該系統要求完成倒計時的功能。因只需顯示數字,基于上述原因,我們考慮完全采用數碼管顯示,四個路口分別采用一個二位陰極數碼管即可。3.1.2 狀態燈顯示該系統要求完成狀態燈顯示的功能。求于簡單,我們把各個路口的紅燈和黃燈設成直行和左拐兩個通行方式所共有,也
13、就是說,一個路口只需四個狀態燈,一個直行通行的綠燈,一個左拐通行的綠燈,一個共有的紅燈,一個共有的黃燈。3.2 輸入方案該系統要求能手動改變東西與南北的通行時間、緊急情況處理,我們采用擴展I/O口方法,在外部中斷P32口上擴展三個中斷口,分別連接三個按鈕。該方案的優點是:使用靈活,并且可提供較多I/O口,節省了AT89C51的中斷口資源。4原理分析4.1 交通燈顯示時序的理論分析下列圖所示為一種紅綠燈規則的狀態圖。圖4.1 狀態S1南北直行通行圖4.2 狀態S2南北左拐通行圖4.1 狀態S1南北直行通行圖4.2 狀態S2南北左拐通行圖4.4 狀態S4東 西左拐通行圖4.3 狀態S3東西直行通行
14、圖4.4 狀態S4東 西左拐通行圖4.3 狀態S3東西直行通行共四種狀態,分別設定為S1、S2、S3、S4,交通燈以這四種狀態為一個周期,循環執行如下列圖所示:圖4.5 交通燈狀態循環圖圖4.5 交通燈狀態循環圖依據上述車輛行駛的狀態圖,可以列出各個路口燈的邏輯表如下表所示(其中邏輯值1代表直行通行,邏輯值0代表制止通行,邏輯值L代表左拐通行):S1的狀態ESWN邏輯值0101顯示時間正常模式下為40SS2的狀態ESWN邏輯值0L0L顯示時間正常模式下為20SS3的狀態ESWN邏輯值1010顯示時間正常模式下為40SS4的狀態ESWN邏輯值L0L0顯示時間正常模式下為20S程序就是在上述四種狀
15、態下循環轉化的。一個周期四個狀態,在正常模式下共花費2分鐘。4.2 交通燈顯示的理論分析4.2.1 倒計時顯示的理論分析 利用定時器中斷,設置TH0=TH1(65536-50000)/256,即每0.05秒中斷一次。每到第20次中斷即過了20*0.05秒1秒時,使時間的計數值減1,便實現了倒計時的功能。4.2.2 狀態燈顯示的理論分析 黃燈閃爍同樣可以利用定時器中斷。每到第10次中斷即過了10*0.05秒0.5秒時,使黃燈標志位反置,即可讓黃燈1秒閃爍一次。5程序設計流程圖T0響應T0響應N南北黃燈標志位為1N東西黃燈標志位為1Y0.5s到Y1s到南北黃燈位置反團里Y東西黃燈位置反團里Y返回倒
16、計時減1,計數值置0NN圖5.1 定時器0中斷流程圖開場開場南北直行通行東西制止南北左拐通行東西制止AT89C51初始化南北黃燈閃爍南北黃燈閃爍通行35秒YN閃爍5秒YN通行15秒YN閃爍5秒YN東西黃燈閃爍東西直行通行南北制止東西左拐通行南北制止東西黃燈閃爍通行35秒YN閃爍5秒YN通行15秒YN閃爍5秒YN圖5.2 主程序流程圖INT0響應INT0響應N繁忙鍵按下N特殊鍵按下N正常鍵按下返回關中斷開中斷正常模式設置Y繁忙模式設置Y特殊模式設置Y圖5.3 外部中斷0中斷流程圖6總體設計與電路圖6.1芯片選擇AT89C51是美國ATMEL公司生產的低電壓,高性能CMOS 8位單片機,有40個引
17、腳,32個外部雙向輸入/輸出I/O端口,同時內含2個外中斷口,3個16位可編程定時計數器,2個全雙工串行通信口,2個讀寫口線,AT89C51是美國ATMEL公司生產的低電壓,高性能CMOS 8位單片機,有40個引腳,32個外部雙向輸入/輸出I/O端口,同時內含2個外中斷口,3個16位可編程定時計數器,2個全雙工串行通信口,2個讀寫口線,片內含8k bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數據存儲器RAM,器件采用ATMEL公司的高密度、非易失性存儲技術生產,與標準MCS-51指令系統及8051產品引腳兼容,片內置通用8位中央處理器CPU和Flash存儲單元
18、,可以按照常規方法對其進展編程,也可以在線編程。其將通用的微處理器和Flash存儲器結合在一起,特別是可反復擦寫的Flash存儲器可有效地降低開發本錢。圖6.1 AT89C51芯片引腳圖圖6.1 AT89C51芯片引腳圖6.2設計電路圖圖6.2 電路圖圖中大局部連線采用總線形式。共五個二位陰極數碼管,其中四個分別用于四個路口的倒計時顯示,另外一個用于總體的直行時間顯示,五個數碼管的陽極都接到AT89C51的P0口,陰極接到P2口;共32個發光二極管,其中16個綠色發光二極管,14個紅色發光二極管,2個黃色發光二極管,四個路口每個路口各有一個紅禁行、黃警告發光二極管,二個綠色發光二極管通行,一個
19、用于直行通行,一個用于左拐通行,四個人行道,每個人行道兩邊各有一紅、綠發光二極管,另外兩個紅色發光二極管分別用于繁忙模式和特殊模式的指示,其中四個路口的二極管接到P1口,人行道的發光二極管接到P3口,繁忙模式和特殊模式的指示燈接P2口;外部中斷0接上三個按鈕,分別用于繁忙、特殊、正常模式的轉化。6.3PROTEUS仿真圖:圖6.3 PROTEUS仿真圖圖6.3 PROTEUS仿真圖6.4交通燈程序/* 十字路口交通燈控制 C 程序*/#include #defineucharunsigned char#defineuintunsigned int/*定義控制位*/sbit Time_Show_
20、LED2=P25; /Time_Show_LED2(直行時間顯示)控制位sbit Time_Show_LED1=P24; /Time_Show_LED1(直行時間顯示)控制位sbit EW_LED2=P23; /EW_LED2控制位sbit EW_LED1=P22; /EW_LED1控制位sbit SN_LED2=P21; /SN_LED2控制位sbit SN_LED1=P20; /SN_LED1控制位sbit SN_Yellow=P16; /SN黃燈sbit EW_Yellow=P12; /EW黃燈sbit EW_ManGreen=P30; /EW人行道綠燈sbit SN_ManGreen=
21、P31; /SN人行道綠燈sbit Special_LED=P26; /交通特殊指示燈sbit Busy_LED=P27; /交通繁忙指示燈sbit Nomor_Button=P35; /交通正常按鍵sbit Busy_Btton=P36; /交通繁忙按鍵sbit Special_Btton=P37; /交通特殊按鍵 sbit EW_ManRed=P33; /EW人行道紅燈sbit SN_ManRed=P34; /SN人行道紅燈bit Flag_SN_Yellow; /SN黃燈標志位bit Flag_EW_Yellow; /EW黃燈標志位char Time_EW; /東西方向倒計時單元char
22、 Time_SN; /南北方向倒計時單元uchar EW=60,SN=40,EWL=19,SNL=19; /程序初始化賦值,正常模式uchar EW1=60,SN1=40,EWL1=19,SNL1=19; /用于存放修改值的變量uchar code table10=0*3F,0*06,0*5B,0*4F,0*66,0*6D,0*7D,0*07,0*7F,0*6F; /0-9段選碼uchar code S8=0*28,0*48,0*18,0*48,0*82,0*84,0*81,0*84; /交通信號燈控制代碼/*延時子程序*/void Delay(uchar a)uchari;i=a;while
23、(i-);/*顯示子函數*/void Display(void)uchar h,l;h=Time_EW/10;l=Time_EW%10; P0=tablel; EW_LED2=1; /點亮EW_LED2Delay(2);EW_LED2=0; /熄滅EW_LED2P0=tableh;EW_LED1=1; /點亮EW_LED1Delay(2);EW_LED1=0;h=Time_SN/10;l=Time_SN%10;P0=tablel;SN_LED2=1; /點亮SN_LED2Delay(2);SN_LED2=0;P0=tableh;SN_LED1=1; /點亮SN_LED1Delay(2);SN_
24、LED1=0;h= EW1/10;l= EW1%10;P0=tablel;Time_Show_LED1=1; /點亮Time_Show_LED1Delay(2); Time_Show_LED1=0;P0=tableh;Time_Show_LED2=1;/點亮Time_Show_LED2Delay(2);Time_Show_LED2=0; /*外部0中斷效勞程序*/void INT0_srv(void)interrupt 0 using 1 E*0=0; /關中斷 if(Nomor_Button=0) /測試按鍵是否按下,按下為正常狀態 EW1=60;SN1=40;EWL1=19;SNL1=19
25、;Busy_LED=0; /關繁忙信號燈Special_LED =0; /關特殊信號燈 if(Busy_Btton=0) /測試按鍵是否按下,按下為繁忙狀態 EW1=45;SN1=30;EWL1=14;SNL1=14;Special_LED=0; /關特殊信號燈Busy_LED=1; /開繁忙信號燈 if(Special_Btton=0)/測試按鍵是否按下,按下為特殊狀態 EW1=75;SN1=55;EWL1=19;SNL1=19;Busy_LED=0; /關繁忙信號燈Special_LED =1;/開特殊信號燈 E*0=1; /開中斷/*T0中斷效勞程序*/void timer0(void)
26、interrupt 1 using 1static uchar count;TH0=(65536-50000)/256;TL0=(65536-50000)%256;count+;if(count=10) if(Flag_SN_Yellow=1) /測試南北黃燈標志位 SN_Yellow=SN_Yellow; if(Flag_EW_Yellow=1) /測試東西黃燈標志位 EW_Yellow=EW_Yellow; if(count=20) Time_EW-; Time_SN-; if(Flag_SN_Yellow=1) /測試南北黃燈標志位 SN_Yellow=SN_Yellow; if(Fla
27、g_EW_Yellow=1) /測試東西黃燈標志位 EW_Yellow=EW_Yellow; count=0;/*主程序開場*/voidmain(void) Busy_LED=0;Special_LED=0;IT0=1; /INT0負跳變觸發TMOD=0*01; /定時器工作于方式1TH0=(65536-50000)/256; /定時器賦初值TL0=(65536-50000)%256;EA=1; /CPU開中斷總允許ET0=1; /開定時中斷E*0=1; /開外部INTO中斷TR0=1; /啟動定時 while(1) /*S0狀態*/SN_ManRed=0;SN_ManGreen=1; /SN
28、人行道通行EW_ManRed=1;/EW人行道制止EW_ManGreen=0;Flag_EW_Yellow=0; /EW關黃燈顯示信號Time_EW=EW;Time_SN=SN;while(Time_SN=5) P1=S0;/SN綠燈,EW紅燈 Display();/*S1狀態*/P1=0*00;while(Time_SN=0)Flag_SN_Yellow=1; /SN開黃燈信號位P1=P1|0*08; /保持EW紅燈Display();/*S2狀態*/SN_ManRed=1; /SN人行道制止SN_ManGreen=0;EW_ManRed=1; /EW人行道制止EW_ManGreen=0;F
29、lag_SN_Yellow=0; /SN關黃燈顯示信號Time_SN=SNL;while(Time_SN=5)P1=S2; /SN左拐綠燈亮,EW紅燈Display();/*S3狀態*/P1=0*00;while(Time_SN=0)Flag_SN_Yellow=1;/SN開黃燈信號位P1=P1|0*08; /保持EW紅燈Display();/*賦值*/EW=EW1;SN=SN1;EWL=EWL1;SNL=SNL1;/*S4狀態*/SN_ManRed=1; /SN人行道制止SN_ManGreen=0;EW_ManRed=0;EW_ManGreen=1; /EW人行道通行Flag_SN_Yell
30、ow=0; /SN關黃燈顯示信號Time_EW=SN;Time_SN=EW;while(Time_EW=5) P1=S4; /EW通行,SN紅燈Display();/*S5狀態*/P1=0*00;while(Time_EW=0)Flag_EW_Yellow=1;/EW開黃燈信號位P1=P1|0*80; /保持SN紅燈Display();/*S6狀態*/SN_ManRed=1; /SN人行道制止SN_ManGreen=0;EW_ManRed=1; /EW人行道制止EW_ManGreen=0;Flag_EW_Yellow=0;/EW關黃燈顯示信號Time_EW=EWL;while(Time_EW=
31、5)P1=S6; /EW左拐綠燈亮,SN紅燈Display();/*S7狀態*/P1=0*00;while(Time_EW=0)Flag_EW_Yellow=1; /EN開黃燈信號位P1=P1|0*80; /保持SN紅燈Display();/*賦值*/EW=EW1;SN=SN1;EWL=EWL1;SNL=SNL1;7 仿真測試、數據及結果分析程序運行結果如下:1 首先,直行時間顯示數碼管顯示60。此時南北段綠燈亮、東西段紅燈亮40s,南北段人行道綠燈亮,東西段人行道紅燈亮,同時南北段和東西段方向的數碼管分別從40s和60s開場倒計時。2 35秒后,南北方向的黃燈閃爍5秒鐘,此時東西方向仍維持紅
32、燈亮,人行道燈不變。3 40秒后,南北方向左拐燈亮,東西方向紅燈亮,東西和南北人行道全部紅燈亮,同時南北段和東西段方向的數碼管分別從19秒開場倒計時。4 55秒鐘后,南北方向的黃燈閃爍5秒,此時東西方向仍維持紅燈亮,人行道燈不變。5 1分鐘后,東西段綠燈亮、南北段紅燈亮40s,東西段人行道綠燈亮,南北段人行道紅燈亮,同時南北段和東西段方向的數碼管分別從60s和40s開場倒計時。6. 1分35秒后,東西方向的黃燈閃爍5秒鐘,此時南北方向仍維持紅燈亮,人行道燈不變。7 1分40秒后,東西方向左拐燈亮,南北方向紅燈亮,東西和南北人行道全部紅燈亮,同時南北段和東西段方向的數碼管分別從19秒開場倒計時。
33、8 1分55秒鐘后,東西方向的黃燈閃爍5秒,此時南北方向仍維持紅燈亮,人行道燈不變。9. 按下繁忙、特殊按鈕時直行顯示分別為45和75。其它過程與正常模式下一樣。8 總結與展望8.1 軟件延時與定時器計時軟件延時,設計簡單,使用方便,但是無法進展準確計時,無法在實際應用中進展使用,本次設計采用了定時器0進展計時,每50ms產生一個脈沖信號,可以準確的計時并方便8段數碼管進展顯示。8.2 使用中斷的好處使用中斷可以進展多樣化設計,強化程序功能與執行效率。在本設計中程序每50ms請求一次中斷,實現準確定時與數碼管顯示刷新。8.3 關于本次設計本次課程設計的過程是艱辛的,不過收獲卻是很大的。在設計過程中,會出現了一些問題,但都是常見的小問題,如:代碼中雙引號的使用并不是在英語書寫狀態下,輸入字母出錯等,在調試時出現異常,不過這些都是經常性錯誤,經過調試修改都一一解決,程序順利完成,并實現了其功能。綜合課程設計讓我把以前學習到的知識得到穩固和進一步的提高認識,對已有知識有了更進一步的理解和認識。在此,由于自身能力有限,在課程設計中碰到了很多的問題,但通過查閱相關書籍、資料以及和周圍同學交流后都得以一一解決。由于使用的是單片機作為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論