基于單片機的交通燈控制系統(tǒng)設計_第1頁
基于單片機的交通燈控制系統(tǒng)設計_第2頁
基于單片機的交通燈控制系統(tǒng)設計_第3頁
基于單片機的交通燈控制系統(tǒng)設計_第4頁
基于單片機的交通燈控制系統(tǒng)設計_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、目 錄摘 要1關 鍵 詞1Abstract1Keywords1第一章 前言21.1 交通燈控制系統(tǒng)的研究現(xiàn)狀21.2基于單片機的交通燈控制系統(tǒng)設計的意義2第二章 交通燈控制系統(tǒng)的總體設計32.1交通燈控制系統(tǒng)的規(guī)劃32.2 交通燈控制系統(tǒng)設計原理32.3交通燈控制系統(tǒng)設計實現(xiàn)的功能5第三章 交通燈控制系統(tǒng)的硬件設計63.1 AT89S51單片機簡介63.1.1 AT89S51單片機的主要性能參數(shù)63.1.2 AT89S51芯片內(nèi)部結構簡介63.1.3 主要引腳功能83.2 控制器的原理框圖103.3 各控制模塊123.3.1、車檢測模塊123.3.2 信號燈模塊163.3.3 時間顯示模塊17

2、3.3.4 緊急轉(zhuǎn)換模塊18第四章 智能交通燈控制系統(tǒng)的軟件設計204.1交通燈的軟件設計流程圖204.1.1每秒鐘的設定204.1.2 1秒鐘的方法20參考文獻29致 謝29基于單片機的交通燈控制系統(tǒng)摘 要:本設計是基于單片機的交通燈控制系統(tǒng)設計。主要內(nèi)容有交通燈控制系統(tǒng)的總體設計方案,設計意義,設計原理和主要功能,各個功能模塊的介紹,部分電路設計,軟件系統(tǒng)的設計以及所選單片機的詳細介紹。設計中用發(fā)光二極管模擬信號燈,緊急車的優(yōu)先通過由外部中斷技術來模擬,要求使用ATM89S51定時計數(shù)器0作為定時器,對通過時間進行倒計時,在LED上顯示并進行遞減,采用視頻采集圖樣的方法來檢測車流量,最后利

3、用匯編語言設計完成交通燈控制系統(tǒng)。關鍵詞:ATM89S51單片機 交通燈控制系統(tǒng) 視頻采集圖樣 車流量The Design of Intelligent Traffic Light Control System BasedAbstract:This design is based on SCM traffic control system design. The main contents of a traffic control system overall design scheme, design, design principles and the main meaning, func

4、tion modules of introduction, circuit design, software design and the selected MCU detailed introduction. Design, using light-emitting diodes simulation of signal priority by emergency vehicles by external interruption technology to simulate ATM89S51 timing counter, require as timer, right through 2

5、-0 in time for the countdown, LED display on video and descending, adopt the method to detect collected traffic pattern, finally, using the assembler language design completed traffic control system. Key words:ATM89S51SCM Traffic control system Video collection pattern traffic flow 第一章 前言1.1 交通燈控制系統(tǒng)

6、的研究現(xiàn)狀在今天,紅綠燈安裝在各個道口上,已經(jīng)成為疏導交通車輛最常見和最有效的手段。但這一技術在19世紀就已出現(xiàn)了。 從采用計算機控制到現(xiàn)代化的電子定時監(jiān)控,交通信號燈在科學化、自動化上不斷地更新、發(fā)展和完善。但是,隨著社會的不斷進步,傳統(tǒng)的交通燈的缺陷也日益出現(xiàn),其中設計過于死板,達不到道路的最大通行效率是最明顯的問題,紅綠燈交替變換時間過于程式化。隨著我國經(jīng)濟的高速發(fā)展,人們對各種交通車輛的需求量不斷增大,城市的交通擁護問題日益嚴重,目前,大部分城市的十字路口的交通控制燈,通常的做法是:事先經(jīng)過車輛流量的調(diào)查,利用傳統(tǒng)的方法設計好紅綠燈的延時,然而,實際上的車流量是不斷變化的,有的路口在不

7、同的時間段車流量的大小甚至有很大的差異,所以說,統(tǒng)計的方法己不能適應迅速發(fā)展的交通現(xiàn)狀。1.2基于單片機的交通燈控制系統(tǒng)設計的意義 國內(nèi)的交通燈一般設在十字路門,在醒目位置用紅、綠、黃三種顏色的指示燈。加上一個倒計時的顯示計時器來控制行車。對于一般情況下的安全行車,車輛分流尚能發(fā)揮作用,但根據(jù)實際行車過程中出現(xiàn)的情況,還存在以下缺點:1兩車道的車輛輪流放行時間相同且固定, 在十字路口,經(jīng)常一個車道為主干道,車輛較多,放行時間應該長些;另一車道為副干道,車輛較少,放行時間應該短些。2沒有考慮緊急車通過時,兩車道應采取的措施,臂如,消防車執(zhí)行緊急任務通過時,兩車道的車都應停止,讓緊急車通過?;趥?/p>

8、統(tǒng)交通燈控制系統(tǒng)設計過于死板,紅綠燈交替是間過于程式化的缺點,智能交通燈控制系統(tǒng)的設計就更顯示出了它的研究意義,它能根據(jù)道路交通擁護,交叉路口經(jīng)常出現(xiàn)擁堵的情況。利用單片機控制技術提出了軟件和硬件設計方案,能夠?qū)崿F(xiàn)道路的最大通行效率。 第二章 交通燈控制系統(tǒng)的總體設計2.1交通燈控制系統(tǒng)的規(guī)劃我們將系統(tǒng)設計成可分離單獨工作的主控制機與客戶端的形式,但是和傳統(tǒng)的C/S模式不一樣的是,每個終端機可以脫離主控制機而獨立工作。即使主控制機停止工作,或者由于某種原因不能正常工作,各終端機也可以照常穩(wěn)定的工作。各個終端機負責管理路口的多個信號燈。為了方便我們稱主控制機為主系統(tǒng),各個終端機稱為子系統(tǒng)??刂葡?/p>

9、統(tǒng)的總框圖如圖2-1示遠程主系統(tǒng)計算機 路口子系統(tǒng) 路口子系統(tǒng) 路口子系統(tǒng) B干道交通信號燈B干道交通信號燈A干道交通信號燈 A干道交通信號燈圖2-1 控制系統(tǒng)的總框圖2.2 交通燈控制系統(tǒng)設計原理 首先了解實際交通燈的變化情況和規(guī)律。假設一個十字路口如下圖2-2,所以,為東南西北走向。初始狀態(tài)0為東西南北都紅燈亮。然后轉(zhuǎn)狀態(tài)1東西綠燈通車,南人行道人行道人行道 人行道圖2-2 十字路口圖北紅燈亮。過一段時間后,轉(zhuǎn)狀態(tài)2,東西綠燈滅,黃燈閃幾下,南北還是紅燈。再轉(zhuǎn)狀態(tài)3,南北綠燈通車,東西紅燈亮。過一段時間后轉(zhuǎn)狀態(tài)4,南北綠燈滅,閃幾個黃燈,東西還是為紅燈亮,一段時間后,又循環(huán)至狀態(tài)1。交通信

10、號燈的狀態(tài)表如下表,其中,1代表燈亮,0代表燈滅。表2-1 交通信號燈的狀態(tài)表狀態(tài)北西南東綠黃紅綠黃紅綠黃紅綠黃紅000100100100110011000011002001010001010310000110000140100010100012、對于交通信號燈來說,應該有東西南北共四組燈,但由于同一道上的兩組的信號燈的顯示情況是相同的,所以只要用兩組就行了,因此,采用單片機內(nèi)部的I/O口上的P1口中的6個引腳即可來控制6個信號燈。3、通過編寫程序,實現(xiàn)對發(fā)光二極管的控制,來模擬交通信號燈的管理。每延時一段時間,燈的顯示情況都會按交通燈的顯示規(guī)律進行狀態(tài)轉(zhuǎn)換。4、通過延時時間送顯,可以在原有的

11、交通信號燈系統(tǒng)的基礎上,增添其倒計時間的顯示功能,實現(xiàn)其功能的擴展。2.3交通燈控制系統(tǒng)設計實現(xiàn)的功能 交通信號燈指揮著人和各種車輛的安全運行,實現(xiàn)紅、黃、綠燈的自動指揮是城鄉(xiāng)交通管理現(xiàn)代化的重要課題.在城鄉(xiāng)街道的十字交叉路口,為了保證交通秩序和行人安全,一般在每條道路上各有一組紅、黃、綠交通信號燈,其中紅燈亮,表示該條道路禁止通行; 黃燈亮,表示該條道路上未過停車線的車輛停止通行,已過停車線的車輛繼續(xù)通行; 綠燈亮,表示該條道路允許通行.交通燈控制電路自動控制十字路口兩組紅、黃、綠交通燈的狀態(tài)轉(zhuǎn)換,指揮各種車輛和行人安全通行,實現(xiàn)十字路口城鄉(xiāng)交通管理自動化。在傳統(tǒng)交通燈控制系統(tǒng)的基礎上,智能

12、交通燈控制系統(tǒng)實現(xiàn)以下功能:1) 設計一個十字路口的交通燈控制電路,要求南北方向和東西方向兩個交叉路口的車輛交替運行,兩個方向能根據(jù)車流量大小自動調(diào)節(jié)通行時間,車流量大,通行時間長,車流量小,通行時間短 2) 每次綠燈變紅燈時,要求黃燈先亮5S,才能變換運行車輛. 3) 東西方向、南北方向車道除了有紅、黃、綠燈指示外,每一種燈亮的時間都用數(shù)碼管顯示器進行顯示(采用倒計時的方法)。4) 同步設置人行橫道紅、綠燈指示。5) 考慮到特殊車輛情況,設置緊急轉(zhuǎn)換開頭。第三章 交通燈控制系統(tǒng)的硬件設計3.1 AT89S51單片機簡介AT89S51是美國ATMEL公司生產(chǎn)的低功耗,高性能CMOS8位單片機,

13、片內(nèi)含4k bytes的可系統(tǒng)編程的Flash只讀程序存儲器,器件采用高密度、非易失性存儲技術生產(chǎn),兼容標準8051指令系統(tǒng)及引腳。它集Flash程序存儲器 既可在線編程(ISP)也可用傳統(tǒng)方法進行編程及通用8位微處理器于單片芯片中,ATMEL公司的功能強大,低價位AT89S51單片機可提供許多高性價比的應用場合,可靈活應用于各種控制領域。3.1.1 AT89S51單片機的主要性能參數(shù) 與單片機產(chǎn)品兼容8K字節(jié)在系統(tǒng)可編程Flash存儲器、1000次擦寫周期、全靜態(tài)操作:0Hz33Hz、三級加密程序存儲器、32個可編程I/O口線 、三個16位定時器/計數(shù)器 八個中斷源 、全雙工UART串行通道

14、低功耗空閑和掉電模式、掉電后中斷可喚醒、看門狗定時器、雙數(shù)據(jù)指針、掉電標識符。3.1.2 AT89S51芯片內(nèi)部結構簡介 1、中央處理器:中央處理器(CPU)是整個單片機的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進制數(shù)據(jù)或代碼,CPU負責控制、指揮和調(diào)度整個單元系統(tǒng)協(xié)調(diào)的工作,完成運算和控制輸入輸出功能等操作。2、數(shù)據(jù)存儲器(內(nèi)部RAM):數(shù)據(jù)存儲器用于存放變化的數(shù)據(jù)。AT89S51中數(shù)據(jù)存儲器的地址空間為256個RAM單元,但其中能作為數(shù)據(jù)存儲器供用戶使用的僅有前面128個,后128個被專用寄存器占用。3、程序存儲器(內(nèi)部ROM):程序存儲器用于存放程序和固定不變的常數(shù)等。通常采用只讀

15、存儲器,且其又多種類型,在89系列單片機中全部采用閃存。AT89S51內(nèi)部配置了4KB閃存。4、定時/計數(shù)器(ROM): 定時/計數(shù)器用于實現(xiàn)定時和計數(shù)功能。AT89S51共有2個16位定時/計數(shù)器。 5、并行輸入輸出(I/O)口: 8051共有4組8位I/O口(P0、 P1、P2或P3),用于對外部數(shù)據(jù)的傳輸。每個口都由1個鎖存器和一個驅(qū)動器組成。它們主要用于實現(xiàn)與外部設備中數(shù)據(jù)的并行輸入與輸出,有些I/O口還有其他功能。 6、全雙工串行口:A89S51內(nèi)置一個全雙工串行通信口,用于與其它設備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當同步移位器使用。 7、時鐘電路:時鐘電路

16、的作用是產(chǎn)生單片機工作所需要的時鐘脈沖序列。 8、中斷系統(tǒng):中斷系統(tǒng)的作用主要是對外部或內(nèi)部的終端請求進行管理與處理。AT89S51共有5個中斷源,其中又2個外部中斷源和3個內(nèi)部中斷源。圖3-1 AT89S51系列單片機的內(nèi)部結構示意圖3.1.3 主要引腳功能 圖3-2 AT89S51引腳圖VCC:電源電壓GND:地P0口:P0口是一組8位漏極開路型雙向I0口,也即地址數(shù)據(jù)總線復用口。作為輸出口用時,每位能驅(qū)動8個TTL邏輯門電路,對端口寫“l(fā)”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復用,在訪問期間激活內(nèi)部上拉電阻。P1口:Pl 是一

17、個帶內(nèi)部上拉電阻的8位雙向IO口,Pl的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“l(fā)”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。Flash編程和程序校驗期間,Pl接收低8位地址。表3-1 具有第二功能的P1口引腳端口引腳第二功能:P1.5MOSI(用于ISP編程)P1.6MOSI(用于ISP編程)P1.7MOSI(用于ISP編程)P2 口:P2 是一個帶有內(nèi)部上拉電阻的8 位雙向IO 口,P2 的輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL邏輯門電路。對端口寫“1”,通

18、過內(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亦接收高位地址和其它控制信號。P3 口:P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I0 口。P3 口輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL邏輯門電路。對P3口

19、寫入“l(fā)”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。作輸入端時,被外部拉低的P3口將用上拉電阻輸出電流(IIL)。P3口除了作為一般的I0口線外,更重要的用途是它的第二功能,如下表所示:表3=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:復位輸入。當振蕩器

20、工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復位。WDT 溢出將使該引腳輸出高電平,設置SFR AUXR的DISRT0 位(地址8EH)可打開或關閉該功能。DISRT0位缺省為RESET輸出高電平打開狀態(tài)。ALE:當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE 仍以時鐘振蕩頻率的16 輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對F1ash存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的

21、8EH 單元的D0 位置位,可禁止ALE 操作。該位置位后,只有一條M0VX和M0VC指令ALE才會被激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應設置ALE無效。程序儲存允許()輸出是外部程序存儲器的讀選通信號,當AT89S51 由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次有效,即輸出兩個脈沖。當訪問外部數(shù)據(jù)存儲器,沒有兩次有效的信號。VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000HFFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接VCC端),CPU則執(zhí)行內(nèi)部程序存儲器中的指

22、令。F1ash存儲器編程時,該引腳加上+12V的編程電壓Vpp。XTAL1:振蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。3.2 控制器的原理框圖 按任務和要求,可畫出該控制器的原理框圖, 為確保十字路口的交通安全,往往都采用交通燈自動控制系統(tǒng)來控制交通信號。其中紅燈(R)亮,表示禁止通行;黃燈(Y)亮表示暫停;綠燈(G)亮表示允許通行。1) 控制器的系統(tǒng)框圖如圖3-3所示。 圖3-3 控制器的系統(tǒng)框圖 圖3-4 智能交通燈電路圖綠燈的放行時間與車輛通過數(shù)量不成正比。比如說20秒內(nèi)每車道可以通過20輛車,40秒內(nèi)每車道卻可以通過45輛車。因為這有一個起步的問題,還有一個黃燈等待問題。也就是說,綠燈

23、放行時間越長,單位時間通過車輛的數(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)通行的車輛越多,可以有效緩解車輛擁堵問

24、題。當然綠燈時間也不可能無限長,要考慮到讓另一路口的等待時間不能過長。人們總是希望在交通燈前等候的時間越短越好。所以本設計設定了綠燈通行時間的上限為40秒。在非擁擠時段綠燈的通行時間的下限為20秒,當交叉路口雙方車輛較少時通行時間設為20秒,這樣可以大大縮短車輛在紅燈面前的等待時間。當交叉路口雙方車輛較多時通行時間設為40秒。3.3 各控制模塊交通燈系統(tǒng)由四部分組成:車檢測模塊,信號燈模塊,時間顯示模塊,緊急轉(zhuǎn)換模塊。3.3.1、車檢測模塊用來判斷各方向車輛狀況,比如:20秒內(nèi)可以通過的車輛為20輛,當20秒內(nèi)南往北方向車輛通過車輛達不到20輛時,判斷該方向為少車,當20秒內(nèi)北往南方向車輛通過

25、車輛也達不到20輛時,判斷該方向也為少車,下一次通行仍為20秒,當20秒時間內(nèi)南往北或北往南任意一個方向通過的車輛達20輛時證明該狀態(tài)車輛較多,下一次該方向綠燈放行時間改為40秒,當40秒內(nèi)通過的車輛數(shù)達45輛時車輛判斷為擁擠,下一次綠燈放行時間改仍為40秒,當40秒車輛上通過車輛達不到45輛時,判斷為少車,下次綠燈放行時間改為20秒, 依此類推。綠燈下限時間為20秒,上限值為40秒,初始時間為20秒。 圖3-5車檢測安裝示意圖由于南往北,北往南時間顯示相同,所以只要一個方向多車,下次時間就要加長東往西,西往東也一樣,顯示時間選擇如表3-3.表3-3 顯示時間選擇車輛情況本次該方向通行時間下次

26、該方向通行時間本次該方向通行時間本次該方向通行時間南往北少車,北往南少車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秒圖3-6車流量檢測程序流程圖車檢測方法的選擇1、傳統(tǒng)車流量檢測方法1)空氣管道檢測2)磁感應檢測技術3)紅外檢測技術2、本設計采用基于視頻圖像的車流量檢測 基本思想是在視頻圖片中的每

27、條車道上設置一個固定區(qū)域作為虛擬的檢測線,再對該區(qū)域內(nèi)圖像進行處理,完成對車輛信息的獲取。本設計采用這種方法的優(yōu)點:1)能夠提供高質(zhì)量的圖像信息,信息量大,可以高效、準確、可靠地完成道路交通的監(jiān)視和控制工作。 2)安裝視頻攝像機方便、經(jīng)濟,現(xiàn)在國內(nèi)許多城市道路已經(jīng)安裝了攝像機監(jiān)控系統(tǒng)。 3)計算機視覺和數(shù)字圖像處理技術發(fā)展迅速,滿足了系統(tǒng)實時性、可靠性方面的要求。 圖3-7基于視頻圖像的車流量檢測工作原理圖3-8 基于視頻圖像的車流量檢測圖視頻圖像的車流量檢測的方法背景差法、幀差法、邊緣檢測法、灰度比較法 背景差法將當前輸入幀圖像與背景圖像進行差值計算,以分離出車輛。但背景圖像需要實時刷新,影

28、響因素較多。 幀差法則是對相鄰兩幀圖像進行差值計算,但不能支除攝像頭抖動引起的干擾,對靜止或速度慢(兩幀圖像中車輛運動位移不明顯)的車輛無法有效檢測。 邊緣檢測法通過對幀圖像進行邊緣檢測,以提取車輛的邊緣特征進行識別。該方法可在不同的光線條件下進行檢測,但對于車輛邊緣不明顯或存在道路隔離帶等干擾物體時可能造成漏檢和誤檢灰度比較車檢測電路3.3.2 信號燈模塊信號燈用來顯示車輛通行狀況,下面以一個十字路口為例,說明一個交通燈的四種狀態(tài)見圖3-9。每個路口的信號的的轉(zhuǎn)換順序為:綠黃紅 綠燈表示允許通行,黃燈表示禁止通行,但已經(jīng)駛過安全線的車輛可以繼續(xù)通行,是綠燈過渡到紅燈提示燈。紅燈表示禁止通行。

29、綠燈的最短時間為20秒,最長時間為40秒,紅紅最短時間為25秒,最長時間為45秒,黃燈時間為5秒。紅黃綠紅黃綠綠黃紅紅黃綠綠黃紅綠黃紅紅黃綠紅黃綠紅黃綠綠黃紅綠黃紅紅黃綠綠黃紅綠黃紅紅黃綠紅黃綠圖3-9 交通信號燈運行狀態(tài)圖3-10 信號燈顯示電路3.3.3 時間顯示模塊 在交通信號燈的正上方安裝一個可以顯示綠燈通行時間,紅燈等待時間的顯示電路,采用數(shù)碼管顯示電路是一種很好的方法。由于東往西方向和西往東方向顯示的時間相同,南往北方向和北往南方向顯示的時間也相同,所以只需要考慮四位數(shù)碼管顯示電路,其中東西方向兩位,南北方向兩位,兩位數(shù)碼管可以時間的時間為0-99秒完全可以滿足系統(tǒng)的要求,數(shù)碼管連

30、接方法如圖3-11所示圖3-11 數(shù)碼管連接方法下面我用這種方法顯示交通燈的時間,南北方向要顯示20秒,東西方向要顯示25秒,那么我們先給P0口送2的共陰極碼即5BH,讓第一位2要顯示的位碼GND段為低電平,其它三位的控制端都接高電平,那么第一位就顯示2,其它三位不亮。讓其顯示1MS后再給P0口送0的共陰極碼即3FH,讓第二位要顯示0的位碼GND段為低電平,其它三位的控制端都接高電平,那么第二位就顯示0,其它三位不亮。依此類推分別送完第一位2,第二位0,第三位2,第四位5,每一位點亮1MS,一個掃描周期為4MS,一秒時間就要掃描250次3.3.4 緊急轉(zhuǎn)換模塊一般情況下交通燈按照車流量大小合理

31、分配通行時間,按一定規(guī)律變化,但考慮緊急車通行車況,設計緊急通行開關,下面簡述單片機的中斷原理。 ) Mcs51的中斷源 8051有5個中斷源,它們是兩個外中斷INT0(P3.2)和INT1(P3.3)、兩個片內(nèi)定時/計數(shù)器溢出中斷TF0和TF1,一個是片內(nèi)串行口中斷TI或RI,這幾個中斷源由TCON和SCON兩個特殊功能寄存器進行控制,其中5個中斷源的程序入口地址如表3-4所示:表3-4中斷源程序入口中斷源的服務程序入口地址中斷源入口地址外中斷00003H定時/計數(shù)器0000BH外中斷10013H定時/計數(shù)器0001BH串行口中斷0023H )交通燈中的中斷處理流程()現(xiàn)場保護和現(xiàn)場恢復:有

32、特殊車輛要通過時就要進行中斷,在中斷之前,先將交通燈中斷前情況保護好,當中斷執(zhí)行后再恢復現(xiàn)場,包括信號燈和時間顯示電路。()中斷打開和中斷關閉:為了使特殊車輛通行按一下打開中斷開關就可以打開中斷,關閉中斷開關就關閉中斷。()中斷服務程序:有中斷產(chǎn)生,就必然有其具體的需執(zhí)行的任務,中斷服務程序就是執(zhí)行中斷處理的具體內(nèi)容:即如果南北方向有特殊車輛要求通過,南北方向轉(zhuǎn)換為綠燈,東西方向為紅燈;如果東西方向有特殊車輛要求通過,東西方向轉(zhuǎn)換為綠燈,南北方向為紅燈。()中斷返回:執(zhí)行完中斷服務程序后,必然要返回,即回交通燈信號回到中斷前狀態(tài),顯示時間也和中斷前一樣。第四章 智能交通燈控制系統(tǒng)的軟件設計4.

33、1交通燈的軟件設計流程圖 智能交通燈的軟件設計流程圖如圖4-1所示:圖4-1 交通燈的軟件設計流程圖4.1.1 每秒鐘的設定延時方法可以有兩種一中是利用MCS-51內(nèi)部定時器產(chǎn)生溢出中斷來確定1秒的時間,另一種是采用軟件延時的方法。4.1.2 1秒鐘的方法我們采用在主程序中設定一個初值為20的軟件計數(shù)器和使T0定時50毫秒這樣每當T0到50毫秒時CPU就響應它的溢出中斷請求,進入他的中斷服務子程序。在中斷服務子程序中,CPU先使軟件計數(shù)器減,然后判斷它是否為零。為零表示1秒已到可以返回到輸出時間顯示程序。智能交通燈控制程序ORG 0000HA_BIT EQU 20H ;用于存放南北十位數(shù)B_B

34、IT EQU 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

35、中斷 PUSH 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 ;東西通

36、行,南北禁止通行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 ;

37、判斷時間,選初始值T20T: ;南北通行要顯示的時間為20的計數(shù)器初始值CLR TF0 ;清TF0CLR TF1 ;清TF1MOV TH1 ,#0FFH ;送20秒時的初始值MOV TL1 ,#0FCH ;在些設計20秒6輛為多車MOV TH0 ,#0FFHMOV TL0 ,#0FCHLJMP TEMP20 ;跳到20秒T40T: ;南北通行要顯示的時間為40的計數(shù)器初始值CLR TF0 ;清TF0CLR TF1 ;清TF1MOV TH1,#0FFH ;送40秒時的初始值MOV TL1 ,#0F8H ;在些設計40秒8輛為多車MOV TH0 ,#0FFHMOV TL0 ,#0F8HLJMP T

38、EMP40 ;跳到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

39、 P1.2CLR 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 ; 多車下

40、次顯示時間為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 ;若

41、顯示時間為 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 ;少車下次顯示時間為2

42、0秒LJMP 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 TF1MO

43、V TH1,#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 TEMP

44、4MOV 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

45、 TF1 ,T402JB TF0 ,T402MOV TEMP3,#25LJMP START402:MOV TEMP3,#45LJMP STARNEXT34: LJMP STLOP34TEMP340 :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 ;時

46、間夠一秒顯示時間減1DEC TEMP4MOV A,TEMP4CJNE A,#0,NEXT43 ;若顯示時間不為0保持現(xiàn)在狀態(tài)LJMP STAR44 ;若顯示時間為 0跳到第四狀態(tài)NEXT43: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

47、 ;若顯示時間不為0保持現(xiàn)在狀態(tài)JB TF1 ,T403JB TF0 ,T403MOV TEMP3,#25LJMP START403:MOV TEMP3,#45 LJMP STARNEXT44: LJMP STLOP44;顯示DISPLAY1:MOV A,TEMP1 ;將南北要顯示的數(shù)存放到AMOV B,#10 ;B=10DIV AB ;A除以B商存A,余數(shù)BMOV B_BIT,A ; 將A放到20HMOV A_BIT,B ;將B放到21HMOV A,TEMP2 ;將東西要顯示的數(shù)存放到AMOV B,#10 ;B=10DIV AB ;A除以B商存A,余數(shù)BMOV C_BIT,A ;將A放到22HMOV D_BIT,B ;將B放到23HMOV DPTR ,#NUMT ;MOV R0,#2 ;R0=2DPL11: MOV R1,#250 ;R1=250DPLOP1:MOV A,A_BIT ;將南北要顯示的10位數(shù)送AMOVC A,A+DPTR ;查表MOV P0,A ;顯示南北10位數(shù)CLR P2.7ACALL D1MS;延時1MSSETB P2.7 ;滅南北10位數(shù)MOV A,B_BIT ;將南北要顯示的個位數(shù)送AMOVC A,A+DPTR ;查表MOV P0,A ;顯示南北個位數(shù)CLR P2.6ACALL D1MS ;延時1MSSETB P2.6 ;滅南北個位數(shù)M

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論