徐萬明 陳克林 楊 敏 田紹東 楊思陽 周 爽
(黔東南民族職業(yè)技術(shù)學(xué)院,貴州 凱里 556000)
隨著社會經(jīng)濟的不斷發(fā)展,人民生活水平的不斷攀升,城市化進程的不斷加快,機動車輛的不斷增多,城鄉(xiāng)交通擁堵問題也不斷突顯。交通信號燈,尤其是智能、移動式交通信號設(shè)備的運用為車人流較大、環(huán)境復(fù)雜路段的交通暢通保障起到至關(guān)重要的作用。
交通信號燈不僅是維系道路交通的指示工具,更是科技成果應(yīng)用的具體體現(xiàn)。單片機技術(shù)作為能夠?qū)崿F(xiàn)交通信號控制系統(tǒng)設(shè)計的主流技術(shù),是各高等院校電子信息等專業(yè)技能培養(yǎng)的核心課程,是理論和實踐結(jié)合緊密的課程。通過選定一處交通繁忙十字路口,引導(dǎo)學(xué)生觀察該路口交通信號燈對人流、車流的疏導(dǎo),記錄交通燈顯示狀態(tài),并應(yīng)用單片機技術(shù),實現(xiàn)所觀察交通信號燈的顯示功能模擬,完成交通信號燈演示平臺硬軟件設(shè)計。
為使擬設(shè)計的交通信號燈演示平臺源于生活,貼近生活,體現(xiàn)學(xué)以致用的育人理念,特選定位于學(xué)校附近且人流車流較大的凱里高鐵南站十字路口(東西南北雙向均為八車道)交通信號燈作為本次設(shè)計的模擬對象。
所模擬的交通信號燈十字路口其東西南北均有雙向八車道,各路口信號燈燈桿上有兩位數(shù)碼管一個,用于倒計時顯示;交通信號燈12只,每3只為1組,共計4組,每組均有紅黃綠三色組成,分別用于左轉(zhuǎn)向、直行、人行指示。
通過對模擬對象運行顯示規(guī)律的觀察,該交通信號燈由四種通行模式循環(huán)構(gòu)成,即:南北向直行(東西向禁行)→南北向左轉(zhuǎn)(東西向禁行)→東西向直行(南北向禁行)→東西向左轉(zhuǎn)(南北向禁行)→南北向直行(東西向禁行)。其通行模式下的顯示狀態(tài)如下:
模式一:南北向直行(東西向禁行)
狀態(tài)1:南北向直行綠燈亮、人行綠燈亮、左轉(zhuǎn)紅燈亮,數(shù)碼管顯示27s倒計時;東西向直行、人行、左轉(zhuǎn)均為紅燈亮,數(shù)碼管顯示50s倒計時。
狀態(tài)2:南北向直行黃燈亮、人行黃燈亮、左轉(zhuǎn)紅燈亮,數(shù)碼管顯3s倒計時;東西向直行、人行、左轉(zhuǎn)均為紅燈亮,數(shù)碼管顯示23s倒計時。
模式二:南北向左轉(zhuǎn)(東西向禁行)
狀態(tài)3:南北向直行紅燈亮、人行紅燈亮、左轉(zhuǎn)綠燈亮,數(shù)碼管顯示17s倒計時;東西向直行、人行、左轉(zhuǎn)均為紅燈亮,數(shù)碼管顯示20s倒計時。
狀態(tài)4:南北向直行紅燈亮、人行紅燈亮、左轉(zhuǎn)黃燈亮,數(shù)碼管顯示3s倒計時;東西向直行、人行、左轉(zhuǎn)均為紅燈亮,數(shù)碼管顯示3s倒計時。
模式三:東西向直行(南北向禁行)
狀態(tài)5:東西向直行綠燈亮、人行綠燈亮、左轉(zhuǎn)紅燈亮,數(shù)碼管顯示27s倒計時;南北向直行、人行、左轉(zhuǎn)均為紅燈亮,數(shù)碼管顯示50s倒計時。
狀態(tài)6:東西向直行黃燈亮、人行黃燈亮、左轉(zhuǎn)紅燈亮,數(shù)碼管顯3s倒計時;南北向直行、人行、左轉(zhuǎn)均為紅燈亮,數(shù)碼管顯示23s倒計時。
模式四:東西向左轉(zhuǎn)(南北向禁行)模式
狀態(tài)7:東西向直行紅燈亮、人行紅燈亮、左轉(zhuǎn)綠燈亮,數(shù)碼管顯示17s倒計時;南北向直行、人行、左轉(zhuǎn)均為紅燈亮,數(shù)碼管顯示20s倒計時。
狀態(tài)8:東西向直行紅燈亮、人行紅燈亮、左轉(zhuǎn)黃燈亮,數(shù)碼管顯示3s倒計時;南北向直行、人行、左轉(zhuǎn)均為紅燈亮,數(shù)碼管顯示3s倒計時。
基于對模擬對象的觀察及其顯示狀態(tài)的總結(jié),所設(shè)計的交通信號燈模擬演示平臺需完成四種模式下的8種狀態(tài)循環(huán)顯示功能??紤]到本設(shè)計主要用于單片機課程實踐教學(xué),重在培養(yǎng)學(xué)生系統(tǒng)設(shè)計及創(chuàng)新驅(qū)動能力,結(jié)合單片機課程主講機型及市場主流機型,選定具有51內(nèi)核架構(gòu)的8位單片機作為本設(shè)計的控制核心,配以外設(shè)晶振電路、復(fù)位電路、矩陣按鍵控制電路、數(shù)據(jù)緩沖電路、數(shù)碼管刷新電路、數(shù)碼管顯示電路及LED指示電路等,完成既滿足模擬對象顯示要求,又具有顯示倒計時可調(diào)控功能的交通信號燈設(shè)計。
圖1 交通信號燈演示平臺設(shè)計原理框圖
硬件設(shè)計中,充分發(fā)揮Proteus的電路設(shè)計及仿真功能,在其虛擬環(huán)境下進行系統(tǒng)的調(diào)試與仿真。
以宏晶科技STC89C52RC單片機為控制核心,系統(tǒng)設(shè)計為5V直流供電系統(tǒng),如圖2所示。
其中,電容C1、C2(20pF),無源晶振Y1等組成晶振電路,分別連接至單片機XTAL1,XTAL2引腳,為單片機系統(tǒng)提供11.0592MHz的基準(zhǔn)時鐘信號。由電阻R1(18Ω)、R2(4.7KΩ)、電容C3(0.1uF)、按鍵K0等組成復(fù)位電路,連接至單片機的RST引腳,為單片機系統(tǒng)提供上電復(fù)位和手動復(fù)位功能,解決程序運行死機或跑飛等現(xiàn)象,提高系統(tǒng)運行效率。
將單片機P0口作為數(shù)據(jù)輸出接口,向交通信號燈顯示外設(shè)提供控制數(shù)據(jù);將P1口作為交通信號燈顯示外設(shè)的動態(tài)刷新接口,用于傳輸刷新數(shù)據(jù);將P2口作為人機對話接口,用于接收由矩陣按鍵輸入到單片機的控制數(shù)據(jù);將P3口作為功能擴展接口,另作他用。
STC89C52RC單片機內(nèi)部自帶8KB Flash存儲器,512B數(shù)據(jù)存儲器,其容量足夠本設(shè)計要求,不需對存儲器進行外部擴展,因此PSEN及ALE引腳懸空,EA引腳接5V電源。
圖2 交通信號燈主控電路
74HC245雙向數(shù)據(jù)緩沖器能夠在70mA電流下穩(wěn)定工作,而交通信號燈數(shù)碼管顯示和LED指示均由發(fā)光二極管組成,屬電流驅(qū)動器件,需要足夠大且穩(wěn)定的電流才能正常工作。為保證單片機I/O口能夠穩(wěn)定驅(qū)動交通信號燈顯示電路,特在單片機P0口和交通信號燈顯示模塊之間連接74HC245,起到電流驅(qū)動緩沖,防止回流,保障數(shù)據(jù)傳輸通道暢通的作用。
圖3 數(shù)據(jù)緩沖電路
雖本系統(tǒng)單片機引腳資源富余,但考慮到數(shù)字電子技術(shù)教學(xué)中缺乏譯碼器系統(tǒng)應(yīng)用的實踐訓(xùn)練,結(jié)合后續(xù)顯示外設(shè)的數(shù)量,引進4選16譯碼器74154,分配單片機的P1.0、P1.1、P1.2、P1.3口與其輸入選擇端連接,并將其輸出端與交通信號燈東南西北方向的數(shù)碼管和LED控制端連接(見圖4、圖6、圖7),以0.5ms/次的速度,實現(xiàn)6ms內(nèi)完成12只控制端的動態(tài)刷新。
圖4 數(shù)碼管、LED動態(tài)刷新電路
為實現(xiàn)人機對話,拓展交通燈信號通禁時間人工可調(diào)功能,系統(tǒng)特設(shè)計4×4矩陣按鍵電路(如圖5所示),并分配P2口與其連接,掃描采集按鍵輸入信息。
圖5 矩陣按鍵電路
其中0~9為數(shù)字鍵,用于輸入所需調(diào)整通禁的時間;EAST、SOUTH、WEST、NORTH為功能按鍵,分別用于控制東南西北四個方向的禁通時間設(shè)置;ENTER鍵為功能確定鍵;ESC鍵為錯誤輸入時的取消鍵。注意,在進行通禁時間設(shè)置時,一定要符合東南西北四方向的時間循環(huán)顯示邏輯,否則會出現(xiàn)顯示混亂。
本交通信號燈顯示電路布局設(shè)計模擬凱里高鐵南站十字路口交通信號燈東南西北向布置(如圖6所示)。東南西北各向分別有4組LED燈,每組都由紅黃綠三色LED組成。其中數(shù)碼管用于顯示車人通禁時間;數(shù)碼管左側(cè)橫向3只紅黃綠LED燈用于指示車輛左轉(zhuǎn)通禁;數(shù)碼管右側(cè)橫向3只紅黃綠LED燈用于指示車輛直行通禁;數(shù)碼管兩側(cè)縱向3只紅黃綠LED燈用于指示人行道上行人通禁。
圖6 交通信號燈東南西北向顯示布局
選擇該顯示電路布局方式,主要想引導(dǎo)學(xué)生課題選擇可源于生活,培養(yǎng)學(xué)生學(xué)以致用、不斷創(chuàng)新的能力。
各向數(shù)碼管引腳與數(shù)據(jù)緩沖器74HC245輸出端連接,接收顯示P0口傳輸?shù)臄?shù)據(jù),各組紅黃綠LED燈亮滅指示由P0口數(shù)據(jù)控制。為實現(xiàn)數(shù)碼管、LED的動態(tài)顯示,東南西北各向的數(shù)碼管及LED燈工作情況均受單片機P1口控制,且由4選16譯碼器每0.5ms進行一次顯示刷新,12只控制引腳共需6ms,實現(xiàn)所有顯示元件的動態(tài)刷新,完成交通信號燈的顯示功能。
圖7 北向(north)數(shù)碼管顯示、LED指示電路
軟件采用基于單片機的C語言設(shè)計,并在Keil環(huán)境下對軟件進行調(diào)試編譯。
主程序完成系統(tǒng)的初始化,定時判斷,交通信號燈顯示數(shù)據(jù)刷新,按鍵動作判斷,按鍵功能函數(shù)調(diào)用,中斷等待等。其流程圖如圖8所示。
圖8 主程序流程圖
中斷子程序完成定時器初值重載,矩陣按鍵掃描,數(shù)碼管及LED動態(tài)刷新,1s標(biāo)志位設(shè)置等功能。其流程圖所圖9所示。
本設(shè)計在Proteus+Keil環(huán)境下進行硬軟件仿真,運用Altium Designer進行PCB設(shè)計,采用熱傳印法制作印制電路板,完成元器件焊接,并經(jīng)系統(tǒng)調(diào)試,其顯示邏輯和狀態(tài)與所模擬交通信號燈一致,符合設(shè)計要求。通過對各向通禁時間的人工設(shè)置,其顯示效果達到預(yù)期,實現(xiàn)各向倒計時人工可調(diào)功能。
圖9 中斷服務(wù)子程序流程圖
將本設(shè)計引入單片機課程實踐教學(xué),向?qū)W生進行模擬演示,極大地增強了學(xué)生單片機學(xué)習(xí)興趣。以演示為背景,項目驅(qū)動為動力,融入單片機課程設(shè)計,在一定程度上,可提升學(xué)生單片機系統(tǒng)設(shè)計與應(yīng)用能力?;趯煌ㄐ盘枱舨煌@示狀態(tài)的需求,引導(dǎo)學(xué)生對其軟件進行修改,設(shè)計多種顯示方式,實現(xiàn)對學(xué)生創(chuàng)新能力的培養(yǎng)。
[1]宋雪松,李冬明,崔長勝.手把手教你學(xué)51單片機(C語言版)[M].北京:清華大學(xué)出版社,2014.
[2]胡漢才.單片機原理及其接口技術(shù)[M].北京:清華大學(xué)出版社,2010.