陳東陽
(華北理工大學電氣工程學院 河北 唐山 063210)
交通燈是一種控制道路交通通行的工具,利用AT89C51為核心的交通燈具有操作方便、成本價格低廉、便于進行維修等優點。人民生活質量日益提高,越來越多用私家車出行,交通事故越來越頻繁地出現,交通擁堵已經成了家常便飯。因此,在路口安裝交通燈已經成為影響交通狀況的重要方法。
顯示電路主要由LED顯示模塊和數碼管顯示模塊組成。LED交通燈利用發光二極管來顯示紅黃綠三種顏色的信號指示燈。引腳接低電壓,二極管發光顯示不同的顏色進行交通控制。用P0口中的P0.0~P0.6控制六個LED燈。數碼管的基本單元是發光二極管。采用共陽極數碼管,公共極接高電平+5V,數碼管為七段數碼管,某一字段陰極接低電平,該字段被點亮,反之,該字段不亮。用整個P0口控制數碼管。
在單片機啟動一段時間后,給+5V時,電容充電,此時10K電阻兩端的電壓趨近于0,復位引腳接低電平故系統正常工作。按下復位按鍵時,開關閉合,電容釋放之前所充電能。一段時間后,電容兩端電壓降低。根據電路中的基爾霍夫定律可知,此時10K電阻兩端會出現較高的壓降,此刻復位引腳接到‘1’,單片機復位。
設計的交通燈控制系統采用獨立按鍵控制,共三個按鍵,按鍵1表示東西向發生交通事故,東西向禁行;按鍵2表示南北向發生交通事故,南北向禁行;按鍵3表示路口中間發生交通事故,全部禁行。用單片機對按鍵時一定要去抖。此處的抖動并不是我們在按鍵時通過注意可以避免的。這種抖動一般在幾十毫秒到幾百毫秒之間,但對于單片機來說是很漫長的。本設計采用軟件去抖,通過軟件編程實現先查尋按鍵當有低電平出現時立即延時10毫秒,延時結束后再次讀取I/O 口的值,這一次的值如果為‘1’ 表示出現干擾信號;當讀出的值是0時表示有按鍵按下,調用相應的程序。
利用Keil軟件進行編程,可將程序放入Proteus軟件中,實現系統仿真。程序主要包含如下部分:main()主函數、display()顯示函數、t0()interrupt1中斷函數、timer0()定時函數、delayms()延時函數。
主函數主要體現按鍵功能以及正常情況下的工作狀態,首先進行定時器初始化,然后進入循環函數,一直檢測是否有按鍵按下。同時要注意檢測按鍵按下應有消抖環節。
顯示函數主要體現在LED燈顯示以及數碼管顯示。中斷函數由外部中斷1控制。
定時函數采用定時計數器0工作方式1,定時50ms作為基本單位時間。
延時函數以50ms作為基本單位時間。
(1)通電后,進入交通燈正常工作狀態:紅燈禁止30s,黃燈警告5s,綠燈放行25s。
(2)當東西方向發生交通事故時,按下按鍵1,則東西禁行,南北通行,此時東西向數碼管顯示XX,南北方數碼管顯示OO。
(3)當南北方向發生交通事故時,按下按鍵2,則南北禁行,東西通行,此時南北方數碼管顯示XX,東西方數碼管顯示OO。
(4)當十字路口中間發生交通事故時,全部禁行,數碼管均顯示XX。
(5)交通事故解決后,按下復位按鍵,交通燈重新進入正常工作狀態。
(1)初始通電后:南北方向禁止,東西方向通行,交通燈進入正常工作狀態。
(2)按下按鍵1:南北通行,東西禁止。
(3)按下按鍵2:東西通行,南北禁止。
(4)按下按鍵3:全部禁行。
(5)交通燈進入緊急工作狀態后,需要按下復位按鍵才能重新進入正常工作狀態。
(6)交通燈若想由一種緊急工作狀態轉換到另一種緊急工作狀態,必須先按復位按鍵進入正常工作狀態,之后再進入另一種緊急工作狀態。
通過Keil軟件編程以及Proteus軟件仿真,成功設計了交通燈控制電路,該系統具有結構簡單、成本低、實用性強的優點。同時為交通燈的智能化發展提供了可行性參考方案。