版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 基于51單片機的交通燈設(shè)計</p><p><b> 摘要</b></p><p> 隨著人們社會活動的日益頻繁,交通在人們的日常生活中的地位越來越高,而傳統(tǒng)的交通燈存在很多缺陷,功能和維護上都不能滿足城市交通道路高速發(fā)展的要求,因此對交通燈的研究是很有理論與實踐的必要性的。</p><p> 本文主要介紹了一個基于
2、AT89C51單片機的交通燈信號控制系統(tǒng),詳細描述了利用AT89C51單片機實現(xiàn)的硬件連接、軟件編程以及系統(tǒng)流程進行了詳盡分析,對關(guān)鍵部分的電路也進行了介紹。該系統(tǒng)利用了單片機的延時電路、按鍵復位電路、時鐘電路等電路,可以方便地實現(xiàn)十字路口交通燈控制器的設(shè)計。</p><p> 仿真結(jié)果表明,該系統(tǒng)除了可以顯示交通燈各種狀態(tài),完成倒計時功能,還可以實時采集車流量相關(guān)數(shù)據(jù),進行計算與智能化控制,與傳統(tǒng)交通燈相比更
3、具有實用性強、操作簡單、擴展性強等優(yōu)點,對于疏導交通流量、提高道路通行能力有明顯效果。</p><p> 關(guān)鍵字:AT89C51 控制系統(tǒng);實時采集;智能化控制</p><p><b> Abstract</b></p><p> As people's social activities have become increasi
4、ngly frequent, the position of traffic is higher and higher in people's daily life, while the traditional traffic light has many defects, its maintenance can not meet the rapid development of city traffic demand, so
5、the research of the traffic lights is necessary on a rational theory and practice.</p><p> This paper introduces a traffic signal control system based on AT89C51 microcontroller which detailedly described t
6、he use of AT89C51's hardware connection, software programming and system flow, the circuit of key parts were also introduced in this paper. The system uses a delay circuit, SCM button reset circuit and clock circuit
7、designed the crossroads traffic light controller easily.</p><p> The simulation results show that, except that the system can show the various states of the traffic lights, complete the countdown function,
8、it also can collect traffic data, calculation and intelligent control. Compared with traditional traffic light it has more strong practicability, more simple operation, expansion and stronger advantages, it has obvious e
9、ffect to ease traffic flow, to improve the traffic capacity of the road.</p><p> Keywords: AT89C51 control system real-time intelligent control</p><p><b> 1引言</b></p><p&
10、gt; 隨著生活水平的逐漸提高,汽車進入家庭的步伐也加快了,城市汽車數(shù)量的增多,使得城市道路交通問題越來越重要。交通信號燈的出現(xiàn),使得交通得以有效管制,一旦某個路口的交通燈出現(xiàn)故障,就可能會導致嚴重的交通事故。原來的交通燈信號控制大都采用繼電器實現(xiàn),存在很多缺陷,功能單一和維護量大使它遠遠不能滿足目前的需求,因此對交通燈的研究是很有理論與實踐的必要性的。</p><p> 本文介紹了基于AT89C51單片機的
11、交通信號燈的工作原理和設(shè)計方法。該交通信號燈由單片機控制電路,顯示電路和輔助電路構(gòu)成,利用12MHz晶振提供時鐘,可用按鍵調(diào)節(jié)當前車流量以控制下一個綠燈時長,并在LED上顯示倒計時。提高了分析、設(shè)計電路和軟硬件開發(fā)的能力。</p><p><b> 2設(shè)計方案及原理</b></p><p> 2.1交通燈設(shè)計方案</p><p> 本文是
12、采用了以AT89C51單片機為核心的控制方案。方案中通過遮光式的紅外傳感器來檢測東西方向和南北方向的車流量大小,再經(jīng)過一定的簡單算法算出各方向上的紅綠燈時間并在數(shù)碼管顯示器上顯示倒計時,同時通過路口上的紅綠燈的點亮與熄滅控制車輛的通行與停止。另外,方案中還設(shè)計一個緊急車輛通行按鍵,每當有緊急車輛需要通過時,操作員按下按鍵,東西方向和南北方向上均為紅燈,并發(fā)出警報禁止普通車輛的通行,先讓緊急車輛通過。東西、南北兩干道交于一個十字路口,各干
13、道有一組紅、黃、綠三色的指示燈,指揮車輛安全通行。紅燈亮禁止通行,綠燈亮允許通行。黃燈亮提示人們注意紅、綠燈的狀態(tài)即將切換,且黃燈燃亮時間為東西、南北兩干道的公共停車時間。</p><p> 2.2交通燈設(shè)計原理框圖</p><p> 圖1 交通燈基本原理框圖</p><p><b> 3硬件設(shè)計</b></p><p
14、> 本系統(tǒng)利用AT89C51單片機作為系統(tǒng)的核心控制部件,利用其定時器/計數(shù)器作為紅外傳感器的接收端,通過高低電平的變化來統(tǒng)計通過檢測區(qū)域的車流量,并根據(jù)車流量數(shù)值的大小,經(jīng)過一系列科學的算法來控制下一個綠燈的時長,減少了不必要的等待時間,也為車流量大的時候順利通行提供方便。待確定計時時長后,通過軟件計時來控制接在P0端口的紅綠燈的點亮與熄滅狀態(tài),并在8段共陰極數(shù)碼管顯示器(接在P1和P2端口)上顯示倒計時。系統(tǒng)的電路圖主要由電
15、源電路、復位電路、車流量檢測電路、紅綠燈顯示電路、紅綠燈時間倒計時電路以及緊急按鍵K1電路等電路組成。</p><p> 系統(tǒng)原理圖如圖2所示:</p><p><b> 圖2 系統(tǒng)原理圖</b></p><p><b> 3.1緊急開關(guān)電路</b></p><p> 本文中的交通燈與傳統(tǒng)交
16、通燈比較,其特點之一就是緊急車輛通過功能。當交通較為擁擠的時候,警車、救護車、消防車之類的緊急車輛很難順利通行,而這很可能會造成某些重大生命財產(chǎn)的損失。本文所設(shè)計的交通燈為改善此類狀況特地添加了緊急車輛通過功能。當有緊急車輛通過時,操作員可以閉合緊急開關(guān)K1,K1接在單片機的P3.1端口上,這樣就產(chǎn)生了一個高電平。而單片機通過軟件程序檢測到P3.1口為高電平后,再通過軟件調(diào)用一段子程序,使東西和南北方向都為紅燈,并接通蜂鳴器警告普通車輛
17、禁止通行并靠邊讓出道路,先讓緊急車輛通過。待緊急車輛通過后,打開緊急開關(guān),交通控制系統(tǒng)會恢復中斷前的現(xiàn)場。</p><p> 其電路原理圖如圖3所示:</p><p> 圖3 緊急按鍵電路原理圖</p><p> 3.2紅綠燈顯示電路</p><p> 交通燈最基本的功能是三種顏色燈的顯示,每個路口均需紅、黃、綠燈各一盞,東、西道上的
18、兩組同色燈蟬聯(lián)在一起,南、北道的兩組同色也彼此互聯(lián)。這6盞燈分別接在單片機的P0.0-P0.5口,如圖4所示。D1、D2、D3分別代表的是東西方向的綠、黃、紅燈;N1、N2、N3分別代表的是南北方向的綠、黃、紅燈。當東西方向為綠燈時,P0.0口輸出低電平,綠燈D1點亮;對應(yīng)地,P0.6口也輸出低電平,南北方向的紅燈N3點亮。當東西方向為紅燈時,P0.2口輸出低電平,紅燈D3點亮;對應(yīng)地,P0.3口也輸出低電平,南北方向的綠燈N1點亮。而
19、當東西方向和南北方向均為黃燈時,黃燈會以2HZ的頻率閃爍(通過軟件來實現(xiàn)的),提醒車輛的駕駛員注意紅綠燈的轉(zhuǎn)換。</p><p> 紅綠燈與單片機的接線圖如圖4所示:</p><p><b> 圖4 紅綠燈接線圖</b></p><p> 3.3倒計時顯示電路</p><p> 本文使用共陰極的7段數(shù)碼管作為顯示
20、設(shè)備。數(shù)碼管常用的顯示方法有動態(tài)顯示和靜態(tài)顯示兩種,此處以靜態(tài)顯示的方法顯示。各個路口上兩個數(shù)碼管,一個顯示十位,一個顯示個位。時間的倒計時是通過軟件來實行的。</p><p> 倒計時顯示電路連接圖如圖5:</p><p><b> 圖5 顯示電路</b></p><p><b> 3.4振蕩電路</b></
21、p><p> AT89C51的XTAL1和XTAL2引腳分別為單極片內(nèi)反相放大器的輸入/輸出端,其頻率范圍為1.2~12MHz。XTAL2又是內(nèi)部時鐘發(fā)生器的輸入端,這個內(nèi)部反相器可與外部元件組成皮爾斯(Pierce)振蕩器。可用石晶振蕩和陶瓷振蕩,當采用石英晶體振蕩器時,C=(30±10)pF;當采用陶瓷諧振振蕩器時,C=(40±10)pF[1]。</p><p>
22、振蕩器電路如圖6所示:</p><p> 圖6 晶體振蕩器電路</p><p><b> 3.5復位電路</b></p><p> 本文中的單片機采用了外接的復位電路,并且采用了一種上電復位和手動復位的組合。自動上電復位電路保證在上電開機時對89C51單片機進行正確的復位,手動復位可在上電復位基礎(chǔ)上并接一個復位開關(guān),這樣既保證上電復位,又
23、可手動復位。單片機復位后,內(nèi)部特殊功能寄存器復位后的狀態(tài)為確定值。復位后,PC=00H,這表明程序從0000H地址單元開始執(zhí)行。PSW=00H,表明選寄存器0組為工作寄存器組。P0至P3=FFH,表明已向各端口寫入1。此時,各端口既可用于輸入又可用于輸出。IE=0**00000B,表明各個中斷均被關(guān)斷。</p><p> 復位電路圖如圖7所示:</p><p><b> 圖7
24、 復位電路</b></p><p> 3.6車流量檢測電路</p><p> 本文用兩個按鍵開關(guān)來模仿紅外傳感器檢測車流量,K3為東西方向的紅外傳感器,K4為南北方向的紅外傳感器。</p><p> 其連接電路如圖8所示:</p><p> 圖8 車流量檢測電路</p><p><b>
25、 4軟件設(shè)計</b></p><p><b> 4.1程序流程圖</b></p><p> 本系統(tǒng)的程序就是用的c語言來編譯的,下面是系統(tǒng)的主程序流程圖:</p><p><b> 圖9 程序流程圖</b></p><p><b> 4.2程序設(shè)計</b>&
26、lt;/p><p><b> 程序見附錄1。</b></p><p><b> 5系統(tǒng)仿真</b></p><p> 本系統(tǒng)的仿真實現(xiàn)主要用到了兩個軟件:Proteus和Keil。其中Proteus主要用來畫電路圖和仿真;Keil主要用來編譯調(diào)試,并把運行出來的*.C程序文件轉(zhuǎn)化為*.HEX文件,以便于在Proteus仿
27、真時將其導入單片機運行。</p><p> 如圖9是交通燈控制系統(tǒng)的仿真電路,當單片機上電復位時,東西方向的綠燈點亮,初始時間為60s;相應(yīng)的是南北方向的紅燈點亮。需要注意的是:</p><p> (1)軟件Proteus中沒有系統(tǒng)中所使用到的反射式紅外光電傳感器,所以在電路圖中使用兩個按鈕開關(guān)BUTTON代替,來模仿車輛經(jīng)過紅外傳感器檢測區(qū)時產(chǎn)生的高低電平變化。</p>
28、<p> ?。?)LED燈D1、D2、D3分別代表的是東西方向的綠、黃、紅燈;N1、N2、N3分別代表的是南北方向的綠、黃、紅燈。</p><p> ?。?)仿真中使用的數(shù)碼管為7段碼共陰數(shù)碼管。</p><p><b> 圖10 仿真結(jié)果</b></p><p><b> 6總結(jié)</b></p>
29、;<p> 通過這次課程設(shè)計,使我得到了一次用專業(yè)知識、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉。使我在單片機的基本原理、單片機應(yīng)用系統(tǒng)開發(fā)過程,以及在常用編程設(shè)計C語言的掌握方面都能向前邁了一大步。本次課程設(shè)計的過程是艱辛的,不過收獲卻是很大的。本次課程設(shè)計用到了許多單片機上所學的知識,使書本上所學的知識得到了實際應(yīng)用,同時也發(fā)現(xiàn)了很多自己的不足之處。經(jīng)過多次查閱相關(guān)書籍和資料,一些自己不是很有把握的地方得到了補充,不僅完
30、成了課程設(shè)計的任務(wù),更增長了自己的知識面,填補了很多知識的空白之處,使我又有了新的長進,學到了新的知識。</p><p> 通過本次的課程設(shè)計,使我學到了很多新的知識,經(jīng)歷了將理論轉(zhuǎn)化為實踐的過程,知道了如何讓將所學的理論知識轉(zhuǎn)化為生活中所常見的東西,所學知識得到了充分應(yīng)用。大學的課堂是給我們學習專業(yè)知識的,而我們更應(yīng)該把自己所學到的書面知識應(yīng)用到生活中去。課程設(shè)計給了我們這樣一個化理論為實踐的機會,自己獨立的
31、完成這么一個任務(wù),看起來很難,但當你深入到這個過程中去時,每一點點的成功都會讓自己欣喜若狂,這是一個享受成功的過程,也是一個良好的學習機會。當然,也遇到了很多困難,讓我認識到了很多不足,我會在以后的學習生活當中不斷磨練自己、完善自己,為自己以后的職業(yè)生活儲備更多的知識,做一個生活的強者。</p><p><b> 參考文獻:</b></p><p> [1] 韓克
32、.柳秀山.馮明庫.薛迎霄.電子技能與EDA技術(shù)[M],第1版,曁南大學,2004.12.</p><p> [2] 江曉安.董秀峰.模擬電子技術(shù)[M],第2版,西安電子科技大學出版社,2005.1.</p><p> [3] 清華大學電子學教研組.余孟嘗.數(shù)字電子技術(shù)基礎(chǔ)簡明教程[M],第2版,高等教育出版社,2005.5.</p><p> [4] 譚浩強.
33、C程序設(shè)計[M],第3版,清華大學出版社,2005.7.</p><p> [5] 周潤景.袁偉亭.景曉松.Proteus在MCS-51和ARM7A系統(tǒng)中的應(yīng)用百例[M],第1版,電子工業(yè)出版社,2006.10.</p><p> [6] 王思明.張金敏.茍軍年.張鑫.楊喬禮.單片機原理及應(yīng)用系統(tǒng)設(shè)計[M],第1版,科學出版社,2012.9.</p><p>&
34、lt;b> 附錄1</b></p><p> #include <reg51.h></p><p> #include<intrins.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int<
35、/p><p> uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};</p><p> uchar shi,ge;</p><p> uint dx_cll,nb_cll,cll,i;</p><p> sbit jinji=P3^1;</p&
36、gt;<p> sbit baojing=P3^0;</p><p> void delay(uint z)//延時子程序4ms</p><p><b> {</b></p><p><b> uint x,y;</b></p><p> for(x=500;x>
37、;0;x--)//循環(huán)500次</p><p> for(y=z;y>0;y--);</p><p><b> }</b></p><p> void display(uchar shi,uchar ge,uchar x)//數(shù)碼管顯示子程序</p><p><b> {</b&g
38、t;</p><p> P2=table[ge];//顯示個位</p><p> delay(x);//調(diào)用延時程序</p><p> P1=table[shi];//顯示十位</p><p> delay(x);//調(diào)用延時程序</p><p><b> }&l
39、t;/b></p><p> void timer(uchar x,uchar y)//顯示倒計時程序</p><p><b> {</b></p><p><b> shi=x/10;</b></p><p><b> ge=x%10;</b></p&
40、gt;<p> display(shi,ge,y);</p><p><b> }</b></p><p> uint suanfa(int m)//車流量算法</p><p><b> {</b></p><p> uint x,y,z;</p>&l
41、t;p> x=TL0|(TH1<<8);</p><p> y=TL1|(TH1<<8);</p><p> if(x<=5&&y<=5)</p><p> return(20);</p><p> else if((5<x&&x<60)||(5&
42、lt;y&&y<45))</p><p><b> {</b></p><p><b> if(m==0)</b></p><p> return(x);</p><p> else if(m==1)</p><p> return(y);&l
43、t;/p><p><b> else</b></p><p> return(20);</p><p><b> }</b></p><p> else if(x>=60&&y>=45)</p><p><b> {</b&g
44、t;</p><p><b> x=x-60;</b></p><p><b> y=y-45;</b></p><p><b> z=x-y;</b></p><p><b> x=x+60;</b></p><p>&l
45、t;b> y=y-45;</b></p><p><b> if(x>90)</b></p><p><b> x=90;</b></p><p><b> if(y>90)</b></p><p><b> y=90;<
46、/b></p><p><b> if(m==0)</b></p><p> return(x);</p><p> else if(m==1)</p><p> return(y);</p><p><b> else</b></p><
47、p> return(20);</p><p><b> }</b></p><p><b> }</b></p><p> void jishuqi()</p><p><b> {</b></p><p> TMOD=0x55;
48、//初始化定時器/計數(shù)器T0、T1為計數(shù)模式,工作于方式1,二進制計數(shù)</p><p><b> TH0=0x00;</b></p><p> TL0=0x00;//TH0,TL0清零</p><p><b> TH1=0x00;</b></p><p> TL1=0x00;
49、//TH1,TL1清零</p><p> TR0=1;//啟動T0計數(shù)</p><p> TR1=1;//啟動T1計數(shù)</p><p> EA=1;//允許中斷</p><p><b> }</b></p><p> void int0()
50、//緊急車輛通過程序</p><p><b> {</b></p><p> while(jinji==1)</p><p><b> {</b></p><p><b> P0=0xdb;</b></p><p> baojing=1;
51、</p><p> P2=table[0];</p><p> P1=table[0];</p><p><b> }</b></p><p> baojing=0;</p><p><b> }</b></p><p> void mai
52、n()</p><p><b> {</b></p><p> P3=0x00;//P3口清零</p><p> dx_cll=60;//給東西方向綠燈時間賦初值60s</p><p> TMOD=0x55;//初始化定時器/計數(shù)器T0、T1為計數(shù)模式,工作于方式1,二進制計數(shù)<
53、/p><p><b> while(1)</b></p><p><b> {</b></p><p> jishuqi();//計數(shù)器啟動計數(shù)</p><p> for(;dx_cll>3;dx_cll--)//東西方向綠燈倒計時,直至4s</p><p&g
54、t;<b> {</b></p><p> P0=0xde;//東西方向綠燈和南北方向紅燈亮</p><p> timer(dx_cll,100);//延時0.5s</p><p> while(jinji==1)//檢測P3.1口是否為高電平</p><p><b> int0();&l
55、t;/b></p><p><b> }</b></p><p> for(i=3;i>0;i--)//黃燈倒計時3s</p><p><b> {</b></p><p> while(jinji==1);//檢測P3.1口是否為高電平</p><
56、p><b> int0()</b></p><p><b> P0=0xed;</b></p><p> timer(i,50);</p><p><b> P0=0xff;</b></p><p> timer(i,50);//黃燈閃爍點亮</p&
57、gt;<p><b> }</b></p><p><b> TR0=0;</b></p><p> TR1=0;//計數(shù)器停止計數(shù)</p><p><b> i=1;</b></p><p> nb_cll=suanfa(i);//算出
58、南北方向綠燈的時間</p><p> jishuqi();//計數(shù)器啟動計數(shù)</p><p> for(;nb_cll>3;nb_cll--)//南北方向綠燈倒計時,直至4s</p><p><b> {</b></p><p> P0=0xf3;//南北方向綠燈和南北方向紅燈亮</p
59、><p> timer(nb_cll,100);//延時0.5s</p><p> while(jinji==1)//檢測P3.1口是否為高電平</p><p><b> int0();</b></p><p><b> }</b></p><p> for(i=
60、3;i>0;i--)//黃燈倒計時3s</p><p><b> {</b></p><p> while(jinji==1) //檢測P3.1口是否為高電平</p><p><b> int0();</b></p><p><b> P0=0xed;</b&
61、gt;</p><p> timer(i,50);</p><p><b> P0=0xff;</b></p><p> timer(i,50);//黃燈閃爍點亮</p><p><b> }</b></p><p><b> TR0=0;</
62、b></p><p> TR1=0;//計數(shù)器停止計數(shù)</p><p><b> i=0;</b></p><p> dx_cll=suanfa(i);//算出東西方向綠燈的時間</p><p><b> }</b></p><p><b&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設(shè)計--基于51單片機的交通燈
- 課程設(shè)計---基于51單片機的交通燈設(shè)計
- 基于51單片機的智能交通燈課程設(shè)計
- 基于51單片機的智能交通燈課程設(shè)計
- 基于51單片機的智能交通燈課程設(shè)計
- 單片機交通燈課程設(shè)計--基于單片機的交通燈控制設(shè)計
- 單片機交通燈課程設(shè)計--基于單片機的交通燈系統(tǒng)的設(shè)計
- 單片機交通燈課程設(shè)計--基于單片機的交通燈系統(tǒng)的設(shè)計
- 基于51單片機控制的交通燈的課程設(shè)計
- 交通燈單片機課程設(shè)計--基于單片機的交通燈顯示系統(tǒng)
- 交通燈單片機課程設(shè)計--基于單片機的交通燈顯示系統(tǒng)
- c51單片機交通燈課程設(shè)計
- 單片機課程設(shè)計--基于單片機的交通燈設(shè)計
- 單片機交通燈課程設(shè)計
- 單片機課程設(shè)計---交通燈
- 單片機交通燈課程設(shè)計
- 單片機課程設(shè)計-交通燈
- 單片機課程設(shè)計--交通燈
- 單片機課程設(shè)計(交通燈)
- 基于單片機的交通燈課程設(shè)計
評論
0/150
提交評論