張維
(陜西工業(yè)職業(yè)技術(shù)學(xué)院 陜西 咸陽(yáng) 712000)
基于單片機(jī)的可編程智能交通燈控制系統(tǒng)
張維
(陜西工業(yè)職業(yè)技術(shù)學(xué)院 陜西 咸陽(yáng) 712000)
文中設(shè)計(jì)一種基于AT89S52單片機(jī)的智能交通燈控制系統(tǒng)。本系統(tǒng)主要由單片機(jī)系統(tǒng)、鍵盤電路、LED顯示電路和數(shù)碼管顯示電路等部分組成。通過(guò)搭建硬件及軟件電路實(shí)現(xiàn)交通燈基本正常轉(zhuǎn)換功能及某一個(gè)車道無(wú)車輛的通行調(diào)整功能以及緊急狀況下的緊急車輛避險(xiǎn)的功能。本系統(tǒng)具有制作簡(jiǎn)易,可操作性強(qiáng),性能穩(wěn)定,不受外界干擾,功能可靠,具有一定的實(shí)用價(jià)值。
AT89S52單片機(jī);LED;數(shù)碼管;交通燈
交通控制系統(tǒng)是城市交通的重要指揮系統(tǒng),它與人們?nèi)粘I蠲芮邢嚓P(guān)。隨著人們生活水平的提高,對(duì)交通管制也提出了更高的要求。加之社會(huì)經(jīng)濟(jì)和城市交通的快速發(fā)展及城市道路的改造與拓寬,使得城市的十字路口越來(lái)越多,交通堵塞越來(lái)越嚴(yán)重。良好的交通控制系統(tǒng)是保障城市交通有序、快速、安全、有效的手段之一。本文正是以此為出發(fā)點(diǎn),對(duì)單片機(jī)控制的交通燈系統(tǒng)作以介紹,對(duì)于改善交通堵塞起到一定程度的緩解作用。
1.1 設(shè)計(jì)任務(wù)
基于AT89S52單片機(jī)設(shè)計(jì)一個(gè)能夠控制12盞交通信號(hào)燈并配有數(shù)碼管倒計(jì)時(shí)顯示的可編程交通控制系統(tǒng),要求交通信號(hào)燈按照交通規(guī)則的模式來(lái)運(yùn)行。另外,本設(shè)計(jì)還配有幾個(gè)擴(kuò)展功能。設(shè)計(jì)由單片機(jī)主控電路、鍵盤控制電路、LED顯示電路、數(shù)碼管顯示電路等部分組成[1]。
1.2 設(shè)計(jì)思路
交通控制系統(tǒng)主要控制A主干道和B支干道兩干道的交通,以AT89S52單片機(jī)為核心芯片,通過(guò)控制三色LED的亮滅來(lái)控制各干道的通行;顯示主要是采用兩位的數(shù)碼管進(jìn)行動(dòng)態(tài)倒計(jì)時(shí)顯示;另外,可以通過(guò)4個(gè)按鍵來(lái)模擬某一個(gè)干道沒(méi)有車輛的情況及緊急狀況下的緊急車輛避險(xiǎn)的情況。
1.3 理論分析
1.3.1 交通燈顯示的理論分析
交通信號(hào)燈控制系統(tǒng)設(shè)計(jì)的流程圖如圖1所示。
圖1 交通信號(hào)燈控制系統(tǒng)設(shè)計(jì)的流程圖Fig.1 The flow chart of the traffic lights control system
1.3.2 系統(tǒng)模擬以下交通情況
1)設(shè)計(jì)一個(gè)十字路口的交通燈控制電路,要求東西方向(A主干道)車道和南北方向(B支干道)車道兩條交叉道路上的車輛交替運(yùn)行,時(shí)間可通過(guò)軟件設(shè)置修改;
2)在綠燈轉(zhuǎn)為紅燈時(shí),要求黃燈先亮,才能變換運(yùn)行車道;
3)東西方向、南北方向車道除了有紅、黃、綠燈指示外,每一種燈亮的同時(shí)都用數(shù)碼管進(jìn)行顯示(采用倒計(jì)時(shí)的方法);
4)擴(kuò)展功能實(shí)現(xiàn):(分3種情況進(jìn)行)如果東西紅燈,但待通行車輛多,而南北綠燈,車輛少,這時(shí)通過(guò)按鍵,讓東西通行,同時(shí)數(shù)碼管顯示00,南北方向亦然;如果遇到有緊急車輛(如急救車、消防車,警車等)通過(guò),則東西南北4個(gè)方向,全為紅燈,且數(shù)碼管顯示為00。
2.1 單片機(jī)主控電路
單片機(jī)采用AT89S52型單片機(jī),其中內(nèi)部具有8 kB程序存儲(chǔ)器可用。一方面要完成對(duì)各模塊的控制,另一方面也要協(xié)調(diào)好各模塊的時(shí)序及口線沖突問(wèn)題。
交通信號(hào)燈控制系統(tǒng)原理圖如下:
1)電源接口與下載口電路
電源接口是接+5 V直流電壓為整個(gè)單片機(jī)供電,并且為了提高電路的抗干擾能力,分別接一個(gè)0.1 μF的電容和一個(gè)10 μF電容接在+5與接地線之間,一個(gè)起低通濾波作用,一個(gè)起高通濾波作用。下載電路是由一個(gè)四路波碼開(kāi)關(guān)和一個(gè)插口組成。此電路可以根據(jù)具體情況的需要,隨時(shí)更改軟件程序,實(shí)現(xiàn)預(yù)期功能[2]。具體電路如圖2所示。
圖2 電源接口與下載口電路Fig.2 Power interface circuit and download port
2)單片機(jī)主控電路
單片機(jī)主控電路是由AT89S52單片機(jī),時(shí)鐘電路和復(fù)位電路等部分組成,具體電路如圖3所示。本設(shè)計(jì)充分利用了AT89S52單片機(jī)的I/O接口資源,分別控制紅黃綠燈,數(shù)碼管倒計(jì)時(shí)顯示,按鍵的響應(yīng)等。時(shí)鐘電路用于產(chǎn)生AT89S52單片機(jī)的所需要的時(shí)鐘控制信號(hào),因?yàn)閱纹瑱C(jī)的內(nèi)部電路在時(shí)鐘信號(hào)控制下,才能按照時(shí)序指令進(jìn)行工作。本設(shè)計(jì)外部晶振用12 MHz的晶振,這樣可以使傳輸波特率更加準(zhǔn)確[3]。單片機(jī)復(fù)位是由外部的復(fù)位電路來(lái)實(shí)現(xiàn)的。本設(shè)計(jì)的復(fù)位電路采用按鍵復(fù)位。單片機(jī)的I/O接口中的P3.0到P3.7接擴(kuò)展口,它可以根據(jù)具體情況的需要擴(kuò)展其它的功能。
圖3 單片機(jī)主控電路Fig.3 MCU control circuit
2.2 按鍵控制電路
因?yàn)楸驹O(shè)計(jì)時(shí)精簡(jiǎn)和優(yōu)化了電路,所以單片機(jī)剩余的并口資源還比較多,可以使用4個(gè)按鍵,分別是K1、K2、K3和K4對(duì)交通燈的擴(kuò)展功能進(jìn)行控制[4]。K1、K2、K33個(gè)鍵是擴(kuò)展功能的執(zhí)行鍵,K4是擴(kuò)展功能的復(fù)位鍵(即退出擴(kuò)展功能,回到原狀態(tài))。K1、K2、K3和K4分別與單片機(jī)的P2.3、P2.2、P2.1、P2.0口相連。如果東西紅燈,但待通行車輛多,而南北綠燈,車輛少,這時(shí)可按下K1鍵,讓東西通行,執(zhí)行后按下K4鍵,恢復(fù)原狀態(tài);如果南北紅燈,但待通行車輛多,而東西綠燈,車輛少,這時(shí)可以按下K2鍵,讓南北通行,執(zhí)行后按下K4鍵,恢復(fù)原狀態(tài);如果遇到有緊急車輛(如急救車、消防車,警車等)通過(guò),則按下K3鍵,東西南北4個(gè)方向,全為紅燈,只讓緊急車輛通過(guò),執(zhí)行后按下K4鍵,恢復(fù)原狀態(tài)。具體電路如圖4所示。
2.3 LED顯示電路
LED顯示電路是用12個(gè)LED來(lái)實(shí)現(xiàn)紅綠黃燈轉(zhuǎn)換狀態(tài),共4對(duì)電路分別代表東西南北4個(gè)方向的紅綠黃燈,因?yàn)閷?duì)角的交通指示燈的情況是一樣的,所以可以將對(duì)角的LED燈并聯(lián)起來(lái),這樣一方面從硬件上簡(jiǎn)化了電路,一方面從軟件上降低了編程的難度。A主干道的紅綠黃分別接到單片機(jī)的P1.2、P1.1、P1.0進(jìn)行交通燈狀態(tài)的控制,B支干道的紅綠黃分別接到單片機(jī)的P1.5、P1.4、P1.3口進(jìn)行交通燈狀態(tài)控制[5]。具體電路如圖5所示。
圖4 按鍵控制電路Fig.4 Key control circuit
圖5 LED顯示電路Fig.5 LED display circuit
2.4 數(shù)碼管顯示電路
數(shù)碼管顯示電路用來(lái)實(shí)現(xiàn)倒計(jì)時(shí)顯示功能,用PNP三極管作為其驅(qū)動(dòng),P0.0、P0.1、P0.2、P0.3、P0.4、P0.5、P0.6口為數(shù)碼管的7段的段控制端,P2.7、P2.6為數(shù)碼管的位控制端。采用共陽(yáng)極接法,即低電平驅(qū)動(dòng)可使數(shù)碼管點(diǎn)亮[6]。數(shù)碼管顯示采取分時(shí)段動(dòng)態(tài)倒計(jì)時(shí)顯示的方法,主要是位控制端的選擇和數(shù)碼管顯示時(shí)個(gè)位與十位的選取的實(shí)現(xiàn),倒計(jì)時(shí)的時(shí)間長(zhǎng)短主要是通過(guò)軟件編程設(shè)置的。具體電路如圖6所示。
圖6 數(shù)碼管顯示電路Fig.6 LED display circuit
3.1 系統(tǒng)程序流程圖
根據(jù)具體電路設(shè)計(jì)要求,系統(tǒng)程序流程圖如圖7所示。狀態(tài)1為南北紅燈,東西綠燈;狀態(tài)2為南北紅燈,東西黃燈;狀態(tài) 3為南北綠燈,東西紅燈;狀態(tài)4為南北黃燈,東西綠燈。按鍵函數(shù)是根據(jù)擴(kuò)展?fàn)顟B(tài)的按鍵K1,K2,K3,K44個(gè)按鍵實(shí)現(xiàn)相應(yīng)功能[7]。
3.2 系統(tǒng)程序結(jié)構(gòu)
1)主程序:包括系統(tǒng)初始化和工作循環(huán)兩大板塊。前一板塊的任務(wù)是對(duì)系統(tǒng)的各種初始化設(shè)置,后一板塊的任務(wù)是對(duì)系統(tǒng)進(jìn)行連續(xù)的監(jiān)測(cè)和服務(wù)。
2)功能子程序:本文的子程序包括延時(shí)子程序,數(shù)碼管動(dòng)態(tài)顯示子程序等。
3)中斷子程序:本文中斷子程序包括數(shù)碼管顯示中斷和數(shù)碼管倒計(jì)時(shí)顯示中斷等兩個(gè)中斷子程序[8]。
本系統(tǒng)軟件設(shè)計(jì)首先是從主函數(shù)控制紅綠燈顯示開(kāi)始的,通過(guò)中斷子程序進(jìn)行狀態(tài)轉(zhuǎn)換并進(jìn)行倒計(jì)時(shí)顯示。當(dāng)按下某一個(gè)(K1、K2、K3)鍵,執(zhí)行擴(kuò)展的幾個(gè)功能,此時(shí)中斷停止,保存數(shù)碼管的此刻的值,按下K4鍵可使系統(tǒng)繼續(xù)從剛才的保存時(shí)的狀況繼續(xù)執(zhí)行,此過(guò)程要注意按鍵去抖。
圖7 系統(tǒng)程序流程圖Fig.7 The flow chart of system program
4.1 LED顯示電路調(diào)試
當(dāng)LED顯示電路連接完畢后,將寫(xiě)好的測(cè)試程序通過(guò)下載口下載到單片機(jī)芯片內(nèi)(主要是利用高低電平檢測(cè)LED燈的亮滅),通電即可檢測(cè),同時(shí)也檢測(cè)了單片機(jī)系統(tǒng)是否工作正常。經(jīng)調(diào)試,LED顯示正常。
4.2 數(shù)碼管電路調(diào)試
將寫(xiě)好的測(cè)試程序通過(guò)下載口下載到單片機(jī)芯片內(nèi),主要是檢測(cè)數(shù)碼管的各段的亮滅以及數(shù)碼管顯示是否正確,開(kāi)電源即可測(cè)試。經(jīng)調(diào)試,數(shù)碼管顯示正常。
4.3 系統(tǒng)電路調(diào)試
系統(tǒng)上電,將寫(xiě)好的交通燈控制系統(tǒng)程序通過(guò)下載口下載到單片機(jī)片內(nèi)即可開(kāi)始測(cè)試,觀察交通燈的一個(gè)循環(huán)(共計(jì)4個(gè)狀態(tài)),紅綠黃3種燈的顯示狀態(tài)是否正常,同時(shí)觀察數(shù)碼管倒計(jì)時(shí)的顯示是否正常。最后結(jié)合4個(gè)按鍵檢測(cè)擴(kuò)展功能下的交通燈及數(shù)碼管顯示是否正常。經(jīng)調(diào)試,系統(tǒng)的各項(xiàng)預(yù)期功能均可以實(shí)現(xiàn)。
文中詳細(xì)介紹了基于AT89S52單片機(jī)的交通燈控制系統(tǒng)的設(shè)計(jì),硬件原理及軟件的構(gòu)成。經(jīng)調(diào)試,本設(shè)計(jì)的交通控制系統(tǒng)達(dá)到了設(shè)計(jì)的要求,能控制A主干道和B支干道兩干道的交通,并能采用兩位數(shù)碼管進(jìn)行動(dòng)態(tài)倒計(jì)時(shí)顯示;可以實(shí)現(xiàn)某一個(gè)干道沒(méi)有車輛的交通情況及緊急狀況下的緊急車輛避險(xiǎn)的情況。整個(gè)電路結(jié)構(gòu)簡(jiǎn)單,制作簡(jiǎn)易,可操作性強(qiáng),性能穩(wěn)定,不受外界干擾,功能可靠,且軟件工作量不大,具有一定的實(shí)用價(jià)值。本設(shè)計(jì)電路仍然有需改進(jìn)的地方,例如可以增加蜂鳴器進(jìn)行緊急預(yù)警,增加行人通行的動(dòng)態(tài)指示等。
[1]鄭建光,李永.基于AT89C51單片機(jī)的交通燈系統(tǒng)設(shè)計(jì)[J].自動(dòng)化與儀器儀表,2008(6):30-33.
[2]李萍.基于AT89S51的智能交通燈控制系統(tǒng)設(shè)計(jì)與仿真[J].電子設(shè)計(jì)工程,2014(1):190-193.
[3]劉德新,周志文,張衛(wèi)豐.基于STC89S52單片機(jī)智能交通燈控制系統(tǒng)的設(shè)計(jì)與制作及應(yīng)用 [J].深圳職業(yè)技術(shù)學(xué)院學(xué)報(bào),2012(9):38-41.
[4]何玲,吳恒玉,唐民麗.基于單片機(jī)的智能交通燈控制系統(tǒng)的研究與設(shè)計(jì)[J].電子設(shè)計(jì)工程,2011(11):144-146.
[5]黃毅.智能交通燈控制系統(tǒng)設(shè)計(jì)與仿真[J].科技咨詢,2008(28):125-126.
[6]李群芳.單片微型計(jì)算機(jī)與接口技術(shù)[M].北京:電子工業(yè)出版社,2005.
[7]譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2014.
[8]謝維成.單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì) [M].北京:清華大學(xué)出版社,2014.
Design of programmable traffic lights control system based on AT89S52 single-chip microcomputer
ZHANG Wei
(Shaanxi Polytechnic Institute,Xianyang 712000,China)
The design of traffic light control system based on the single-chip microcomputer of AT89S52 is introduced.The system is mainly made up of the single-chip microcomputer system,keyboard circuit,LED display circuit and other components.This system can achieve the normal function of traffic lights and the function of the condition without a car on lane and the emergency hedge function of emergency vehicles.This system has the advantages of simple manufacture,the strongly maneuverability,the stable performance,without external interference and certain practical value.
AT89S52 single-chip microcomputer;LED;digital control;traffic lights
TN99
A
1674-6236(2016)04-0171-04
2015-04-08 稿件編號(hào):201504066
張 維(1986—),男,陜西咸陽(yáng)人,碩士,講師。研究方向:電力電子技術(shù)及過(guò)程控制技術(shù)。