郭歡歡?高亞蘭



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