【摘要】本次設計是基于單片機的交通信號燈控制系統(tǒng)設計,通過對現(xiàn)有的資料文獻分析了交通信號燈系統(tǒng)控制的需要,根據(jù)系統(tǒng)總體方案的設計選擇合理的硬件配備;用軟件編程實現(xiàn)基本功能,通過對程序的仿真來模擬交通燈的運行情況。
1 系統(tǒng)控制方案
1.1 硬件方案的設計
本設計采用標準的AT89C51單片機作為控制器,根據(jù)設計要求需要倒計時顯示,復位電路,晶振電路,交通燈狀態(tài)顯示電路等,系統(tǒng)結構方框圖如圖1
1.2系統(tǒng)功能說明
(1)交通燈顯示功能
本設計利用單片機P1口來驅(qū)動和控制車行道的交通燈,P3口控制人行道交通燈。紅燈禁行,綠燈直行,直行車輛可以進入左右待轉(zhuǎn)區(qū),當左右轉(zhuǎn)向燈亮時,可以左右轉(zhuǎn)向。
(2)時間顯示功能
本設計采用兩位數(shù)碼管。因為南北東西向數(shù)碼管顯示的時間不同,所以單片機P0口送出數(shù)據(jù)的段碼,位選信號由 P2口送出。本設計采用共陰極的數(shù)碼管,數(shù)碼管點亮需要5MA以上的電流,電流不能過大,否則會燒毀二極管。單片機的I/O口不能送出如此大的電流,所以中間需要一個驅(qū)動電路來實現(xiàn),本次設計使用上拉電阻的方式提供足夠大的電流。
1.3? 交通燈狀態(tài)設計說明
交通道路由四車道加人行道組成,四車道從左至右分別是左轉(zhuǎn)車道,直行車道,直行車道,右轉(zhuǎn)車道,在左右轉(zhuǎn)車道的前都設有待轉(zhuǎn)區(qū),當綠燈時,車輛可進入左右待轉(zhuǎn)區(qū),等待待轉(zhuǎn)信號進行左右轉(zhuǎn)。
現(xiàn)規(guī)定如下狀態(tài):
左右轉(zhuǎn)向燈在設計中用藍燈表示,SN-南北方向 、EW-東西方向、 RX2-南北走向人行道、? RX-東西走向人行道? 、TIME-時間
S1:SN紅燈亮,EW綠燈亮,RX2紅燈亮,RX綠燈亮
S10:SN紅燈亮,EW黃燈亮, RX2紅燈亮,RX綠燈亮
S11:SN紅燈亮,EW左轉(zhuǎn)和右轉(zhuǎn)藍燈亮,RX2、RX紅燈亮
S12:SN紅燈亮,? EW左轉(zhuǎn)和右轉(zhuǎn)藍燈閃爍,RX2、RX紅燈亮
S2:SN綠燈亮,EW紅燈亮,RX2綠燈亮,RX道紅燈亮
S20:SN黃燈亮,EW紅燈亮,RX2綠燈亮,RX紅燈亮
S21:SN左轉(zhuǎn)和右轉(zhuǎn)藍燈亮,EW紅燈亮,RX2、RX紅燈亮
S22:SN左轉(zhuǎn)和右轉(zhuǎn)藍燈閃爍,EW紅燈亮,RX2、RX紅燈亮
3系統(tǒng)硬件設計
3.1AT89C51單片機
AT89C51是一種帶4K字節(jié)FLASH存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。8051單片機包含CPU、RAM、ROM、特殊功能寄存器、兩個優(yōu)先級的5個中斷源結構、4個8位并行I/O口、兩個16位定時/計數(shù)器、全雙工串行口、布爾處理器、64KB外部數(shù)據(jù)存儲器地址空間、64KB外部程序存儲器地址空間、片內(nèi)振蕩器及時鐘電路。
3.2外部電源電路
交通信號燈控制系統(tǒng)工作只需要+5V電壓,在實際連接中電路左端連接4個5V的電池為系統(tǒng)提供穩(wěn)定的電源。
3.3? 晶振電路
本設計系統(tǒng)電路的晶體振蕩器的值為12MHZ的陶瓷電容,數(shù)值大約為22uf。在設計和焊刷電路板時候,晶體振蕩器與電容盡量與單片機芯片靠近,減少寄生電容,保證振蕩器的穩(wěn)定性。
3.4? 復位電路
單片機的復位分為上電自動復位和按鈕手動復位。上電復位電路是靠電容充電來實現(xiàn)的。按鈕復位電路又分為脈沖和電平復位。按鈕電平復位電路按下復位按鈕時,電容充電,使RST/VPD端為高電平,當把復位按鈕松開后,電容放電,使RST/VPD端恢復為低電平。本次設計采用按鈕電平復位電路。
3.5? 交通燈指示電路
發(fā)光二極管Light- Emitting Diode 簡稱為LED,只能往一個方向?qū)ǎl(fā)光二極管的反向擊穿電壓約5 伏。為了保護LED不被破壞,需要加限流電阻。
3.6? 時間顯示電路介紹
本次設計采用2位7段數(shù)碼管作為時間顯示電路,分別對十字路口和人行導通時間進行倒計時。2位7段數(shù)碼管中,1、2是公共端,控制位碼。如果是共陰極接低電平,共陽的則接高電平。A-G,DP是控制斷碼和二極管的亮暗??梢灾苯咏?1單片機的輸出口,輸出口需要加上拉電阻,提供電流,驅(qū)動數(shù)碼管正常工作。如果是共陰極的接高電平來使數(shù)碼管亮,若為共陽則用低電平來點亮數(shù)碼管。此設計LED顯示器采用動態(tài)顯示。
4? 軟件設計
4.1軟件總體流程圖
軟件總體設計流程圖如圖2,主要完成的各個部分的軟件控制
4.2 時間顯示程序的設計
動態(tài)數(shù)碼管掃描,完成數(shù)碼管的顯示功能
DIS:
MOV? ? ? P2,#00000001B //顯示第一位
MOV? ? ? A,SNTIME //取顯示的南北時間
MOV? ? ? B,#10 //完成數(shù)據(jù)個位和十位的分解
DIV? ? ? AB
MOV? ? ? DPTR,#TAB ? ?//查數(shù)碼管段碼表
MOVC? ? ?A,@A+DPTR
CPL? ? ? A
MOV? ? ? P0,A //送P0口,進行顯示
LCALL? ? DELAY //掃描程序延時1ms
MOV? ? ? P0,#00H //滅調(diào)P0口,為下次顯示做準備
MOV? ? ? P2,#00000010B //顯示第二位
MOV? ? ? A,B //類似于顯示第一位
MOV? ? ? DPTR,#TAB
MOVC? ? ?A,@A+DPTR
CPL? ? ? A
MOV? ? ? P0,A
LCALL? ? DELAY
MOV? ? ? P0,#00H
MOV? ? ? P2,#00000100B ? ?//顯示第三位
MOV? ? ? A,EWTIME
MOV? ? ? B,#10
DIV? ? ? AB
MOV? ? ? DPTR,#TAB
MOVC? ? ?A,@A+DPTR
CPL? ? ? A
MOV? ? ? P0,A
LCALL? ? DELAY
MOV? ? ? P0,#00H
MOV? ? ? P2,#00001000B //顯示第四位
MOV? ? ? A,B
MOV? ? ? DPTR,#TAB
MOVC? ? ?A,@A+DPTR
CPL? ? ? A
MOV? ? ? P0,A
LCALL? ? DELAY
MOV? ? ? P0,#00H
MOV? ? ? P2,#00010000B ? ?//顯示第五位
MOV? ? ? A,RXTIME
MOV? ? ? B,#10
DIV? ? ? AB
MOV? ? ? DPTR,#TAB
MOVC? ? ?A,@A+DPTR
CPL? ? ? A
MOV? ? ? P0,A
LCALL? ? DELAY
MOV? ? ? P0,#00H
MOV? ? ? P2,#00100000B //顯示第六位
MOV? ? ? A,B
MOV? ? ? DPTR,#TAB
MOVC? ? ?A,@A+DPTR
CPL? ? ? A
MOV? ? ? P0,A
LCALL? ? DELAY
MOV? ? ? P0,#00H
MOV? ? ? P2,#01000000B ? ?//顯示第七位
MOV? ? ? A,RXTIME2
MOV? ? ? B,#10
DIV? ? ? AB
MOV? ? ? DPTR,#TAB
MOVC? ? ?A,@A+DPTR
CPL? ? ? A
MOV? ? ? P0,A
LCALL? ? DELAY
MOV? ? ? P0,#00H
MOV? ? ? P2,#10000000B //顯示第八位
MOV? ? ? A,B
MOV? ? ? DPTR,#TAB
MOVC? ? ?A,@A+DPTR
CPL? ? ? A
MOV? ? ? P0,A
LCALL? ? DELAY
MOV? ? ? P0,#00H
RET
4.3延時程序的設計
AT89C51單片機的工作頻率為12MHz。機器周期與主頻有關,是它的12倍,所以一個
機器周期的時間為1us(12*1/12=1us)。我們可以知道每條指令的周期數(shù),這樣就能通過指令的執(zhí)行條數(shù)來確定延時的時間。
具體的延時500ms程序:
DELAY500MS:
MOV? ? ?R4,#75
DELAY1S2:
LCALL? ?DIS? ? ? //調(diào)用數(shù)碼管顯示程序75遍
DJNZ? ? R4,DELAY1S2
RET
5系統(tǒng)仿真與調(diào)試
系統(tǒng)仿真是利用計算機的keiluVsion和proteus軟件完成,將keiluVison編寫好的程序通過生成的hex文件加載到proteus原理圖的單片機中,進行程序的仿真。
本次設計采用PCB電路板焊接,采用雙層板,默認工藝FR4 1.6板厚過孔蓋綠油有鉛噴錫。電路焊接完后,對其進行檢查,有無虛焊短路等情況的出現(xiàn),檢測元件是否安裝正確,各個元器件是否能夠正常工作。
在軟硬連調(diào)的過程中,將程序加載到硬件電路中的,進行交通信號燈真實情況模擬,觀察交通燈的狀態(tài),通過反復調(diào)試,才得以正常運行。
參考文獻:
[1]周美娟,肖來勝.單片機技術及系統(tǒng)設計[M]. 北京:清華大學出版社,2007.08.
[2]周蔚吾. 道路交通信號燈控制設置技術手冊[M].知識產(chǎn)權出版社,2003.
[3]羅苑棠. CPLD/FPGA常用模塊與綜合系統(tǒng)設計實例精講.電子工藝出版社,2007.
[4]夏繼強. 單片機實驗與實踐教程.北京航空航天大學出版社,2001.