熊麗萍,張翠云,馬廣原
(1.河南工程技術(shù)學(xué)校,河南 焦作 454000;2.河南駐馬店西平縣供電公司,河南 駐馬店 463900)
設(shè)計(jì)了一款由89C51交通燈控制系統(tǒng),本文具體說(shuō)明了此設(shè)計(jì)的硬件與軟件的設(shè)計(jì)方法。
設(shè)計(jì)的此單片機(jī)控制的交通燈系統(tǒng),能基本模仿城市“十字”路口交通燈的功能,具體設(shè)計(jì)要求如下:
(1)該設(shè)計(jì)能控制東、西、南、北四個(gè)道口的紅、黃、綠信號(hào)燈正常工作;
(2)當(dāng)東西方向準(zhǔn)行,南北方向禁行時(shí),東西方向亮綠燈,南北方向亮紅燈;
(3)當(dāng)南北方向準(zhǔn)行,東西方向禁行時(shí),南北方向亮綠燈,東西方向亮紅燈;
(4)東西方向?yàn)橹鞲傻溃瑴?zhǔn)行時(shí)間為20秒;南北方向?yàn)榇胃傻溃瑴?zhǔn)行時(shí)間是15秒;
(5)當(dāng)主干道綠燈亮15秒時(shí),主干道黃燈同時(shí)開(kāi)始亮,以警告車(chē)輛及行人,準(zhǔn)行方向與禁行方向即將改變,亮到5秒后,主干道開(kāi)始亮紅燈禁行,次干道亮綠燈準(zhǔn)行;
(6)當(dāng)次干道綠燈亮10秒時(shí),次干道黃燈同時(shí)開(kāi)始亮5秒,以警告車(chē)輛及行人,準(zhǔn)行方向與禁行方向即將改變;
(7)四個(gè)道口均用數(shù)碼管顯示準(zhǔn)行或禁行的時(shí)間;
(8)K1鍵是緊急鍵,當(dāng)按下K1時(shí)四個(gè)方向均亮紅燈,并且關(guān)掉數(shù)碼管的顯示,直到按下K2鍵交通燈又開(kāi)始正常工作;
(9)K2鍵是開(kāi)始鍵,當(dāng)按下K2鍵時(shí),四個(gè)方向信號(hào)燈解除緊急情況,開(kāi)始正常工作。
為了達(dá)到上述設(shè)計(jì)要求,用89C51的P0口(P0.0-P0.6)作為數(shù)碼管的段選信號(hào);P1口(P1.0-P1.4)接5個(gè)控制開(kāi)關(guān),分別起特殊控制作用;P2口(P2.0-P2.5)分別接上垂直兩道口的12盞信號(hào)燈;P3.0,P3.1作為兩位數(shù)碼管的位選信號(hào),P3.2作為接緊急情況開(kāi)關(guān)。兩個(gè)數(shù)碼管的顯示用動(dòng)態(tài)顯示的方法實(shí)現(xiàn)。
該單片機(jī)控制交通燈的硬件設(shè)計(jì)原理如圖1所示。K0鍵為復(fù)位按鍵。在89C51單片機(jī)上,P0口(P0.0-P0.6)分別接上數(shù)碼管的A,B,C,D,E,F(xiàn),G端;P1口接5個(gè)特殊功能的開(kāi)關(guān),P1.0接開(kāi)關(guān)K3對(duì)綠燈設(shè)置參數(shù)起增加作用,P1.1接開(kāi)關(guān)K4起綠等參數(shù)減少的作用,P1.2接開(kāi)關(guān)K5起黃燈參數(shù)增加的作用,P1.3接開(kāi)關(guān)K6起黃燈參數(shù)減少的作用,P1.4接開(kāi)關(guān)K2取消緊急情況。P2口接線為:P2.0,P2.1,P2.2分別接?xùn)|西方向的綠,黃,紅共6盞信號(hào)燈;P2.3,P2.4,P2.5分別接南北方向的綠,黃,紅6盞信號(hào)燈。信號(hào)燈具體接法如表1所示。P3.0,P3.1作為兩個(gè)數(shù)碼管的位選信號(hào)。開(kāi)關(guān)和緊急情況的設(shè)置均采用中斷的方式。P3.3接與非門(mén)74LS20,采用外部中斷實(shí)現(xiàn)鍵盤(pán)輸入?yún)?shù)。P3.2設(shè)為高級(jí)優(yōu)先級(jí)中斷,以實(shí)現(xiàn)在現(xiàn)實(shí)生活中發(fā)生緊急情況能及時(shí)處理[1]。本設(shè)計(jì)所采用的數(shù)碼管顯示為兩片共陽(yáng)極數(shù)碼管,用的是三極管驅(qū)動(dòng)的方法,三極管采用的是PNP型管子。
表1 信號(hào)燈接線表
該單片機(jī)控制交通燈的軟件設(shè)計(jì)主程序流程圖如圖1所示。該單片機(jī)控制交通燈的軟件設(shè)計(jì)是順序執(zhí)行并反復(fù)循環(huán)的方法。其中數(shù)碼顯示電路運(yùn)用動(dòng)態(tài)顯示的方法[2]。
當(dāng)編完程序后,用WAVE6000進(jìn)行軟件調(diào)試,編譯通過(guò)以后,又在PROTEUS里進(jìn)行硬件連接,用PROTEUS進(jìn)行硬軟件的仿真。一切正常并滿足設(shè)計(jì)的要求。仿真成功,交通燈工作一切正常,滿足編程需要,符合設(shè)計(jì)要求。開(kāi)始運(yùn)行時(shí),主干道綠燈亮,次干道紅燈亮,數(shù)碼管顯示從14開(kāi)始顯示,當(dāng)顯示到00時(shí),主干道亮綠燈的同時(shí),黃燈也開(kāi)始亮,次干道繼續(xù)亮紅燈,同時(shí)數(shù)碼管從5秒開(kāi)始顯示,當(dāng)顯示到01時(shí)主干道紅燈亮,黃燈滅,次干道亮綠燈,數(shù)碼管從10秒開(kāi)始顯示當(dāng)顯示到01時(shí)主干道繼續(xù)亮紅燈,次干道黃燈開(kāi)始亮,當(dāng)顯示到01秒時(shí),主干道開(kāi)始亮路燈,顯示器顯示14秒,次干道亮紅燈。就這樣連續(xù)循環(huán)。
K0鍵是復(fù)位鍵,起上電作用;K1鍵是積極鍵但按下K1鍵是四個(gè)路口全亮紅燈,K2鍵是開(kāi)始鍵解除緊急情況,紅綠燈恢復(fù)正常。當(dāng)按下K3鍵幾次主干道路燈時(shí)間就會(huì)加幾秒,K4鍵起到綠減作用;K5鍵按幾下主干道黃燈時(shí)間就多幾秒,K6鍵起到黃減作用,這四個(gè)鍵都是對(duì)主干道綠燈和黃燈時(shí)間進(jìn)行調(diào)節(jié)的。
同時(shí)也可以實(shí)現(xiàn)對(duì)主干道紅燈時(shí)間的調(diào)節(jié)。
在 PROTEUS中仿真成功后,開(kāi)始焊電路板,當(dāng)電路連接完畢后,為保證電路板焊接正確,使用偉福H51/S進(jìn)行仿真。工作一切正常。能夠?qū)崿F(xiàn)綠黃紅燈交替顯示,數(shù)碼管顯示也一切如設(shè)計(jì)的那樣:通電后,主干道綠燈亮,次干道紅燈亮,數(shù)碼管顯示從14開(kāi)始顯示,當(dāng)顯示到00時(shí),主干道亮綠燈的同時(shí),黃燈也開(kāi)始亮,次干道繼續(xù)亮紅燈,同時(shí)數(shù)碼管從5秒開(kāi)始顯示,當(dāng)顯示到01時(shí)主干道紅燈亮,黃燈滅,次干道亮綠燈,數(shù)碼管從10秒開(kāi)始顯示當(dāng)顯示到01時(shí)主干道繼續(xù)亮紅燈,次干道黃燈開(kāi)始亮,當(dāng)顯示到01秒時(shí),主干道開(kāi)始亮路燈,顯示器顯示14秒,次干道亮紅燈。就這樣一直循環(huán)下去。
仿真結(jié)束后,將寫(xiě)好的測(cè)試程序刷寫(xiě)到芯片上通電即可測(cè)試,一切正常,實(shí)現(xiàn)功能如預(yù)期一致。
由于使用單片機(jī)作為核心的控制元件,使得電路的可靠性比較高,功能也比較完善,而且可以隨時(shí)的更新系統(tǒng),進(jìn)行不同狀態(tài)的組合。
但是在設(shè)計(jì)和調(diào)試的過(guò)程中,也發(fā)現(xiàn)了一些問(wèn)題,譬如在設(shè)計(jì)過(guò)程中有顯示不正常的現(xiàn)象,在仿真過(guò)程中有時(shí)曾經(jīng)出現(xiàn)過(guò)有些按鍵失靈的情況等等,這都是在平時(shí)實(shí)踐太少的緣故,以后將多實(shí)踐,多鍛煉,把學(xué)到的東西與實(shí)踐結(jié)合起來(lái)。
[1]李朝青.單片機(jī)原理及接口技術(shù):修訂版[M].北京:北京航空航天大學(xué)出版社,1998.
[2]李廣弟.單片機(jī)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,1992.