姚福安 萬 鵬
摘要本系統由單片機系統、鍵盤、LCD顯示、交通燈演示系統組成。系統包括人行道、左轉、右轉,以及基本的交通燈的功能。系統除基本交通燈功能外,還具有倒計時、時間設置、緊急情況處理、語音提示、LCD信息顯示、分時段調整信號燈的點亮時間以及根據具體情況手動控制等功能。
方案設計與論證
1.電源提供方案
為使模塊穩定工作,須有可靠電源。我們考慮了兩種電源方案:
方案一:采用獨立的穩壓電源。此方案的優點是穩定可靠,且有各種成熟電路可供選用;缺點是各模塊都采用獨立電源,會使系統復雜,且可能影響電路電平。
方案二:采用單片機控制模塊提供電源。該方案的優點是系統簡明扼要,節約成本;缺點是輸出功率不高。
綜上所述,我們選擇第二種方案。
2.顯示界面方案
該系統要求完成倒計時、信息提示等功能。基于上述原因,我們考慮了三種方案:
方案一:完全采用LCD顯示。這種方案只顯示有限的符號和數碼字苻,無法勝任題目要求。
方案二:完全采用點陣式LCD顯示。這種方案實現復雜,且須完成大量的軟件工作;但功能強大,可方便地顯示各種英文字符、漢字、圖形等。
方案三:采用LED與點陣LCD相結合的方法。因為設計既要求倒計時數字輸出,又要求有漢字信息提示及圖形輸出等,為方便觀看并考慮到現實情況,用LED與LCD分別顯示時間與提示信息。這種方案既滿足系統功能要求,又減少了系統實現的復雜度。
權衡利弊,第三種方案可互補一、二方案的優缺點,我們決定采用方案三以實現系統的顯示功能。
3.輸入方案
題目要求系統能手動設燈亮時間、緊急情況處理,我們討論兩種方案:
方案一:采用8155擴展I/O口及鍵盤、顯示等。該方案的優點是:使用靈活可編程,并且有RAM及計數器。若用該方案,可提供較多I/O口,但操作起來稍顯復雜。
方案二: 采用ZLG7289來控制鍵盤及數碼管顯示。由于7289是串行控制方式,有專用的命令字,控制起來簡單,且占用較少口線。
由于該系統對于交通燈及LCD的控制,只用單片機本身的I/O口就可實現,且本身的計數器及RAM已經夠用,故選擇方案二。
4.交通燈演示方案
采用在面板上焊接三色發光二極管模擬交通紅綠燈,以發光二極管拼出小人狀(并閃爍)/箭頭狀作為人行提示/左右轉提示,簡單明了。

系統設計
1.總體設計
⑴系統總框圖如圖1所示。其中,鍵盤控制電路采用2×8鍵盤,由單片機外接ZLG7289控制;單片機最小系統為系統的主控制器,用以控制其他模塊協調工作;LCD顯示模塊用以顯示提示信息,如天氣、路況等,接口電路簡單,由單片機控制;LED顯示(倒計時)模塊由單片機外接ZLG7289控制,經排線與交通燈演示模塊相連,用以顯示交通燈倒計時時間;控制接口電路用于連接單片機系統與交通燈演示模塊,該電路含74lS139(二四譯碼器)、74lS373(數據鎖存器),可使交通燈正常工作 ;交通燈演示模塊用于演示系統的工作情況,該模塊主要由發光二極管構成 ;語音提示模塊采用現成的2532-120單段錄放板(可錄音及重復播放),用以完成語音提示。
(2)交通燈各狀態說明。交通燈在通常工作條件中有五種狀態:綠燈+人行道(S1) ;綠燈+右轉(S2) ;黃燈(S3) ; 紅燈+左轉(S4) ;紅燈(S5)五種狀態。

狀態說明:(S1)綠燈+人行道:車輛前行,行人可通過人行道;(S2)綠燈+右轉:車輛可向前、向右行駛;(S3)黃燈:過渡狀態;(S4)紅燈+左轉:車輛向左行駛,但不能前行;(S5)紅燈:禁止通行與轉彎(注:紅黃綠等均為前行方向的信號指示燈,濟南較大路口均為此種設計,只是左轉、人行無紅燈指示),圖2為狀態圖。表1為真值表(注:R、G、Y、L、Rt、M分別表示紅燈、綠燈、黃燈、左轉、右轉、人行道燈)。
本系統還設計了應急情況處理;在緊急情況下,設置交通燈狀態。全紅為東南西北所有方向禁止通行;南北紅、東西綠為南北方向禁行,東西方向通行;東西紅、南北綠為東西方向禁行,南北方向通行。
2.各模塊設計
(1)單片機及鍵盤控制模塊 單片機采用89C52。對交通燈的控制主要用其中的計數器定時來完成。一方面要完成對各模塊的控制,另一方面也要協調好各模塊的時序及口線沖突問題。

鍵盤采用7289串行控制。包括數字鍵0~9、時間設置鍵、回車鍵、緊急情況控制鍵、模式轉換鍵、手動控制鍵及恢復鍵,時間設置可分別設計各方向的通行時間,其設置的時間應符合以下公式:
Tr1=Tg2+Ty2+Tl2+Tl1
Tg1=Tm1+Trt1
Tr2=Tg1+Ty1+Tl1+Tl2
Tg2=Tm2+Trt2
模式轉換功能為根據交通狀況切換到預先設定好的通行時間模式,或切換回原來模式。手動控制為手動控制各個方向的通行時間,具有靈活的特性。恢復鍵是從緊急狀態或手動控制狀態返回正常狀態。
(2)LCD和LED顯示模塊 LED用來實現倒計時功能,可直接從7289的接口上接過來,其控制較為簡單。
LCD用來顯示提示信息及在時間設置時的提示功能,其電路如圖3所示。

(3)交通燈演示模塊交通燈用發光二極管代替,因為P2口過一段時間后其值會發生變化,故采用P2口加鎖存器和P3口一起來控制。其電路圖如圖4。

軟件系統

流程圖如圖5所示。在本刊的網站上(www.eleworld.com)給出了源程序,供讀者參考。
根據方案設計的要求,調試過程共分三大部分:硬件調試、軟件調試和軟硬聯調。
1.硬件調試
⑴交通燈演示電路的調試 交通燈模塊由多個發光二極管組成,接線繁瑣,極易出錯。檢查二極管無故障、導線無斷線、連線接頭無互相搭聯后可先寫一個軟件調試程序,依次檢查東南西北方向的指示燈(發光二極管)是否點亮;若未點亮,則可能是連線接錯。根據燈的亮滅情況依次查找直到電路正常工作為止。
⑵倒計時電路調試倒計時電路主要由數碼管組成。當交通燈程序寫好后,倒計時的顯示可與最小系統板上兩組數碼管顯示比較(系統板上的這兩組數碼管用以檢查倒計時工作情況)。
⑶語音提示電路的調試本系統采用現成的語音板。語音板上電后若不能工作,可將錄音板首先復位,然后錄音,再重放。依上操作,直到語音板正常工作。
⑷其它電路的調試 主要看接口以及連線是否正確。
2.軟件調試
本系統的軟件系統很大,全部采用匯編語言編寫,除語法與邏輯差錯外,當確認程序沒問題時,直接下載到單片機仿真調試。采取自下到上的方法,單獨調好每一個模塊,最后完成一個完整的系統調試。
3.軟硬聯調
系統做好后,進行系統的完整調試。
(1)初始化后,兩個方向通行時間完全相等。Tr1=Tr2=19s,Tg1=Tg2=12s,Ty1=Ty2=2s,Tl1=Tl2=5s,Trt1=Trt2=4s,Tm1=Tm2=8s,各燈運行及倒計時情況良好。
(2)按模式轉換鍵后,按預先裝入的模式2進行工作,完成后,會按重新設置的時間進行。
(3)按設置鍵后,進行時間設置
(4)按緊急預案鍵后,先出現全紅狀態,再按一下該鍵,又出現一方通行狀態,再按,則另一方通行。如此循環。
按手動控制鍵后,進行手動控制,每按一次,燈會轉到下一個狀態。
按恢復鍵對上兩者進行恢復到正常狀態。