




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、東莞職業(yè)技術(shù)學院畢 業(yè) 論 文 學生姓名:楊偉寧學 號:200902010413年級專業(yè):2009級電子信息工程技術(shù)指導老師:張依群系 部:電子系廣東·東莞提交日期:2012年3月 目 錄第一章 引言 (1) 1.1 傳統(tǒng)交通燈控制系統(tǒng)的發(fā)展現(xiàn)狀簡介 (2) 1.2 智能交通燈控制系統(tǒng)設(shè)計的意義(3) 1.3智能交通燈控制系統(tǒng)設(shè)計實現(xiàn)的功能 1.4智能交通燈控制系統(tǒng)設(shè)計原理 1.5本論文主要工作 第7) 2.1 智能交通燈的方案設(shè)計 (13) 2.2 智能交通燈的技術(shù)指標 (13)第三章 智能交通燈控制系統(tǒng)的硬件設(shè)計 3.1 AT89S51單片機的簡介 (15) 3.1.1 主要性能
2、參數(shù)簡介 (15) 3.1.2 主要內(nèi)部結(jié)構(gòu)簡介 3.1.3 主要引腳功能簡介 (15) 3.2 系統(tǒng)硬件總結(jié)構(gòu)圖 3.3 各模塊電路圖 3.3.1信號燈電路(22) 3.3.2時間顯示電路(23) 3.3.3緊急轉(zhuǎn)換電路(25)第四章 智能交通燈控制系統(tǒng)的軟件設(shè)計 4.1 智能交通燈的軟件設(shè)計流程圖(27) 4.2 控制器的軟件設(shè)計第五章 智能交通燈的仿真 (30)第六章 系統(tǒng)分析及改進措施 第七章 結(jié)束語(32)參考文獻(35) 致謝(38) 第一章 引 言1.1:傳統(tǒng)交通燈的簡介在今天,紅綠燈安裝在各個道口上,已經(jīng)成為疏導交通車輛最常見和最有效的手段。但這一技術(shù)在19世紀就已出現(xiàn)了。18
3、58年,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅,藍兩色的機械扳手式信號燈,用以指揮馬車通行。這是世界上最早的交通信號燈。1868年,英國機械工程師納伊特在倫敦威斯敏斯特區(qū)的議會大廈前的廣場上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩以旋轉(zhuǎn)式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。1914年,電氣啟動的紅綠燈出現(xiàn)在美國。這種紅綠燈由紅綠黃三色圓形的投光器組成,安裝在紐約市5號大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。而中國最早的馬路交通燈卻是誕生 目前,國內(nèi)的交通燈一般設(shè)在十字路門,在醒目位置用紅、綠、黃三種
4、顏色的指示燈。加上一個倒計時的顯示計時器來控制行車。對于一般情況下的安全行車,車輛分流尚能發(fā)揮作用,但根據(jù)實際行車過程中出現(xiàn)的情況,還存在以下缺點:1兩車道的車輛輪流放行時間相同且固定, 在十字路口,經(jīng)常一個車道為主干道,車輛較多,放行時間應(yīng)該長些;另一車道為副干道,車輛較少,放行時間應(yīng)該短些。2沒有考慮緊急車通過時,兩車道應(yīng)采取的措施,臂如,消防車執(zhí)行緊急任務(wù)通過時,兩車道的車都應(yīng)停止,讓緊急車通過。 針對道路交通擁擠,交叉路口經(jīng)常出現(xiàn)擁堵的情況。利用單片機控制技術(shù)提出了軟件和硬件設(shè)計方案及兩點改進措施:1、根據(jù)各道路路口車流量的大小自動調(diào)節(jié)通行時間。2、考慮特殊車輛通行情況,設(shè)計緊急切換開
5、關(guān) 智能的交通信號燈指揮著人和各種車輛的安全運行,實現(xiàn)紅、黃、綠燈的自動指揮是城鄉(xiāng)交通管理現(xiàn)代化的重要課題.在城鄉(xiāng)街道的十字交叉路口,為了保證交通秩序和行人安全,一般在每條道路上各有一組紅、黃、綠交通信號燈,其中紅燈亮,表示該條道路禁止通行; 黃燈亮,表示該條道路上未過停車線的車輛停止通行,已過停車線的車輛繼續(xù)通行; 綠燈亮,表示該條道路允許通行.交通燈控制電路自動控制十字路口兩組紅、黃、綠交通燈的狀態(tài)轉(zhuǎn)換,指揮各種車輛和行人安全通行,實現(xiàn)十字路口城鄉(xiāng)交通管理自動化。1.4 本論文主要工作 本文為了實現(xiàn)交通道路的管理,力求交通管理先進性、科學化. 分析應(yīng)用了單片機實現(xiàn)智能交通燈管制的控制系統(tǒng),
6、以及該系統(tǒng)軟、硬件設(shè)計方法,實驗證明該系統(tǒng)實現(xiàn)簡單、經(jīng)濟,能夠有效地疏導交通,提高交通路口的通行能力. 第2.1 智能交通燈的選擇方案 目前設(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)該長些;
7、另一車道為副干道,車輛較少,放行時間應(yīng)該短些。2沒有考慮緊急車通過時,兩車道應(yīng)采取的措施,臂如,消防車執(zhí)行緊急任務(wù)通過時,兩車道的車都應(yīng)停止,讓緊急車通過。2.3. 智能交通燈的技術(shù)指標 1) 設(shè)計一個十字路口的交通燈控制電路,要求南北方向和東西方向兩個交叉路口的車輛交替運行,兩個方向能根據(jù)車流量大小自動調(diào)節(jié)通行時間,車流量大,通行時間長,車流量小,通行時間短 2) 每次綠燈變紅燈時,要求黃燈先亮5S,才能變換運行車輛.3) 東西方向、南北方向車道除了有紅、黃、綠燈指示外,每一種燈亮的時間都用數(shù) 碼管顯示器進行顯示(采用倒計時的方法)。4) 同步設(shè)置人行橫道紅、綠燈指示。5) 考慮到特殊車輛情
8、況,設(shè)置緊急轉(zhuǎn)換開頭。智能交通燈控制系統(tǒng)的硬件設(shè)計3.1 AT89S51單片機簡介 AT89S51是美國ATMEL公司生產(chǎn)的低功耗,高性能CMOS8位單片機,片內(nèi)含4k bytes的可系統(tǒng)編程的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標準8051指令系統(tǒng)及引腳。它集Flash程序存儲器 既可在線編程(ISP)也可用傳統(tǒng)方法進行編程及通用8位微處理器于單片芯片中,ATMEL公司的功能強大,低價位AT89S51單片機可為您提供許多高性價比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。 3.1.1 AT89S51單片機的主要性能參數(shù) ·中央處理器:中央處
9、理器(CPU)是整個單片機的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進制數(shù)據(jù)或代碼,CPU負責控制、指揮和調(diào)度整個單元系統(tǒng)協(xié)調(diào)的工作,完成運算和控制輸入輸出功能等操作。·數(shù)據(jù)存儲器(內(nèi)部RAM):數(shù)據(jù)存儲器用于存放變化的數(shù)據(jù)。AT89S51中數(shù)據(jù)存儲器的地址空間為256個RAM單元,但其中能作為數(shù)據(jù)存儲器供用戶使用的僅有前面128個,后128個被專用寄存器占用。·程序存儲器(內(nèi)部ROM):程序存儲器用于存放程序和固定不變的常數(shù)等。通常采用只讀存儲器,且其又多種類型,在89系列單片機中全部采用閃存。AT89S51內(nèi)部配置了4KB閃存。·定時/計數(shù)器(ROM):
10、 定時/計數(shù)器用于實現(xiàn)定時和計數(shù)功能。AT89S51共有2個16位定時/計數(shù)器。 ·并行輸入輸出(I/O)口: 8051共有4組8位I/O口(P0、 P1、P2或P3),用于對外部數(shù)據(jù)的傳輸。每個口都由1個鎖存器和一個驅(qū)動器組成。它們主要用于實現(xiàn)與外部設(shè)備中數(shù)據(jù)的并行輸入與輸出,有些I/O口還有其他功能。 ·全雙工串行口:A89S51內(nèi)置一個全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當同步移位器使用。 ·時鐘電路:時鐘電路的作用是產(chǎn)生單片機工作所需要的時鐘脈沖序列。 ·中斷系統(tǒng):中斷系統(tǒng)的作用主要是對外部或
11、內(nèi)部的終端請求進行管理與處理。AT89S51共有5個中斷源,其中又2個外部中斷源和3個內(nèi)部中斷源。 圖一 AT89S51系列單片機的內(nèi)部結(jié)構(gòu)示意圖·VCC:電源電壓·GND:地·P0口:P0口是一組8位漏極開路型雙向I0口,也即地址數(shù)據(jù)總線復用口。作為輸出口用時,每位能驅(qū)動8個TTL邏輯門電路,對端口寫“l(fā)”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復用,在訪問期間激活內(nèi)部上拉電阻。·P1口:Pl 是一個帶內(nèi)部上拉電阻的8位雙向IO口,Pl的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對
12、端口寫“l(fā)”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。Flash編程和程序校驗期間,Pl接收低8位地址。表1 具有第二功能的P1口引腳端口引腳第二功能:P1.5MOSI(用于ISP編程)P1.6MOSI(用于ISP編程)P1.7MOSI(用于ISP編程)·P2 口:P2 是一個帶有內(nèi)部上拉電阻的8 位雙向IO 口,P2 的輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某
13、個引腳被外部信號拉低時會輸出一個電流(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亦接收高位地址和其它控制信號。·P3 口:P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I0 口。P3 口輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL邏輯門電路。對P3口寫入“l(fā)”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。作輸入端時,被外部拉低的
14、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ù)據(jù)存儲器寫選通)P3.7/ RD外部數(shù)據(jù)存儲器讀選通)P3口還接收一些用于Flash閃速存儲器編程和程序校驗的控制信號。·RST:復位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復位。WDT 溢
15、出將使該引腳輸出高電平,設(shè)置SFR AUXR的DISRT0 位(地址8EH)可打開或關(guān)閉該功能。DISRT0位缺省為RESET輸出高電平打開狀態(tài)。·ALE:當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE 仍以時鐘振蕩頻率的16 輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對F1ash存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH 單元的D0 位置位,可禁止ALE 操作。該位置位后
16、,只有一條M0VX和M0VC指令ALE才會被激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ALE無效。·程序儲存允許()輸出是外部程序存儲器的讀選通信號,當AT89S51 由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次有效,即輸出兩個脈沖。當訪問外部數(shù)據(jù)存儲器,沒有兩次有效的信號。·VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000HFFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接VCC端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令。F1ash存儲器編程時,該引腳
17、加上+12V的編程電壓Vpp。·XTAL1:振蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。 3.2 控制器的原理框圖 按任務(wù)和要求,可畫出該控制器的原理框圖, 為確保十字路口的交通安全,往往都采用交通燈自動控制系統(tǒng)來控制交通信號。其中紅燈(R)亮,表示禁止通行;黃燈(Y)亮表示暫停;綠燈(G)亮表示允許通行。1) 控制器的系統(tǒng)框圖如圖三所示。 圖三 交通燈控制器系統(tǒng)框圖4.1 電路圖智能交通燈電路圖如圖3所示。圖四 智能交通燈電路圖 大家都明白,綠燈的放行時間與車輛通過數(shù)量不成正比。比如說20秒內(nèi)每車道可以通過20輛車,40秒內(nèi)每車道卻可以通過45輛車。因為這有一個起步的問題,還有一個黃
18、燈等待問題。也就是說,綠燈放行時間越長,單位時間通過車輛的數(shù)量就越多。我們來計算一下,每車道通行20秒內(nèi)可以通過20輛車,一個紅綠燈循環(huán)是40秒(單交叉路口),加上每次狀態(tài)轉(zhuǎn)換的黃燈5秒(一個循環(huán)要兩次轉(zhuǎn)換),即一個紅綠黃燈循環(huán)要50秒,即50秒內(nèi)通行的車輛為40輛。通過一輛車的平均時間是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)通行的
19、車輛越多,可以有效緩解車輛擁堵問題。當然綠燈時間也不可能無限長,要考慮到讓另一路口的等待時間不能過長。人們總是希望在交通燈前等候的時間越短越好。所以筆者設(shè)定了綠燈通行時間的上限為40秒。在非擁擠時段綠燈的通行時間的下限為20秒,當交叉路口雙方車輛較少時通行時間設(shè)為20秒,這樣可以大大縮短車輛在紅燈面前的等待時間。當交叉路口雙方車輛較多時通行時間設(shè)為40秒。 3.3 各模塊控制電路交通燈系統(tǒng)由四部分組成:信號燈電路,時間顯示電路,緊急轉(zhuǎn)換開關(guān)。3.3.1 信號燈電路信號燈用來顯示車輛通行狀況,下面以一個十字路口為例,說明一個交通燈的四種狀態(tài)見圖5。每個路口的信號的的轉(zhuǎn)換順序為:綠>黃>
20、;紅 綠燈表示允許通行,黃燈表示禁止通行,但已經(jīng)駛過安全線的車輛可以繼續(xù)通行,是綠燈過渡到紅燈提示燈。紅燈表示禁止通行。綠燈的最短時間為20秒,最長時間為40秒,紅紅最短時間為25秒,最長時間為45秒,黃燈時間為5秒。紅黃綠綠黃紅紅黃綠綠黃紅綠黃紅紅黃綠紅黃綠紅黃綠紅黃綠綠黃紅綠黃紅紅黃綠綠黃紅綠黃紅紅黃綠紅黃綠圖六 交通信號燈運行狀態(tài) 3.3.2 時間顯示電路在交通信號燈的正上方安裝一個可以顯示綠燈通行時間,紅燈等待時間的顯示電路,采用數(shù)碼管顯示電路是一種很好的方法。由于東往西方向和西往東方向顯示的時間相同,南往北方向和北往南方向顯示的時間也相同,所以只需要考慮四位數(shù)碼管顯示電路,其中東西方
21、向兩位,南北方向兩位,兩位數(shù)碼管可以時間的時間為0-99秒完全可以滿足系統(tǒng)的要求,數(shù)碼管連接方法如圖七所示圖七 數(shù)碼管連接方法下面我們用這種方法顯示交通燈的時間,南北方向要顯示20秒,東西方向要顯示25秒,那么我們先給P0口送2的共陰極碼即5BH,讓第一位2要顯示的位碼GND段為低電平,其它三位的控制端都接高電平,那么第一位就顯示2,其它三位不亮。讓其顯示1MS后再給P0口送0的共陰極碼即3FH,讓第二位要顯示0的位碼GND段為低電平,其它三位的控制端都接高電平,那么第二位就顯示0,其它三位不亮。依此類推分別送完第一位2,第二位0,第三位2,第四位5,每一位點亮1MS一個掃描周期為4MS,一秒
22、時間就要掃描250次其程序如下:MOV R6,#250;顯掃描次數(shù)LOOP:MOV P0,#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
23、 ;滅第四位DJNZ R7,LOOP;不夠一秒,繼續(xù)掃描NEXTNUMBER;到一秒顯示下一個數(shù)D1MS: ;1MS延時程序STAT1:MOV R4,#2MOV R3,#250DJNZ R3,$DJNZ R4,STAT1RET3.3.3 緊急轉(zhuǎn)換電路一般情況下交通燈按照車流量大小合理分配通行時間,按一定規(guī)律變化,但考慮緊急車通行車況,設(shè)計緊急通行開關(guān)。 ) Mcs51的中斷源 8051有5個中斷源,它們是兩個外中斷INT0(P3.2)和INT1(P3.3)、兩個片內(nèi)定時/計數(shù)器溢出中斷TF0和TF1,一個是片內(nèi)串行口中斷TI或RI,這幾個中斷源由
24、TCON和SCON兩個特殊功能寄存器進行控制,其中5個中斷源的程序入口地址如表4所示:表4中斷源程序入口中斷源的服務(wù)程序入口地址中斷源入口地址外中斷00003H定時/計數(shù)器0000BH外中斷10013H定時/計數(shù)器0001BH串行口中斷0023H ) 中斷的處理流程CPU響應(yīng)中斷請求后,就立即轉(zhuǎn)入執(zhí)行中斷服務(wù)程序。不同的中斷源、不同的中斷要求可能有不同的中斷處理方法,但它們的處理流程一般都如下所述:()現(xiàn)場保護和現(xiàn)場恢復: 中斷是在執(zhí)行其它任務(wù)的過程中轉(zhuǎn)去執(zhí)行臨時的任務(wù),為了在執(zhí)行完中斷服務(wù)程序后,回頭執(zhí)行原先的程序時,知道程序原來在何處打斷的,各有關(guān)寄存器的
25、內(nèi)容如何,就必須在轉(zhuǎn)入執(zhí)行中斷服務(wù)程序前,將這些內(nèi)容和狀態(tài)進行備份即保護現(xiàn)場。我們舉個例子,在看書時,電話玲響需傳去接電話時,必須在書本上做個記號,以便在接完電話后回來看書時,知道從哪些內(nèi)容繼續(xù)往下看。計算機的中斷處理方法也如此,中斷開始前需將有關(guān)寄存器的內(nèi)容壓入堆棧進行保存,以便在恢復原來程序時使用。中斷服務(wù)程序完成后,繼續(xù)執(zhí)行原先的程序,就需把保存的現(xiàn)場內(nèi)容從堆棧中彈出,恢復積存器和存儲單元的原有內(nèi)容,這就是現(xiàn)場恢復。 如果在執(zhí)行中斷服務(wù)時不是按上述方法進行現(xiàn)場保護和恢復現(xiàn)場,就會是程序運行紊亂,程序跑飛,自然使單片機不能正常工作。()中斷打開和中斷關(guān)閉:在中斷處理進行過程中,可
26、能又有新的中斷請求到來,這里規(guī)定,現(xiàn)場保護和現(xiàn)場恢復的操作是不允許打擾的,否則保護和恢復的過程就可能使數(shù)據(jù)出錯,為此在進行現(xiàn)場保護和現(xiàn)場恢復的過程中,必須關(guān)閉總中斷,屏蔽其它所有的中斷,待這個操作完成后再打開總中斷,以便實現(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單片機中,中斷返
27、回是通過一條專門的指令實現(xiàn)的,自然這條指令是中斷服務(wù)程序的最后一條指令。) 交通燈中的中斷處理流程()現(xiàn)場保護和現(xiàn)場恢復:有特殊車輛要通過時就要進行中斷,在中斷之前,先將交通燈中斷前情況保護好,當中斷執(zhí)行后再恢復現(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)換為綠燈,南北方向為紅燈。() 中
28、斷返回:執(zhí)行完中斷服務(wù)程序后,必然要返回,即回交通燈信號回到中斷前狀態(tài),顯示時間也和中斷前一樣。3.2 智能交通燈系統(tǒng)的組成 第四章 智能交通燈控制系統(tǒng)的軟件設(shè)計4.1智能交通燈的軟件設(shè)計流程圖如圖7所示:圖八 交通燈的軟件設(shè)計流程圖控制器的軟件設(shè)計 5.1.1 每秒鐘的設(shè)定 延時方法可以有兩種一中是利用MCS-51內(nèi)部定時器產(chǎn)生溢出中斷來確定1秒的時間,另一種是采用軟件延時的方法。計數(shù)器硬件延時.a計數(shù)器初值計算 定時器工作時必須給計數(shù)器送計數(shù)器初值,這個值是送到TH和TL中的。他是以加法記數(shù)的,并能從全1到全0時自動產(chǎn)生溢出中斷請求。因此,我們可以把計數(shù)器記滿為零所需的計數(shù)值設(shè)定為C和計數(shù)
29、初值設(shè)定為TC 可得到如下計算通式: TC=M-C式中,M為計數(shù)器模值,該值和計數(shù)器工作方式有關(guān)。在方式0時M為213 ;在方式1時M的值為216;在方式2和3為28.b 計算公式 T=(MTC)T計數(shù) 或TCM-CT計數(shù)T計數(shù)是單片機時鐘周期的12倍;TC為定時初值如單片機的主脈沖頻率為12MHZ,經(jīng)過12分頻方式0TMAX213微秒8.912毫秒方式1TMAX216微秒65.536毫秒顯然秒鐘已經(jīng)超過了計數(shù)器的最大定時間,所以我們只有采用定時器和軟件相結(jié)合的辦法才能解決這個問題5.1.2 1秒的方法我們采用在主程序中設(shè)定一個初值為20的軟件計數(shù)器和使T0定時50毫秒這樣每當T0到50毫秒時
30、CPU就響應(yīng)它的溢出中斷請求,進入他的中斷服務(wù)子程序。在中斷服務(wù)子程序中,CPU先使軟件計數(shù)器減,然后判斷它是否為零。為零表示1秒已到可以返回到輸出時間顯示程序。相應(yīng)程序代碼()主程序定時器需定時50毫秒,故T0工作于方式1。初值:TCM-T T計數(shù)50ms/1us=15536=3CBOH ORG 1000H START: MOV TMOD, #01H ; 令T0為定時器方式 MOV TH0, #3CH ;裝入定時器初值 MOV TL0, #BOH; MOV IE,#82H ;開0中斷 SEBT TRO;啟動0計數(shù)器 MOV RO,#14H;軟件計數(shù)器賦初值LOOP:SJMP $;等待中斷()
31、中斷服務(wù)子程序 ORG 00BH AJMPBRT0 ORG 00BHBRT0:DJNZ R0,NEXTAJMP TIME ; 跳轉(zhuǎn)到時間及信號燈顯示子程序 DJNZ:MOV R0,14H;恢復R0值 MOV TH0, #3CH ;重裝入定時器初值 MOV TL0, #BOH; MOV IE, #82H RET1 END5.1.3 軟件延時 MCS-51的工作頻率為2-12MHZ,我們選用的8031單片機的工作頻率為6MHZ。機器周期與主頻有關(guān),機器周期是主頻的12倍,所以一個機器周期的時間為12*(1/6M)=2us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定1秒
32、的時間。 具體的延時程序分析: DELAY:MOV R4,#08H 延時1秒子程序 DE2:LCALL DELAY1 DJNZ R4,DE2 RETDELAY1:MOV R6,#0 ;延時125ms 子程序 MOV R5,#0DE1: DJNZ R5,$ DJNZ R6,DE1 RETMOV RN,#DATA ;字節(jié)數(shù)數(shù)為2 ,機器周期數(shù)為1所以此指令的執(zhí)行時間為2ms,而DELAY1 為一個雙重循壞 循環(huán)次數(shù)為256*256=65536 所以延時時間=65536*2=131072us 約為125us 。DELAY R4設(shè)置的初值為8 主延時程序循環(huán)8次,所以125us*8= 1秒由于單片機的
33、運行速度很快其他的指令執(zhí)行時間可以忽略不計。 第四章 智能交通燈方案的仿真PROTEUS嵌入式系統(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所示定義代碼生成工具對話框。圖十一 定
34、義代碼生成工具對話框在Tool下拉列表框中選擇代碼生成工具,在這一示例中,電路中的微處理器為8051系列單片機,因此選擇ASEM51, 單擊Browse按鈕,選取Wave6000的安裝路徑。單擊OK按鈕,結(jié)束代碼生成工具的定義。選擇SourceAdd/Remove Source File 菜單項,將出現(xiàn)Add/Remove Source Code Files對話框,如圖十二所示:圖十二 添加/刪除源文件對話框在Code Generation Tool 選項區(qū),單擊下三角按鈕,選擇ASEM51工具。(2) 單擊New按鈕,將出現(xiàn)如圖十三所示對話框。圖十三 創(chuàng)建源代碼對話框選擇用Wave6000創(chuàng)
35、建好的AA.ASM文件,即完成了文件的創(chuàng)建。就這樣當用Wave6000對AA.ASM 文件進行更改時每一次運行PROTEUS VSM 的ISIS對電路進行仿真時Wave6000都會對AA.ASM進行編譯,AA.HEX文件也會隨時更新。電路圖繪制完成后, 再添加AT89C51 的應(yīng)用程序。將鼠標移至AT89C51 上, 單擊鼠標右鍵使之處于選中狀態(tài), 在該器件上單擊左鍵, 打開如圖11所示的對話框。在 Program File 欄添加編譯好的十六進制格式的程序文件AA.hex(可以接受3 種格式的文件) ,給AT89C51輸入晶振頻率,此處默認為12MHZ, 單擊OK 按鈕完成程序添加工作, 下
36、面就可以進行系統(tǒng)仿真了。單擊主界面下方的按鈕開始系統(tǒng)仿真。PROTEUS VSM 所進行的是一種交互式仿真, 在仿真進行中可以對各控制按鈕、開關(guān)等進行操作, 系統(tǒng)對輸入的響應(yīng)會被真實的反映出來。仿真結(jié)果如圖十五。在這個例子里, 開始仿真后,開關(guān),按鈕通過鼠標單擊來改變狀態(tài),所改變狀態(tài)的狀態(tài)會在LED和數(shù)碼管顯示出來。由于篇幅所限, 以上僅舉一例簡單介紹了PROTEUS VSM 的使用, 但其強大的系統(tǒng)仿真功能已經(jīng)得到體現(xiàn), 用在單片機系統(tǒng)設(shè)計的教學方面, 能起到良好的教學效果。圖十四 AT89C51添加程序文件圖十五 交通燈仿真界面 該系統(tǒng)應(yīng)用了單片機實現(xiàn)智能交通燈管制的控制系統(tǒng),以及該系統(tǒng)軟
37、、硬件設(shè)計方法,實驗證明該系統(tǒng)實現(xiàn)簡單、經(jīng)濟,能夠有效地疏導交通,提高交通路口的通行能力. 智能控制交通系統(tǒng)實現(xiàn)是目前研究的方向,也已經(jīng)取得不少成果,但傳統(tǒng)的定時交通燈控制仍然在一些地方廣泛應(yīng)用,那是車流量不大,而且交通道路相對好的地方,傳統(tǒng)的定時交通燈控制還是起到了一定的作用。但隨著社會的高速發(fā)展,城市化日益完善,車的數(shù)量必然增多,給交通的壓力也增大,這時候,智能交通燈控制將會起到疏導交通,改善城市交通環(huán)境,推動城市化日益完善!基于Proteus智能交通燈控制系統(tǒng)軟件設(shè)計上有兩個主要特點,一方面是本設(shè)計采用模糊控制方法實現(xiàn)交通的控制,由于模糊控制不需要建立被控對象精確的數(shù)學模型,特別適用于隨
38、機的復雜的城市交通控制,因此以多變少為例子,在通行時間方面控制設(shè)置為20s25s40s45s20s 為一個循環(huán),根據(jù)車流量,合理分配了通行時間。另一方面,設(shè)計應(yīng)急轉(zhuǎn)換開關(guān),考慮緊急車通過時,譬如,急救車或消防車執(zhí)行緊急任務(wù)通過時,兩車道的車都應(yīng)停止,讓緊急車通過。PIC單片機 參考文獻1陳大欽. 電子技術(shù)基礎(chǔ)實驗 M. 北京:高等教育出版社 2004年2陳梓城. 電子技術(shù)實訓 M. 北京: 機械工業(yè)出版社 2003年3吳黎明. 單片機原理及應(yīng)用技術(shù) M. 北京: 科學出版社 2003年4李學海. 標準80C51單片機基礎(chǔ)教程 M. 北京航空航天大學出版社 2006年5劉樂善. 微型計算機接口技
39、術(shù)及應(yīng)用 M. 華中科技大學出版社 2004年 6陳炳權(quán) 曾慶六. EDA技術(shù)實用教程 M. 湘潭: 湘潭大學出版社 2010年 7 先鋒工作室. 單片機程序?qū)嵗齅.北京:清華大學出版社,2002. 8 李伯成.基于MCS-51單片機的嵌入式系統(tǒng)的設(shè)計M.北京:電子工業(yè)出版社,2004. 9 吳洪潭,肖艷萍,趙偉國.單片機原理及應(yīng)用系統(tǒng)設(shè)計M.北京:國防工業(yè)出版社,2005 10 Rockw ell A u tomat ioa. A llenB radley M icroLogixTM 1500. 用戶參考手冊Z . 美國:1999.第七章 致謝本課題的工作是在張依群老師的親切關(guān)懷和精心指導下
40、完成的,在此對他的關(guān)心、指導和教誨表示衷心的感謝!作者在此期間的工作自始至終都是在張老師全面、具體的指導下進行的,張老師在論文選題方面的遠見卓識以及在完成課題和論文期間富有啟發(fā)性的建議是本文工作得以順利完成的根本保證。他高尚的品德、嚴謹?shù)膶W風、一絲不茍的工作態(tài)度、孜孜不倦的工作精神和對科學真理的執(zhí)著追求使我終生受益,這將為我今后的學習和工作打下堅實的基礎(chǔ)。感謝我的學友葉家榮等人對我的關(guān)心和幫助。他們的關(guān)懷是我克服困難,勇往直前的巨大動力。最后,感謝評閱專家在百忙中評閱本論文,并提出寶貴意見!附智能交通燈控制程序:ORG 0000HA_BIT EQU 20H ;用于存放南北十位數(shù)B_BIT EQ
41、U 21H ;用于存放南北十位數(shù)C_BIT EQU 22H ;用于存放東西十位數(shù)D_BIT EQU 23H ; 用于存放東西位數(shù)TEMP1 EQU 24H ;用于存放第一二南北狀態(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中斷 PU
42、SH ACC MOV A,P2 ;中斷保護 PUSH ACCMOV P1,#0FFH ;清除先前狀態(tài)MOV P2,#0FFHCLR P1.0CLR P1.4 ;南北通行,東西禁止通行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 ;東西通行,南北禁
43、止通行CLR P1.5JNB P3.3 ,$ ;判斷是否還在中斷狀態(tài)POP ACCMOV P2,A ;返回中斷前狀態(tài)POP ACCMOV P1,ARETI ;中斷返回MAIN: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 ;判斷時間,
44、選初始值T20T: ;南北通行要顯示的時間為20的計數(shù)器初始值CLR TF0 ;清TF0CLR TF1 ;清TF1MOV TH1 ,#0FFH ;送20秒時的初始值MOV 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
45、 ;跳到40秒TEMP20: ;TEMP1=20情況SETB TR0 ;開始計數(shù)SETB TR1CLR P1.2CLR P2.1 ;南北通行,東西禁止通行CLR P1.3CLR 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.2
46、CLR P1.1 ;南北黃燈,東西禁止通行SETB P1.3CLR P1.4MOV TEMP1,#05 ;南北要顯示的時間,MOV TEMP2,#05 ;東西要顯示的時間,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 ; 多車下次顯示時間
47、為40秒LJMP STAR3 ;若顯示時間為 0跳到第三狀態(tài)NEXT2:LJMP STLOP2TEMP40:;TEM=40 程序SETB TR0 ; 開始計數(shù)SETB TR1CLR 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 ;若顯示時間為
48、 0跳到第二狀態(tài)NEXT11: LJMP STLOP11STAR22: ;狀態(tài)1SETB P1.2CLR P1.1 ;南北黃燈,東西禁止通行SETB P1.3CLR P1.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秒LJM
49、P STAR3T401:MOV TEMP1,#40 ;多車下次顯示時間為40秒LJMP STAR3 ;若顯示時間為 0跳到第三狀態(tài)NEXT22:LJMP STLOP22STAR3: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
50、,#0FFH ;給初值MOV TL1 ,#0F8HMOV TH0 ,#0FFHMOV TL0 ,#0F8HLJMP TEMP340TEMP320:;狀態(tài)三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,#25 ;南北要顯示的時間,MOV TEMP4,#20 ;東西要顯示的時間,STLOP33:ACALL DISPLAY ;調(diào)用顯示DEC TEMP3 ;時間夠一秒顯示時間減1DEC TEMP4MOV
51、A,TEMP4CJNE A,#0,NEXT33 ;若顯示時間不為0保持現(xiàn)在狀態(tài)LJMP STAR34 ;若顯示時間為 0跳到第四狀態(tài)NEXT33:LJMP STLOP33STAR34: ;狀態(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 STLOP34TEMP340 :SETB TR1 ;南北停止計數(shù)SETB TR0 ;東西開始計數(shù)SETB P1.1
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 我的學習伙伴物品介紹作文13篇
- 動物世界中的友情故事童話寫人類作文14篇范文
- 一次充滿創(chuàng)意的手工課寫事周記7篇范文
- 兒童營養(yǎng)不良的評估與膳食改善
- 2025年生態(tài)補償機制在生態(tài)補償機制與金融創(chuàng)新中的應(yīng)用報告
- 一次奇妙的探險經(jīng)歷童話作文(8篇)
- 能源行業(yè)數(shù)字化轉(zhuǎn)型中的智能電網(wǎng)2025年智能化運維成本優(yōu)化研究報告
- 難忘的一次遠足抒情作文(15篇)
- 建筑農(nóng)民工權(quán)益保障2025年行業(yè)規(guī)范與新型用工模式創(chuàng)新路徑探析
- 單身經(jīng)濟驅(qū)動下小型家電市場年輕化消費趨勢研究報告
- 河長制培訓課件
- 醫(yī)院感染管理組織架構(gòu)圖
- 5-電氣綠色專篇
- 室外供熱管網(wǎng)設(shè)計計算書案例
- 外國城建史(復習整理)
- 高考語文必備古詩文(含翻譯及賞析)
- 二年級北師大版語文下冊形近字專項復習含答案
- 食品中日文加工用語
- 小班化教育課堂教學.ppt
- 等效內(nèi)摩擦角計算表
- 2×1000MW高效清潔燃煤發(fā)電項目建議書寫作模板-
評論
0/150
提交評論