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