郭歡歡?高亞蘭
摘 要:本文提出了一種基于AT89C52單片機(jī)的智能交通燈控制系統(tǒng)的設(shè)計(jì)方案。方案采用AT89C52作為系統(tǒng)控制核心,使用并行接口芯片8155來控制四個(gè)路口的交通信號(hào)燈,能夠?qū)崟r(shí)并智能的控制各個(gè)路口車輛的通行時(shí)間,緩解交通擁堵的現(xiàn)狀,提高道路車輛的通行效率。
關(guān)鍵詞:AT89C52;交通信號(hào)燈;智能控制
基金項(xiàng)目:2015年度高等學(xué)校省級(jí)質(zhì)量工程項(xiàng)目 項(xiàng)目編號(hào):201510379099
伴隨著我國(guó)不斷加快的現(xiàn)代化進(jìn)程,城市的規(guī)模在不斷擴(kuò)大,家庭轎車擁有量的不斷增加,常常引起局部小規(guī)模的交通擁堵和混亂現(xiàn)象,這一問題的繼續(xù)發(fā)展或惡化,必將成為制約我國(guó)社會(huì)經(jīng)濟(jì)發(fā)展的一個(gè)嚴(yán)重問題。交通信號(hào)燈是保證城市交通秩序的關(guān)鍵設(shè)備,它在交通分配通行權(quán)上發(fā)揮著重大的調(diào)配作用。但是目前我國(guó)所采用的交通信號(hào)燈大多是紅綠燈以固定的時(shí)間進(jìn)行轉(zhuǎn)換,這一轉(zhuǎn)換方式?jīng)]有任何的靈活性,往往會(huì)造成交通的通行率嚴(yán)重降低,反而會(huì)起到一定的負(fù)面效應(yīng)。因此,建立一個(gè)安全、可靠、高效的交通燈智能控制系統(tǒng)是非常必要和緊迫的,也具有現(xiàn)實(shí)必然性。本文設(shè)計(jì)的智能交通燈控制系統(tǒng),對(duì)于有效緩解十字路口的車輛擁堵狀況具有較好的效果,從而達(dá)到交通通行權(quán)的最優(yōu)控制。對(duì)于當(dāng)下人們對(duì)高效率生活節(jié)奏的追求和出行安全的要求,該系統(tǒng)的設(shè)計(jì)并最終投入應(yīng)用,最終實(shí)現(xiàn)智能化地解決現(xiàn)實(shí)中的交通問題。
1 總體系統(tǒng)設(shè)計(jì)方案
基于單片機(jī)的智能交通燈控制系統(tǒng)主要有控制核心AT89C52單片機(jī)、并行接口芯片8155、數(shù)碼管和紅黃綠三色LED燈組成。在十字路口的每一個(gè)路口架設(shè)一組由黃綠藍(lán)三色LED燈組成的交通信號(hào)燈,本設(shè)計(jì)對(duì)AT89C52單片機(jī)進(jìn)行編程,使用定時(shí)器中斷進(jìn)行計(jì)時(shí)并且通過并行接口芯片8155對(duì)LED燈進(jìn)行亮滅的控制從而實(shí)現(xiàn)交通信號(hào)燈的作用。
如下圖1所示的是一個(gè)十字路口的示意圖。在此我們用1、2、3、4分別表示東南西北四個(gè)流向的車道,用A、B、C、P分別來表示每一個(gè)主車道在十字路口的左轉(zhuǎn)彎車道、直行車道、右轉(zhuǎn)彎車道和人行橫道。使用a、b、c、p分別表示控制左轉(zhuǎn)彎、直行、右轉(zhuǎn)彎和人行橫道的交通信號(hào)燈。
本設(shè)計(jì)的交通信號(hào)燈的工作順序是當(dāng)路口1的車輛允許直行時(shí),4個(gè)路口的交通信號(hào)燈的亮燈情況是:3a3b2p綠3c紅+4a4b4c 3p全紅+1c 綠1a1b4p紅+2c綠2a2b1p紅;當(dāng)路口2的車輛允許直行時(shí),4個(gè)路口的交通信號(hào)燈的亮燈情況是:4a4b3p綠4c紅+ 1a1b1c 4p全紅+ 2c綠2a2b1p紅+3c綠3a3b2p紅;當(dāng)路口3的車輛允許直行時(shí),4個(gè)路口的交通信號(hào)燈的亮燈情況是:1a1b4p綠1c紅+ 2a2b2c 1p全紅+3c綠 3a3b2p紅+4c 綠4a4b3p紅;當(dāng)路口4的車輛允許直行時(shí),4個(gè)路口的交通信號(hào)燈的亮燈情況是:2a2b1p綠2c紅+3c3a3b2p全紅+4c綠4a4b3p紅+1c綠1a1b4p紅。所以綜上所述交通信號(hào)燈所給出的通行順序一共有4種組合,分別就是:1A、1B、3C、4C、2P;2A、2B、1C、4C、3P;4P、2C、1C、3B、3A;1P、3C、2C、4B、4A。交通信號(hào)燈控制的通行也即是按照這四種組合的順序依次進(jìn)行,不斷的循環(huán)。
綜上所述,本設(shè)計(jì)就是要使用AT89C52單片機(jī)和并行接口芯片8155來控制交通信號(hào)燈,使之能夠按照上述的過程進(jìn)行亮滅。
2 硬件電路設(shè)計(jì)
本設(shè)計(jì)使用的AT89C52單片機(jī)一共擁有四組個(gè)并行接口,它們分別是P0口、P1口、P2口和P3口,但是P0口是作為地址和數(shù)據(jù)總線復(fù)用的端口,而P2口也同時(shí)擁有高8位地址線這樣的第二功能,P3口同樣也是具有第二功能的,如此一來,只有P1口可以作為雙向I/O口使用。對(duì)于大多數(shù)的應(yīng)用場(chǎng)合來說,一個(gè)端口是肯定不夠的。所以在本設(shè)計(jì)中我們使用8155芯片來對(duì)單片機(jī)的P0口進(jìn)行擴(kuò)展。如下面圖2為本設(shè)計(jì)的硬件結(jié)構(gòu)框圖。
2.1 AT89C52單片機(jī)
在電子行業(yè)中有著廣泛的應(yīng)用的AT89C52是由ATMEL公司所生產(chǎn)的,這是一種性能較高的8位單片機(jī),價(jià)格低廉。該單片機(jī)的閃存為8k字節(jié),擁有存取數(shù)據(jù)存儲(chǔ)器和只讀程序存儲(chǔ)器,它的數(shù)據(jù)存儲(chǔ)器大小為256 字節(jié),該單片機(jī)的在制造工藝上采用了ATMEL高密度、非易失性存儲(chǔ)技術(shù),耐用性好。在對(duì)該單片機(jī)進(jìn)行編程時(shí)完全可以使用MCS-51指令系統(tǒng),單片機(jī)內(nèi)部置擁有通用8位中央處理器和Flash存儲(chǔ)單元。
AT89C52一共含有四組雙向輸入輸出(I\O)端口,分別為P0、P1、P2和P3口。在本設(shè)計(jì)中我們使用到的是P0口。該單片機(jī)的P0口雙向I/O 口, 同時(shí)它也是地址和數(shù)據(jù)總線的復(fù)合使用端口。當(dāng)將P0口設(shè)置為輸出高電平的時(shí)候,P0口的工作狀態(tài)就是高阻抗?fàn)顟B(tài)。如果我們需要使用P0口來來訪問外部的程序存儲(chǔ)器或者是需要訪問外部的數(shù)據(jù)存儲(chǔ)器的時(shí)候,P0口的工作狀態(tài)就是在數(shù)據(jù)總線和轉(zhuǎn)換低八位地址這兩個(gè)功能之間不停地轉(zhuǎn)換,同時(shí)內(nèi)部的上拉電阻會(huì)在訪問期間被激活。在對(duì)閃存進(jìn)行編程的時(shí)候,該端口是接收指令字節(jié)的,而當(dāng)進(jìn)行程序的校驗(yàn)工作時(shí),該端口相反的就是輸出字節(jié)。
在本設(shè)計(jì)中我們需要使用到定時(shí)器來實(shí)現(xiàn)定時(shí)功能,定時(shí)器所定的時(shí)間要在數(shù)碼管上顯示出來。在該設(shè)計(jì)中我們需要使用到一個(gè)16 位定時(shí)器。在所選擇的MCU中,定時(shí)器2能夠符合我們的要求,在使用定時(shí)器的時(shí)候我們首先要設(shè)置它的工作方式。該工作方式是通過特殊功能寄存器T2CON來設(shè)置的。定時(shí)器2 一共有三種工作方式,分別是捕獲方式、自動(dòng)重裝載方式和波特率發(fā)生器方式,在本設(shè)計(jì)中我們使用的是自動(dòng)重裝載工作方。定時(shí)器2 工作在定時(shí)器工作方式時(shí),每個(gè)機(jī)器周期低八位寄存器的數(shù)值就會(huì)增加一個(gè),而單片機(jī)是由十二個(gè)震蕩時(shí)鐘來組成一個(gè)機(jī)器周期的,所以,計(jì)數(shù)的速度就是震蕩頻率的十二分之一。
2.2 并行接口芯片8155
在本設(shè)計(jì)中我們會(huì)通過MCU的外部的64Kbytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器的一部分空間的擴(kuò)展,使其成為外部輸入輸出端口的地址空間的使用對(duì)象。這樣做的依據(jù)就是該單片機(jī)的外部隨機(jī)存取存儲(chǔ)器和輸入輸出端口的地址是統(tǒng)一編寫的。經(jīng)過這樣的操作我們就可以訪問單片機(jī)P0口上所接的并行接口芯片,這是個(gè)和訪問外部隨機(jī)存取存儲(chǔ)器一樣的過程。在本設(shè)計(jì)中我們使用的是8155芯片來對(duì)單片機(jī)的P0口進(jìn)行擴(kuò)展。
8155芯片是Intel公司推出的可編程RAM\IO芯片,采用的是雙列直插的封裝。8155芯片一共有40個(gè)引腳,其中地址\數(shù)據(jù)線為AD0-AD7一共八條;I\O端口總線為22條,編號(hào)分別為PA0-PA7,PB0-PB7,PC0-PC5;控制總線一共有八條,ALE是一個(gè)輸入端口作用為地址鎖存,IO\`M端口實(shí)現(xiàn)IO口和RAM的選擇,其值為0時(shí)選擇內(nèi)部RAM,其值為1時(shí)選擇IO口;CE為片選線;RD,RW為讀寫控制;TIMERIN和TIMEROUT分別為定時(shí)器的輸入和輸出,他們分別輸入定時(shí)器所需的時(shí)鐘和輸出所產(chǎn)生的方波脈沖。
8155芯片內(nèi)有256B的RAM,當(dāng)IO\`M端口得值為0時(shí),CPU就可以對(duì)8155的RAM進(jìn)行讀寫操作了,此時(shí)尋址的范圍是00H-0FFH。8155芯片的片內(nèi)I\O還包含了四個(gè)寄存器,分別是命令\狀態(tài)寄存器、PA寄存器、PB寄存器和PC寄存器。當(dāng)IO\`M端口得值為1時(shí),CPU對(duì)8155的I\O口進(jìn)行讀寫操作,寫入命令寄存器的控制命令將決定8155的工作方式。8155芯片的內(nèi)部還有一個(gè)14位的減一計(jì)數(shù)器,它既可以用作定時(shí)又可以用作外部事件計(jì)數(shù)。向TIMEIN端口每輸入一個(gè)計(jì)數(shù)脈沖信號(hào),計(jì)數(shù)器的值就會(huì)減一,當(dāng)計(jì)數(shù)器的值減到零的時(shí)候。就在TIMEOUT端口發(fā)出一個(gè)方波或者是脈沖信號(hào),這是由程序所決定的。
3 軟件設(shè)計(jì)
根據(jù)硬件電路設(shè)計(jì)的要求,本設(shè)計(jì)的程序流程圖如圖3所示。
系統(tǒng)程序的結(jié)構(gòu)包含了主程序、功能子程序和中斷子程序。其中主程序包含了系統(tǒng)初始化和系統(tǒng)工作循環(huán)兩大塊。系統(tǒng)初始化是對(duì)系統(tǒng)的各項(xiàng)進(jìn)行初始化設(shè)置,系統(tǒng)工作循環(huán)是實(shí)現(xiàn)系統(tǒng)的連續(xù)不斷工作。功能子程序部分包含了延時(shí)子程序、數(shù)碼管動(dòng)態(tài)顯示子程序和LED顯示子程序。中斷子程序中包含了數(shù)碼管的中斷和數(shù)碼管顯示倒計(jì)時(shí)中斷兩個(gè)中斷子程序。
本設(shè)計(jì)的軟件部分首先從主函數(shù)控制紅綠燈的顯示開始的,通過中斷子程序來進(jìn)行系統(tǒng)工作狀態(tài)的轉(zhuǎn)換并且同時(shí)進(jìn)行倒計(jì)時(shí)。在設(shè)計(jì)程序時(shí)要考慮到對(duì)數(shù)碼管進(jìn)行去抖動(dòng)。
4 結(jié)束語
智能交通燈控制系統(tǒng)的研究涉及范圍極廣,需要對(duì)各項(xiàng)高新技術(shù)研究領(lǐng)域的內(nèi)容進(jìn)行了綜合,因而選擇智能交通燈控制系統(tǒng)是有效控制和有力疏導(dǎo)城市交通狀況的有力手段。本文內(nèi)容詳細(xì)地介紹了基于AT89C52單片機(jī)的智能交通燈控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),對(duì)于道路交通控制系統(tǒng)而言,系統(tǒng)的穩(wěn)定性至關(guān)重要,本系統(tǒng)的設(shè)計(jì)包含了硬件電路的原理和軟件的設(shè)計(jì)思路。比較而言整個(gè)系統(tǒng)的結(jié)構(gòu)較為簡(jiǎn)單,制作也十分簡(jiǎn)易,具有一定的實(shí)用和推廣價(jià)值。
參考文獻(xiàn)
[1]謝維成 . 單片機(jī)原理與應(yīng)用及 C51程序設(shè)計(jì) [M]. 北 京 :清華大學(xué)出版社,2014
[2]汪世明.基于 Proteus 的單片機(jī)應(yīng)用技術(shù)[M].北京:電子工業(yè)出版社,2009.
[3]侯玉寶.基于Proteus的 51系列單片機(jī)設(shè)計(jì)與仿真[M].北京:電子工業(yè)出版社,2008.
[4]楊居義.單片機(jī)課程設(shè)計(jì)指導(dǎo)[M].北京:清華大學(xué)出版社,2009.
[5]劉德新,周志文,張衛(wèi)豐 . 基于 STC89S52 單片機(jī)智能交通燈控制系統(tǒng)的設(shè)計(jì)與制作及應(yīng)用 [J]. 深圳職業(yè)技術(shù)學(xué)院學(xué)報(bào),2012(9):38-41.
[6]鄭建光,李永.基于AT89C51單片機(jī)的交通燈系統(tǒng)設(shè)計(jì)[J].自動(dòng)化與儀器儀表,2008,(6).
[7]穆懷艷.單片機(jī)控制交通燈設(shè)計(jì)方案[J].青年科學(xué),2009,(2).
作者簡(jiǎn)介
郭歡歡(1993-),男,安徽滁州,本科,宿州學(xué)院信息工程學(xué)院,研究方向:信息管理與信息系統(tǒng)專業(yè)