![智能交通燈設(shè)計與實現(xiàn)-論文_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/6/029d0d49-4ba0-47f9-9f20-2d08f2a23284/029d0d49-4ba0-47f9-9f20-2d08f2a232841.gif)
![智能交通燈設(shè)計與實現(xiàn)-論文_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/6/029d0d49-4ba0-47f9-9f20-2d08f2a23284/029d0d49-4ba0-47f9-9f20-2d08f2a232842.gif)
![智能交通燈設(shè)計與實現(xiàn)-論文_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/6/029d0d49-4ba0-47f9-9f20-2d08f2a23284/029d0d49-4ba0-47f9-9f20-2d08f2a232843.gif)
![智能交通燈設(shè)計與實現(xiàn)-論文_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/6/029d0d49-4ba0-47f9-9f20-2d08f2a23284/029d0d49-4ba0-47f9-9f20-2d08f2a232844.gif)
![智能交通燈設(shè)計與實現(xiàn)-論文_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/6/029d0d49-4ba0-47f9-9f20-2d08f2a23284/029d0d49-4ba0-47f9-9f20-2d08f2a232845.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、智能交通燈設(shè)計與實現(xiàn) 摘要本文介紹了一個基于proteus的智能交通燈控制系統(tǒng)的設(shè)計與仿真,系統(tǒng)能夠根據(jù)十字路口雙車道車流量的情況控制交通信號燈按特定的規(guī)律變化。本文首先對智能交通燈的研究意義和智能交通燈的研究現(xiàn)狀進行了分析,指出了現(xiàn)狀交通燈存在的缺點,并提出了改進方法。智能交通燈控制系統(tǒng)通常要實現(xiàn)自動控制和在緊急情況下能夠手動切換信號燈讓特殊車輛優(yōu)先通行。本文還對at89s51單片機的結(jié)構(gòu)特點和重要引腳功能進行了介紹,同時對智能交通燈控制系統(tǒng)的設(shè)計進行了詳細(xì)的分析。最后介紹了proteus嵌入式系統(tǒng)仿真與開發(fā)平臺的使用方法,利用proteus軟件對交通燈控制系統(tǒng)進行了仿真,仿真結(jié)果表明系統(tǒng)工
2、作性能良好。關(guān)鍵詞:單片機,智能交通燈控制系統(tǒng),proteus仿真一. 引言:智能的交通信號燈指揮著人和各種車輛的安全運行,實現(xiàn)紅、黃、綠燈的自動指揮是城鄉(xiāng)交通管理現(xiàn)代化的重要課題.在城鄉(xiāng)街道的十字交叉路口,為了保證交通秩序和行人安全,一般在每條道路上各有一組紅、黃、綠交通信號燈,其中紅燈亮,表示該條道路禁止通行; 黃燈亮,表示該條道路上未過停車線的車輛停止通行,已過停車線的車輛繼續(xù)通行; 綠燈亮,表示該條道路允許通行.交通燈控制電路自動控制十字路口兩組紅、黃、綠交通燈的狀態(tài)轉(zhuǎn)換,指揮各種車輛和行人安全通行,實現(xiàn)十字路口城鄉(xiāng)交通管理自動化.本文為了實現(xiàn)交通道路的管理,力求交通管理先進性、科學(xué)化
3、. 分析應(yīng)用了單片機實現(xiàn)智能交通燈管制的控制系統(tǒng),以及該系統(tǒng)軟、硬件設(shè)計方法,實驗證明該系統(tǒng)實現(xiàn)簡單、經(jīng)濟,能夠有效地疏導(dǎo)交通,提高交通路口的通行能力.二. 技術(shù)指標(biāo) 1) 設(shè)計一個十字路口的交通燈控制電路,要求南北方向和東西方向兩個交叉路口的車輛交替運行,兩個方向能根據(jù)車流量大小自動調(diào)節(jié)通行時間,車流量大,通行時間長,車流量小,通行時間短。 2) 每次綠燈變紅燈時,要求黃燈先亮5s,才能變換運行車輛.3) 東西方向、南北方向車道除了有紅、黃、綠燈指示外,每一種燈亮的時間都用數(shù)碼管顯示器進行顯示(采用倒計時的方法)。4) 同步設(shè)置人行橫道紅、綠燈指示。5) 考慮到特殊車輛情況,設(shè)置緊急轉(zhuǎn)換開頭
4、。三. 智能交通燈的方案選擇1) 智能交通燈的研究現(xiàn)狀目前設(shè)計交通燈的方案有很多,有應(yīng)用cpld設(shè)計實現(xiàn)交通信號燈控制器方法;有應(yīng)用plc實現(xiàn)對交通燈控制系統(tǒng)的設(shè)計;有應(yīng)用單片機實現(xiàn)對交通信號燈設(shè)計的方法。目前,國內(nèi)的交通燈一般設(shè)在十字路門,在醒目位置用紅、綠、黃三種顏色的指示燈。加上一個倒計時的顯示計時器來控制行車。對于一般情況下的安全行車,車輛分流尚能發(fā)揮作用,但根據(jù)實際行車過程中出現(xiàn)的情況,還存在以下缺點:1兩車道的車輛輪流放行時間相同且固定, 在十字路口,經(jīng)常一個車道為主干道,車輛較多,放行時間應(yīng)該長些;另一車道為副干道,車輛較少,放行時間應(yīng)該短些。2沒有考慮緊急車通過時,兩車道應(yīng)采取
5、的措施,臂如,消防車執(zhí)行緊急任務(wù)通過時,兩車道的車都應(yīng)停止,讓緊急車通過。2) 智能交通燈的設(shè)計方案及改進措施針對道路交通擁擠,交叉路口經(jīng)常出現(xiàn)擁堵的情況。利用單片機控制技術(shù)提出了軟件和硬件設(shè)計方案及兩點改進措施:1、根據(jù)各道路路口車流量的大小自動調(diào)節(jié)通行時間。2、考慮特殊車輛通行情況,設(shè)計緊急切換開關(guān)。由于at89s51單片機自單帶有2計數(shù)器,6個中斷源,能滿足系統(tǒng)的設(shè)計要求。用單片機設(shè)計不但設(shè)計簡單,而且成本低,用其設(shè)計的交通燈也滿足了要求,所以本文采用單片機設(shè)計交通燈,系統(tǒng)構(gòu)圖如圖1所示:圖1系統(tǒng)結(jié)構(gòu)框圖 3) at89s51單片機的主要性能參數(shù)和主要引腳對交通燈控制系統(tǒng)的設(shè)計,首先應(yīng)對
6、交通燈的核心控制芯片的基本結(jié)構(gòu)和特征以及主要引腳有比較詳細(xì)的了解。at89s51 是美國 atmel 公司生產(chǎn)的低功耗,高性能 cmos 8 位單片機,片內(nèi)含 4k bytes 的可系統(tǒng)編程的 flash 只讀程序存儲器,器件采用 atmel 公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn) 8051 指令系統(tǒng)及引腳。它集 flash 程序存儲器 既可在線編程(isp)也可用傳統(tǒng)方法進行編程及通用 8 位微處理器于單片芯片中,atmel 公司的功能強大,低價位 at89s51 單片機可為您提供許多高性價比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。、主要性能參數(shù)與mcs-51產(chǎn)品指令系統(tǒng)完全兼容4k字節(jié)
7、在系統(tǒng)編程(isp)flash閃速存儲器1000次擦寫周期4.05.5v的工作電壓范圍全靜態(tài)工作模式:0hz33mhz三級程序加密鎖1288字節(jié)內(nèi)部ram32個可編程io口線2個16位定時計數(shù)器6個中斷源全雙工串行uart通道低功耗空閑和掉電模式看門狗(wdt)及雙數(shù)據(jù)指針掉電標(biāo)識和快速編程特性靈活的在系統(tǒng)編程(isp字節(jié)或頁寫模式)、主要引腳功能vcc:電源電壓gnd:地p0口:p0口是一組8位漏極開路型雙向i0口,也即地址數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位能驅(qū)動8個ttl邏輯門電路,對端口寫“l(fā)”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)
8、據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在f1ash編程時,p0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。p1口:pl 是一個帶內(nèi)部上拉電阻的8位雙向io口,pl的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個ttl邏輯門電路。對端口寫“l(fā)”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(iil)。flash編程和程序校驗期間,pl接收低8位地址。表1 具有第二功能的p1口引腳端口引腳第二功能:p1.5mosi(用于isp編程)p1.6mosi(用于isp編程)p1.7mosi(用于isp
9、編程)p2 口:p2 是一個帶有內(nèi)部上拉電阻的8 位雙向io 口,p2 的輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個ttl邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(iil)。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行movxdptr指令)時,p2口送出高8位地址數(shù)據(jù)。在訪問8 位地址的外部數(shù)據(jù)存儲器(如執(zhí)行movxri 指令)時,p2 口線上的內(nèi)容(也即特殊功能寄存器(sfr)區(qū)中p2寄存器的內(nèi)容),在整個訪問期間不改變。flash編程或校驗時,p2亦接收高位地址和
10、其它控制信號。p3 口:p3 口是一組帶有內(nèi)部上拉電阻的8 位雙向i0 口。p3 口輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個ttl邏輯門電路。對p3口寫入“l(fā)”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。作輸入端時,被外部拉低的p3口將用上拉電阻輸出電流(iil)。p3口除了作為一般的i0口線外,更重要的用途是它的第二功能,如下表所示:表2 具有第二功能的p1口引腳端口引腳第二功能:p3.0rxd(串行輸入口)p3.1txd(串行輸出口)p3.2/int0(外中斷0)p3.3/ int1(外中斷1)p3.4t0(定時計數(shù)器0外部輸入)p3.5t1(定時計數(shù)器1外部輸入)p3.6/ wr(外部數(shù)
11、據(jù)存儲器寫選通)p3.7/ rd外部數(shù)據(jù)存儲器讀選通)p3口還接收一些用于flash閃速存儲器編程和程序校驗的控制信號。rst:復(fù)位輸入。當(dāng)振蕩器工作時,rst引腳出現(xiàn)兩個機器周期以上高電平將使單片機復(fù)位。wdt 溢出將使該引腳輸出高電平,設(shè)置sfr auxr的disrt0 位(地址8eh)可打開或關(guān)閉該功能。disrt0位缺省為reset輸出高電平打開狀態(tài)。ale:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ale(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ale 仍以時鐘振蕩頻率的16 輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)
12、據(jù)存儲器時將跳過一個ale脈沖。對f1ash存儲器編程期間,該引腳還用于輸入編程脈沖(prog)。如有必要,可通過對特殊功能寄存器(sfr)區(qū)中的8eh 單元的d0 位置位,可禁止ale 操作。該位置位后,只有一條m0vx和m0vc指令ale才會被激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ale無效。程序儲存允許()輸出是外部程序存儲器的讀選通信號,當(dāng)at89s51 由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次有效,即輸出兩個脈沖。當(dāng)訪問外部數(shù)據(jù)存儲器,沒有兩次有效的信號。vpp:外部訪問允許。欲使cpu僅訪問外部程序存儲器(地址為0000hffffh),ea端必須保
13、持低電平(接地)。需注意的是:如果加密位lb1被編程,復(fù)位時內(nèi)部會鎖存ea端狀態(tài)。如ea端為高電平(接vcc端),cpu則執(zhí)行內(nèi)部程序存儲器中的指令。f1ash存儲器編程時,該引腳加上+12v的編程電壓vpp。xtal1:振蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。xtal2:振蕩器反相放大器的輸出端2。四. 智能交通燈方案的實現(xiàn)根據(jù)設(shè)計任務(wù)和要求,可畫出該控制器的原理框圖, 為確保十字路口的交通安全,往往都采用交通燈自動控制系統(tǒng)來控制交通信號。其中紅燈(r)亮,表示禁止通行;黃燈(y)亮表示暫停;綠燈(g)亮表示允許通行。1) 控制器的系統(tǒng)框圖如圖2所示。圖2 交通燈控制器系統(tǒng)框圖2) 電路圖
14、智能交通燈電路圖如圖3所示。圖3 智能交通燈電路圖3) 智能交通燈系統(tǒng)的組成交通燈系統(tǒng)由四部分組成:車檢測電路,信號燈電路,時間顯示電路,緊急轉(zhuǎn)換開關(guān)。4) 工作原理大家都明白,綠燈的放行時間與車輛通過數(shù)量不成正比。比如說20秒內(nèi)每車道可以通過20輛車,40秒內(nèi)每車道卻可以通過45輛車。因為這有一個起步的問題,還有一個黃燈等待問題。也就是說,綠燈放行時間越長,單位時間通過車輛的數(shù)量就越多。我們來計算一下,每車道通行20秒內(nèi)可以通過20輛車,一個紅綠燈循環(huán)是40秒(單交叉路口),加上每次狀態(tài)轉(zhuǎn)換的黃燈5秒(一個循環(huán)要兩次轉(zhuǎn)換),即一個紅綠黃燈循環(huán)要50秒,即50秒內(nèi)通行的車輛為40輛。通過一輛車
15、的平均時間是1.25秒。如果每次車輛通行的時間改為40秒,40秒內(nèi)每車道可以通過45輛,一個紅綠燈循環(huán)是80秒(單交叉路口),加上每次狀態(tài)轉(zhuǎn)換的黃燈5秒(一個循環(huán)要兩次轉(zhuǎn)換),即一個紅綠黃燈循環(huán)要90秒,即90秒內(nèi)通行的車輛為90輛。通過一輛車的平均時間只需1秒。顯然在車輛擁擠的情況下綠燈的通行時間越長,單位時間內(nèi)通行的車輛越多,可以有效緩解車輛擁堵問題。當(dāng)然綠燈時間也不可能無限長,要考慮到讓另一路口的等待時間不能過長。人們總是希望在交通燈前等候的時間越短越好。所以筆者設(shè)定了綠燈通行時間的上限為40秒。在非擁擠時段綠燈的通行時間的下限為20秒,當(dāng)交叉路口雙方車輛較少時通行時間設(shè)為20秒,這樣可
16、以大大縮短車輛在紅燈面前的等待時間。當(dāng)交叉路口雙方車輛較多時通行時間設(shè)為40秒。、車檢測電路用來判斷各方向車輛狀況,比如:20秒內(nèi)可以通過的車輛為20輛,當(dāng)20秒內(nèi)南往北方向車輛通過車輛達(dá)不到20輛時,判斷該方向為少車,當(dāng)20秒內(nèi)北往南方向車輛通過車輛也達(dá)不到20輛時,判斷該方向也為少車,下一次通行仍為20秒,當(dāng)20秒時間內(nèi)南往北或北往南任意一個方向通過的車輛達(dá)20輛時證明該狀態(tài)車輛較多,下一次該方向綠燈放行時間改為40秒,當(dāng)40秒內(nèi)通過的車輛數(shù)達(dá)45輛時車輛判斷為擁擠,下一次綠燈放行時間改仍為40秒,當(dāng)40秒車輛上通過車輛達(dá)不到45輛時,判斷為少車,下次綠燈放行時間改為20秒, 依此類推。綠
17、燈下限時間為20秒,上限值為40秒,初始時間為20秒。這樣檢測,某次可能不準(zhǔn)確,但下次肯定能彌補回來,累積計算是很準(zhǔn)確的,這就是人們常說的“模糊控制”。因為路上的車不可能突然增多,塞車都有一個累積過程。這樣控制可以把不斷增多的車輛一步一步消化,雖然最后由于每個路口的綠燈放行時間延長而使等候的時間變長,但比塞車等候的時間短得多。本系統(tǒng)的特點是成本低,控制準(zhǔn)確。十字路口車輛通行順序如圖4所示: 圖4 十字路口車輛通行順序由于南往北,北往南時間顯示相同,所以只要一個方向多車,下次時間就要加長東往西,西往東也一樣,顯示時間選擇如表3.表3 顯示時間選擇車輛情況本次該方向通行時間下次該方向通行時間本次該
18、方向通行時間本次該方向通行時間南往北少車,北往南少車20秒20秒40秒20秒南往北少車,北往南多車20秒40秒40秒40秒南往北多車,北往南少車20秒40秒40秒40秒南往北多車,北往南多車20秒40秒40秒40秒東往西少車,西往東少車20秒20秒40秒20秒東往西少車,西往東多車20秒40秒40秒40秒東往西多車,西往東少車20秒40秒40秒40秒東往西多車,西往東多車20秒40秒40秒40秒、信號燈電路信號燈用來顯示車輛通行狀況,下面以一個十字路口為例,說明一個交通燈的四種狀態(tài)見圖5。每個路口的信號的的轉(zhuǎn)換順序為:綠黃紅 綠燈表示允許通行,黃燈表示禁止通行,但已經(jīng)駛過安全線的車輛可以繼續(xù)通
19、行,是綠燈過渡到紅燈提示燈。紅燈表示禁止通行。綠燈的最短時間為20秒,最長時間為40秒,紅紅最短時間為25秒,最長時間為45秒,黃燈時間為5秒。紅黃綠綠黃紅紅黃綠綠黃紅綠黃紅紅黃綠紅黃綠紅黃綠紅黃綠綠黃紅綠黃紅紅黃綠綠黃紅綠黃紅紅黃綠紅黃綠圖5交通信號燈運行狀態(tài) 、時間顯示電路在交通信號燈的正上方安裝一個可以顯示綠燈通行時間,紅燈等待時間的顯示電路,采用數(shù)碼管顯示電路是一種很好的方法。由于東往西方向和西往東方向顯示的時間相同,南往北方向和北往南方向顯示的時間也相同,所以只需要考慮四位數(shù)碼管顯示電路,其中東西方向兩位,南北方向兩位,兩位數(shù)碼管可以時間的時間為0-99秒完全可以滿足系統(tǒng)的要求,數(shù)碼
20、管連接方法如圖6所示圖6 數(shù)碼管連接方法下面我們用這種方法顯示交通燈的時間,南北方向要顯示20秒,東西方向要顯示25秒,那么我們先給p0口送2的共陰極碼即5bh,讓第一位2要顯示的位碼gnd段為低電平,其它三位的控制端都接高電平,那么第一位就顯示2,其它三位不亮。讓其顯示1ms后再給p0口送0的共陰極碼即3fh,讓第二位要顯示0的位碼gnd段為低電平,其它三位的控制端都接高電平,那么第二位就顯示0,其它三位不亮。依此類推分別送完第一位2,第二位0,第三位2,第四位5,每一位點亮1ms一個掃描周期為4ms,一秒時間就要掃描250次其程序如下:mov r6,#250;顯掃描次數(shù)loop:mov p
21、0,#5bh ;送2的共陰極碼clr p2.0;第一位顯示2acall d1ms ;延時1mssetb p2.0 ;滅第一位mov p0,#3fh ;送0的共陰極碼clr p2.1;第二位顯示0acall d1ms ;延時1mssetb p2.1 ;滅第二位mov p0,#5bh ;送2的共陰極碼clr p2.2;第三位顯示2acall d1ms ;延時1mssetb p2.2 ;滅第三位mov p0,#6dh ;送5的共陰極碼clr p2.3;第四位顯示5acall d1ms ;延時1mssetb p2.3 ;滅第四位djnz r7,loop;不夠一秒,繼續(xù)掃描nextnumber;到一秒顯
22、示下一個數(shù)d1ms: ;1ms延時程序stat1:mov r4,#2mov r3,#250djnz r3,$djnz r4,stat1ret、緊急轉(zhuǎn)換開關(guān)電路一般情況下交通燈按照車流量大小合理分配通行時間,按一定規(guī)律變化,但考慮緊急車通行車況,設(shè)計緊急通行開關(guān),下面簡述單片機的中斷原理。 ) mcs51的中斷源 8051有5個中斷源,它們是兩個外中斷int0(p3.2)和int1(p3.3)、兩個片內(nèi)定時/計數(shù)器溢出中斷tf0和tf1,一個是片內(nèi)串行口中斷ti或ri,這幾個中斷源由tcon和scon兩個特殊功能寄存器進行控制,其中5個中斷源的程序入口地址如表4所示:表4中斷源程序入口中斷源的服
23、務(wù)程序入口地址中斷源入口地址外中斷00003h定時/計數(shù)器0000bh外中斷10013h定時/計數(shù)器0001bh串行口中斷0023h ) 中斷的處理流程cpu響應(yīng)中斷請求后,就立即轉(zhuǎn)入執(zhí)行中斷服務(wù)程序。不同的中斷源、不同的中斷要求可能有不同的中斷處理方法,但它們的處理流程一般都如下所述:()現(xiàn)場保護和現(xiàn)場恢復(fù):中斷是在執(zhí)行其它任務(wù)的過程中轉(zhuǎn)去執(zhí)行臨時的任務(wù),為了在執(zhí)行完中斷服務(wù)程序后,回頭執(zhí)行原先的程序時,知道程序原來在何處打斷的,各有關(guān)寄存器的內(nèi)容如何,就必須在轉(zhuǎn)入執(zhí)行中斷服務(wù)程序前,將這些內(nèi)容和狀態(tài)進行備份即保護現(xiàn)場。我們舉個例子,在看書時,電話玲響需傳去接電話時,必須在書本上做個記號,以
24、便在接完電話后回來看書時,知道從哪些內(nèi)容繼續(xù)往下看。計算機的中斷處理方法也如此,中斷開始前需將有關(guān)寄存器的內(nèi)容壓入堆棧進行保存,以便在恢復(fù)原來程序時使用。中斷服務(wù)程序完成后,繼續(xù)執(zhí)行原先的程序,就需把保存的現(xiàn)場內(nèi)容從堆棧中彈出,恢復(fù)積存器和存儲單元的原有內(nèi)容,這就是現(xiàn)場恢復(fù)。如果在執(zhí)行中斷服務(wù)時不是按上述方法進行現(xiàn)場保護和恢復(fù)現(xiàn)場,就會是程序運行紊亂,程序跑飛,自然使單片機不能正常工作。()中斷打開和中斷關(guān)閉:在中斷處理進行過程中,可能又有新的中斷請求到來,這里規(guī)定,現(xiàn)場保護和現(xiàn)場恢復(fù)的操作是不允許打擾的,否則保護和恢復(fù)的過程就可能使數(shù)據(jù)出錯,為此在進行現(xiàn)場保護和現(xiàn)場恢復(fù)的過程中,必須關(guān)閉總中
25、斷,屏蔽其它所有的中斷,待這個操作完成后再打開總中斷,以便實現(xiàn)中斷嵌套。 ()中斷服務(wù)程序:既然有中斷產(chǎn)生,就必然有其具體的需執(zhí)行的任務(wù),中斷服務(wù)程序就是執(zhí)行中斷處理的具體內(nèi)容,一般以子程序的形式出現(xiàn),所有的中斷都要轉(zhuǎn)去執(zhí)行中斷服務(wù)程序,進行中斷服務(wù)。 ()中斷返回:執(zhí)行完中斷服務(wù)程序后,必然要返回,中斷返回就是被程序運行從中斷服務(wù)程序轉(zhuǎn)回到原工作程序上來。在mcs-51單片機中,中斷返回是通過一條專門的指令實現(xiàn)的,自然這條指令是中斷服務(wù)程序的最后一條指令。) 交通燈中的中斷處理流程()現(xiàn)場保護和現(xiàn)場恢復(fù):有特殊車輛要通過時就要進行中斷,在中斷之前,先將交通燈中斷前情況保護好,當(dāng)中斷執(zhí)行后再恢
26、復(fù)現(xiàn)場,包括信號燈和時間顯示電路。()中斷打開和中斷關(guān)閉:為了使特殊車輛通行按一下打開中斷開關(guān)就可以打開中斷,關(guān)閉中斷開關(guān)就關(guān)閉中斷。()中斷服務(wù)程序:有中斷產(chǎn)生,就必然有其具體的需執(zhí)行的任務(wù),中斷服務(wù)程序就是執(zhí)行中斷處理的具體內(nèi)容:即如果南北方向有特殊車輛要求通過,南北方向轉(zhuǎn)換為綠燈,東西方向為紅燈;如果東西方向有特殊車輛要求通過,東西方向轉(zhuǎn)換為綠燈,南北方向為紅燈。()中斷返回:執(zhí)行完中斷服務(wù)程序后,必然要返回,即回交通燈信號回到中斷前狀態(tài),顯示時間也和中斷前一樣。、交通燈的軟件設(shè)計流程圖智能交通燈的軟件設(shè)計流程圖如圖7所示:圖7 交通燈的軟件設(shè)計流程圖五. 智能交通燈方案的仿真prote
27、us嵌入式系統(tǒng)仿真軟件在設(shè)計時已經(jīng)注意到和單片機各種編譯程序的整合了,如它可以和keil ,wave6000等編譯模擬軟件結(jié)合使用。由于wave6000使用方便,具備強大的軟件仿真和硬件仿真功能。把proteus和wave6000結(jié)合起來調(diào)試硬件就方便多了,這里筆者就是采用“proteus+wave6000”的仿真方法,具體步驟如下:(1)首先運行proteus vsm 的isis,選擇sourcedefine code generation tool 菜單項,將出現(xiàn)如圖8所示定義代碼生成工具對話框。圖8 定義代碼生成工具對話框在tool下拉列表框中選擇代碼生成工具,在這一示例中,電路中的微處
28、理器為8051系列單片機,因此選擇asem51, 單擊browse按鈕,選取wave6000的安裝路徑。單擊ok按鈕,結(jié)束代碼生成工具的定義。選擇sourceadd/remove source file 菜單項,將出現(xiàn)add/remove source code files對話框,如圖9所示:圖9 添加/刪除源文件對話框在code generation tool 選項區(qū),單擊下三角按鈕,選擇asem51工具。(2) 單擊new按鈕,將出現(xiàn)如圖10所示對話框。圖10 創(chuàng)建源代碼對話框選擇用wave6000創(chuàng)建好的aa.asm文件,即完成了文件的創(chuàng)建。就這樣當(dāng)用wave6000對aa.asm 文件
29、進行更改時每一次運行proteus vsm 的isis對電路進行仿真時wave6000都會對aa.asm進行編譯,aa.hex文件也會隨時更新。電路圖繪制完成后, 再添加at89c51 的應(yīng)用程序。將鼠標(biāo)移至at89c51 上, 單擊鼠標(biāo)右鍵使之處于選中狀態(tài), 在該器件上單擊左鍵, 打開如圖11所示的對話框。在 program file 欄添加編譯好的十六進制格式的程序文件aa.hex(可以接受3 種格式的文件) ,給at89c51輸入晶振頻率,此處默認(rèn)為12mhz, 單擊ok 按鈕完成程序添加工作, 下面就可以進行系統(tǒng)仿真了。單擊主界面下方的按鈕開始系統(tǒng)仿真。proteus vsm 所進行的
30、是一種交互式仿真, 在仿真進行中可以對各控制按鈕、開關(guān)等進行操作, 系統(tǒng)對輸入的響應(yīng)會被真實的反映出來。仿真結(jié)果如圖12。在這個例子里, 開始仿真后,開關(guān),按鈕通過鼠標(biāo)單擊來改變狀態(tài),所改變狀態(tài)的狀態(tài)會在led和數(shù)碼管顯示出來。由于篇幅所限, 以上僅舉一例簡單介紹了proteus vsm 的使用, 但其強大的系統(tǒng)仿真功能已經(jīng)得到體現(xiàn), 用在單片機系統(tǒng)設(shè)計的教學(xué)方面, 能起到良好的教學(xué)效果。圖11 at89c51添加程序文件圖12 交通燈仿真界面六. 智能交通燈硬件的制作與調(diào)試、智能交通燈電路板板圖智能交通燈電路板板圖如圖13所示:圖13 智能交通燈電路板板圖、交通燈主電路的硬件制作繪制完電路圖
31、并用proteus軟件進行仿真后證明了系統(tǒng)運行良好,然后根據(jù)仿真電路圖制作硬件電路。根據(jù)仿真電路圖制作交通燈主電路硬件時要注意的有下面幾點:1、 用proteus仿真的電路圖可以不加復(fù)位電路,不用外接晶振,只需要在為單片機添加程序文件時輸入晶振頻率就可以了。但在制作硬件時必須焊接上復(fù)位電路和外接晶振電路。2、 用proteus仿真的電路圖單片機的腳可以不用接高電平仿真就能正確運行,但制作硬件時我們必須串接一個電阻然后將端連接到高電平,cpu才能則執(zhí)行內(nèi)部程序存儲器中的指令。3、 實物led燈與數(shù)碼管的亮度和仿真電路有些區(qū)別,制作硬件時要通過與之串聯(lián)的電阻來調(diào)節(jié)亮度。注意了上述問題后制作的硬件電
32、路運行穩(wěn)定,圖14為通過成功調(diào)試后,再實際制造出來控制電路。圖14 交通燈硬件運行情七.結(jié)束語:智能控制交通系統(tǒng)實現(xiàn)是目前研究的方向,也已經(jīng)取得不少成果,但傳統(tǒng)的定時交通燈控制仍然在一些地方廣泛應(yīng)用,那是車流量不大,而且交通道路相對好的地方,傳統(tǒng)的定時交通燈控制還是起到了一定的作用。但隨著社會的高速發(fā)展,城市化日益完善,車的數(shù)量必然增多,給交通的壓力也增大,這時候,智能交通燈控制將會起到疏導(dǎo)交通,改善城市交通環(huán)境,推動城市化日益完善!基于proteus智能交通燈控制系統(tǒng)軟件設(shè)計上有兩個主要特點,一方面是本設(shè)計采用模糊控制方法實現(xiàn)交通的控制,由于模糊控制不需要建立被控對象精確的數(shù)學(xué)模型,特別適用
33、于隨機的復(fù)雜的城市交通控制,因此以多變少為例子,在通行時間方面控制設(shè)置為20s25s40s45s20s 為一個循環(huán),根據(jù)車流量,合理分配了通行時間。另一方面,設(shè)計應(yīng)急轉(zhuǎn)換開關(guān),考慮緊急車通過時,譬如,急救車或消防車執(zhí)行緊急任務(wù)通過時,兩車道的車都應(yīng)停止,讓緊急車通過。實驗測試結(jié)果證明用本系統(tǒng)pic 單片機能完成交通燈控制過程,有效地疏導(dǎo)交通,提高了交通路口的通行能力. 但功能還不夠完善,比如交通燈紅、黃、綠時間還不能按交通緊松完成手控調(diào)整,軟件編寫實現(xiàn)功能還不能很好控制硬件,本系統(tǒng)將增加更多功能,比如手控時間的調(diào)節(jié),攝像機交通監(jiān)控的控制,盲人通過時交通燈的控制等,使系統(tǒng)更加完善. 參考文獻(xiàn):1
34、、陳大欽主編 電子技術(shù)基礎(chǔ)實驗 高等教育出版社 2004年2、陳梓城主編 電子技術(shù)實訓(xùn) 機械工業(yè)出版社 2003年3、吳黎明主編 單片機原理及應(yīng)用技術(shù) 科學(xué)出版社 2003年4、李學(xué)海主編 標(biāo)準(zhǔn)80c51單片機基礎(chǔ)教程 北京航空航天大學(xué)出版社 2006年5、劉樂善主編 微型計算機接口技術(shù)及應(yīng)用 華中科技大學(xué)出版社 2004年附智能交通燈控制程序:org 0000ha_bit equ 20h ;用于存放南北十位數(shù)b_bit equ 21h ;用于存放南北十位數(shù)c_bit equ 22h ;用于存放東西十位數(shù)d_bit equ 23h ; 用于存放東西位數(shù)temp1 equ 24h ;用于存放第一
35、二南北狀態(tài)要顯示的時間temp2 equ 25h ;用于存放第一二東西狀態(tài)要顯示的時間temp3 equ 26h ;用于存放第三第四南北狀態(tài)要顯示的時間temp4 equ 27h;用于存放第三第四南北狀態(tài)要顯示的時間ljmp mainorg 0003h ;外部中斷0入口ljmp int0 ;跳轉(zhuǎn)到外部0中斷org 0013h ;外部中斷1入口ljmp int1 ;跳轉(zhuǎn)到外部1中斷int0: mov a,p1 ;外部0中斷 push acc mov a,p2 ;中斷保護 push accmov p1,#0ffh ;清除先前狀態(tài)mov p2,#0ffhclr p1.0clr p1.4 ;南北通行,
36、東西禁止通行clr p1.6clr p2.3jnb p3.2 ,$ ;判斷是否還在中斷狀態(tài)pop accmov p2,a ;返回中斷前狀態(tài)pop accmov p1,accreti ;中斷返回int1:mov a,p1 ;外部1中斷 push acc ;中斷保護 mov a,p2 push accmov p1,#0ffh ;清除先前狀態(tài)mov p2,#0ffhclr p1.2clr p2.1clr p1.3 ;東西通行,南北禁止通行clr p1.5jnb p3.3 ,$ ;判斷是否還在中斷狀態(tài)pop accmov p2,a ;返回中斷前狀態(tài)pop accmov p1,areti ;中斷返回ma
37、in:org 0100h ;初始情況mov p1,#0ffhmov p2,#0ffh ;滅所有燈mov tmod,#55h ;計數(shù)方式方式1mov ie,#85h ;開中斷mov temp1,#20 ;mov temp2,#25mov temp3,#25mov temp4,#20star:mov p1,#0ffhmov p2,#0ffh ;滅所有燈mov a,24h ;將顯示時間送acjne a,#20,t40t ;判斷時間,選初始值t20t: ;南北通行要顯示的時間為20的計數(shù)器初始值clr tf0 ;清tf0clr tf1 ;清tf1mov th1 ,#0ffh ;送20秒時的初始值mov
38、 tl1 ,#0fch ;在些設(shè)計20秒6輛為多車mov th0 ,#0ffhmov tl0 ,#0fchljmp temp20 ;跳到20秒t40t: ;南北通行要顯示的時間為40的計數(shù)器初始值clr tf0 ;清tf0clr tf1 ;清tf1mov th1,#0ffh ;送40秒時的初始值mov tl1 ,#0f8h ;在些設(shè)計40秒8輛為多車mov th0 ,#0ffhmov tl0 ,#0f8hljmp temp40 ;跳到40秒temp20: ;temp1=20情況setb tr0 ;開始計數(shù)setb tr1clr p1.2clr p2.1 ;南北通行,東西禁止通行clr p1.3
39、clr p1.5mov temp1,#20 ;南北要顯示的時間,mov temp2,#25 ;東西要顯示的時間stlop:acall display1 ;調(diào)用顯示dec temp1 ;時間夠一秒顯示時間減1dec temp2mov a,temp1cjne a,#0,next ;若顯示時間不為0保持現(xiàn)在狀態(tài)ljmp star2 ;若顯示時間為 0跳到第二狀態(tài)next: ljmp stlopstar2: ;狀態(tài)1setb p1.2clr p1.1 ;南北黃燈,東西禁止通行setb p1.3clr p1.4mov temp1,#05 ;南北要顯示的時間,mov temp2,#05 ;東西要顯示的時間
40、,stlop2:acall display1 ;調(diào)用顯示dec temp1 ;時間夠一秒顯示時間減1dec temp2mov a,temp1cjne a,#0,next2 ;若顯示時間不為0保持現(xiàn)在狀態(tài)jb tf1 ,t40 ;判斷南北是否多車jb tf0 ,t40 ;判斷北南是否多車mov temp1,#20 ;少車下次顯示時間為20秒ljmp star3 ;跳到狀態(tài)3t40:mov temp1,#40 ; 多車下次顯示時間為40秒ljmp star3 ;若顯示時間為 0跳到第三狀態(tài)next2:ljmp stlop2temp40:;tem=40 程序setb tr0 ; 開始計數(shù)setb t
41、r1clr p1.2clr p2.1 ;南北通行,東西禁止通行clr p1.3clr p1.5mov temp1,#40 ;南北要顯示的時間,mov temp2,#45 ;東西要顯示的時間stlop11:acall display1 ;調(diào)用顯示dec temp1 ;時間夠一秒顯示時間減1dec temp2mov a,temp1cjne a,#0,next11 ;若顯示時間不為0保持現(xiàn)在狀態(tài)ljmp star22 ;若顯示時間為 0跳到第二狀態(tài)next11: ljmp stlop11star22: ;狀態(tài)1setb p1.2clr p1.1 ;南北黃燈,東西禁止通行setb p1.3clr p1
42、.4mov temp1,#05 ;南北要顯示的時間,mov temp2,#05 ;東西要顯示的時間,stlop22:acall display1 ;調(diào)用顯示dec temp1 ;時間夠一秒顯示時間減1dec temp2mov a,temp1cjne a,#0,next22 ;若顯示時間不為0保持現(xiàn)在狀態(tài)jb tf1 ,t401 ; 判斷是否多車jb tf0 ,t401mov temp1,#20 ;少車下次顯示時間為20秒ljmp star3t401:mov temp1,#40 ;多車下次顯示時間為40秒ljmp star3 ;若顯示時間為 0跳到第三狀態(tài)next22:ljmp stlop22s
43、tar3:mov a,26hcjne a,#25,t40t1 ;判斷時間,選初始值t20t1: ;南北通行要顯示的時間為20的計數(shù)器初始值clr tf0 ; 清溢出位clr tf1mov th1 ,#0ffh ; 給初值mov tl1 ,#0fchmov th0 ,#0ffhmov tl0 ,#0fchljmp temp320t40t1: ;南北通行要顯示的時間為40的計數(shù)器初始值clr tf0 ;clr tf1mov th1,#0ffh ;給初值mov tl1 ,#0f8hmov th0 ,#0ffhmov tl0 ,#0f8hljmp temp340temp320:;狀態(tài)三setb tr1
44、 ;南北停止計數(shù)setb tr0 ;東西開始計數(shù)setb p1.1 ;東西通行,南北禁止通行clr p1.0setb p1.1clr p1.0setb p1.5clr p1.6setb p2.1clr p2.3mov temp3,#25 ;南北要顯示的時間,mov temp4,#20 ;東西要顯示的時間,stlop33:acall display ;調(diào)用顯示dec temp3 ;時間夠一秒顯示時間減1dec temp4mov a,temp4cjne a,#0,next33 ;若顯示時間不為0保持現(xiàn)在狀態(tài)ljmp star34 ;若顯示時間為 0跳到第四狀態(tài)next33:ljmp stlop33
45、star34: ;狀態(tài)四setb p2.3clr p2.2setb p1.6 ;東西黃燈,南北禁止通行clr p1.5mov temp3,#05 ;南北要顯示的時間,mov temp4,#05 ;東西要顯示的時間,stlop34:acall display ;調(diào)用顯示dec temp3 ;時間夠一秒顯示時間減1dec temp4mov a,temp4cjne a,#0,next34 ;若顯示時間不為0保持現(xiàn)在狀態(tài)jb tf1 ,t402jb tf0 ,t402mov temp3,#25ljmp start402:mov temp3,#45ljmp starnext34: ljmp stlop3
46、4temp340 :setb tr1 ;南北停止計數(shù)setb tr0 ;東西開始計數(shù)setb p1.1 ;東西通行,南北禁止通行clr p1.0setb p1.1clr p1.0setb p1.5clr p1.6setb p2.1clr p2.3mov temp3,#45 ;南北要顯示的時間,mov temp4,#40 ;東西要顯示的時間,stlop43:acall display ;調(diào)用顯示dec temp3 ;時間夠一秒顯示時間減1dec temp4mov a,temp4cjne a,#0,next43 ;若顯示時間不為0保持現(xiàn)在狀態(tài)ljmp star44 ;若顯示時間為 0跳到第四狀態(tài)n
47、ext43:ljmp stlop43star44: ;狀態(tài)四setb p2.3clr p2.2setb p1.6 ;東西黃燈,南北禁止通行clr p1.5mov temp3,#05 ;南北要顯示的時間,mov temp4,#05 ;東西要顯示的時間,stlop44:acall display ;調(diào)用顯示dec temp3 ;時間夠一秒顯示時間減1dec temp4mov a,temp3cjne a,#0,next44 ;若顯示時間不為0保持現(xiàn)在狀態(tài)jb tf1 ,t403jb tf0 ,t403mov temp3,#25ljmp start403:mov temp3,#45 ljmp starnext44: l
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年鐵嶺貨運上崗證考試題
- 2025年唐山c1貨運上崗證模擬考試
- 2024-2025年高中政治課時作業(yè)10新時代的勞動者含解析新人教版必修1
- 2024-2025學(xué)年高中生物課時分層作業(yè)12基因指導(dǎo)蛋白質(zhì)的合成含解析新人教版必修2
- 2024-2025版高中生物2.1.1-2孟德爾遺傳試驗的科學(xué)方法分離規(guī)律試驗練習(xí)含解析中圖版必修2
- 2024-2025學(xué)年高中化學(xué)課時提升作業(yè)十五鹽類的水解含解析新人教版選修4
- 2024-2025學(xué)年八年級物理全冊4.1光的反射練習(xí)含解析新版滬科版
- 2024-2025學(xué)年高中語文7李將軍列傳學(xué)案含解析蘇教版選修史記蚜
- 2024-2025學(xué)年高中生物第2章細(xì)胞的化學(xué)組成第2節(jié)組成細(xì)胞的無機物練習(xí)含解析北師大版必修1
- 我想你的檢討書
- 2025-2030全球廢棄食用油 (UCO) 轉(zhuǎn)化為可持續(xù)航空燃料 (SAF) 的催化劑行業(yè)調(diào)研及趨勢分析報告
- 山東省臨沂市蘭山區(qū)2024-2025學(xué)年七年級上學(xué)期期末考試生物試卷(含答案)
- 湖北省武漢市2024-2025學(xué)年度高三元月調(diào)考英語試題(含答案無聽力音頻有聽力原文)
- 一年級下冊勞動《變色魚》課件
- 商務(wù)星球版地理八年級下冊全冊教案
- 天津市河西區(qū)2024-2025學(xué)年四年級(上)期末語文試卷(含答案)
- 2025年空白離婚協(xié)議書
- 校長在行政會上總結(jié)講話結(jié)合新課標(biāo)精神給學(xué)校管理提出3點建議
- T-CSUS 69-2024 智慧水務(wù)技術(shù)標(biāo)準(zhǔn)
- 2025年護理質(zhì)量與安全管理工作計劃
- 湖南大學(xué) 嵌入式開發(fā)與應(yīng)用(張自紅)教案
評論
0/150
提交評論