




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