趙正陽 梁一鋒 張雨帥



摘? ?要:隨著私家車的不斷增加,傳統的交通控制系統已經不能滿足路口交通的需要,因此,交通控制系統正朝著智能化、低成本化方向不斷發展。文章完成了以STC89C51單片機為控制核心的十字路口交通控制系統,該系統相比于傳統交通系統,除了包括車輛信號燈指示模塊、人行道通行指示燈模塊、計時模塊以外,還包括了緊急按鍵模塊、通行時間加減模塊、紅外遙控模塊、行人闖紅燈報警模塊。除了能簡潔、直觀地顯示十字路口的通行規則,提高車輛和行人的通行效率外,系統還具有一定的可擴展性,將進一步提高十字路口的交通安全和通行效率。
關鍵詞:交通控制;單片機;人行道;計時
我國修建道路的水平越來越高,路也越修越多,道路交通早已與每一個個體休憩相關,人們的日常生活、工作、學習都離不開交通這一活力動脈。隨著道路的建設,道路擁堵問題也逐漸成為城市發展的桎梏,限制了城市經濟發展[1],所以道路交通控制系統的發展勢在必行。進入21世紀,信號燈系統已經將車輛、行人,甚至一些地面軌道交通整合。人們對交通出行效率的要求越來越高,因此交通控制系統的發展仍然不可或缺。在電氣化時代,一些微型控制系統的出現極大地促進了交通系統的發展。交通系統正朝著數字化、功率化、多樣化的方向發展,根據道路現狀車流分析進行通行策略的制定,是交通史上的重大變革,所以在交通系統中嵌入智能管理系統具有很強的現實意義[2]。
1? ? 設計方案
本嵌入式交通控制系統在十字路口各個不同的方向分別設置交通燈,用紅燈代表禁止通行、黃燈代表等待、綠燈代表允許通行。除了直行信號燈外,在東南西北4個方向還各設置左拐信號燈一個(共4個)。4個兩位一體共陰極數碼管來分別顯示不同個方向的左拐、禁止、允許通過時間。正常工作時一個工作周期分為8個狀態。其中狀態0到狀態3與狀態4到狀態7過程一致,將南北方向定義為方向1,東西方向定義為方向2,下面給出狀態0到狀態3。
狀態 0 時:方向1的車輛和行人可以直行,方向2的車輛禁止通行;
狀態 1 時:方向1黃燈開始亮起,方向2禁止通行;
狀態 2 時:方向1允許車輛左轉,兩個方向均禁止直行;
狀態 3 時:方向1黃燈開始亮起,方向2禁止通行。
人行道的通行狀態與相同方向的車輛直行方向通行狀態相一致。當某一方向車輛允許直行時,那么相同方向(由南向北或者由北向南)的兩條人行道也允許通行,否則該向人行道禁止通行。當檢測到行人闖紅燈時,設置行人闖紅燈警示燈閃爍。正常情況下,交通燈從狀態0漸漸的向狀態7轉移循環,構成了交通燈的正常工作模式。可以對當前數碼管顯示的時間進行加減。緊急模式的開啟有兩種方式,一種是通過交警手中的紅外遙控器緊急按鍵按下后車輛和行人都禁止通行[3-4],或者在十字路口中心的交通指揮亭中設置緊急模式按鍵。交通系統示意如圖1所示。
2? ? 系統硬件設計
本系統硬件電路為了設置車輛的直行、左轉的信號燈與倒計時顯示,設置人行道上的通行信號,設置緊急模塊、通行時間加減模塊、紅外遙控模塊、行人闖紅燈報警模塊[5],采用模塊化設計思想將系統分為主控模塊、車輛信號燈模塊、人行道信號燈模塊、驅動電路、按鍵模塊等。在同一時間上東西、南北兩組方向只能有一組方向允許通行。車輛指示模塊由16個發光二極管構成,行人通行指示模塊由16個發光二極管來顯示通行、禁止。倒計時模塊由4個8位數碼管來顯示等待或者通行時間。4個按鍵分別來控制復位操作、緊急模式操作、數碼管時間加減。行人闖紅燈報警模塊通過設置在人行道道口的對射式紅外傳感器進行檢測,并且通過警報燈顯示是否有人闖紅燈。單片機交通控制系統的組成模塊如圖2所示。
3? ? 軟件設計
3.1? 程序流程
程序的好壞主要體現在其功能性和邏輯性上。能完整、準確地實現要求的功能是最基本的要求。邏輯性同樣重要,一個邏輯清楚的程序在編寫、調試、修改時都能起到事半功倍的作用。程序易于調試和修改,能夠降低軟件故障率、提高軟件的可靠性[6]。在程序編寫完成后使用Keil軟件來進行編譯修改,最后進行仿真。首先進行單片機初始化,初始化定時器T0,將各LED置低電平。其次,判斷是否有人闖紅燈,然后掃描紅外遙控器和交通指揮亭中的緊急按鍵。如果按下就進入緊急模式,如果未按下就保持正常模式。在緊急模式中判斷復位按鍵是否按下,如果按下則進入正常模式,否則一直保持緊急模式,程序的流程圖如圖3所示。
3.2? 相關子程序
3.2.1? 單片機初始化子程序
軟件延時和定時器都可以用來定時,但是單片機內部的定時器要比軟件延時要精準得多。所以在通常情況下軟件延時一般用于對時間精準度不高的地方,其作用相當于NOP延時函數用來給程序執行反應時間。考慮到本系統需要高精度定時,因此使用了設定為工作方式1的定時器來定時。
定時器的設定與幾個寄存器相關,在EA中開啟中斷允許包括總中斷和定時器中斷。然后設定定時器的初值,最后打開中斷允許。以上操作是在程序初始化中設置,器的初值的兩種表示方式如下:
(1)t=(216-初值X)×機器周期(求X后換算成16進制)。
(2)或者直接將(216-時間)的值進行求商和余數。
3.2.2? 數碼管顯示程序
將這4位數碼管的控制端與P2相連來決定哪一位亮。在宏定義中已經將對應數字的段選碼放入了數組當中。所以將數字對10的商就是十位數字的下標,通過下標在數組里找出對應的數字來賦值給數碼管。同理將倒計時的數字對10的余數,就是個位時間的下標。
3.2.3? 中斷函數
在本設計中用到了一個定時中斷源,為該中斷設置一個初值t秒,所以每記滿t秒就會調用一次中斷子程序。在中段子程序中實現的功能有兩個,分別是使車輛通行黃燈亮時黃燈能夠閃爍并且是數碼管顯示倒計時時間每隔1 s減1。在實現兩個功能時最重要的是要在定時器溢出之后,在中斷子程序中對t0重新賦值。以count來計算中斷次數在中斷函數中每次中斷執行count++操作,來累加初值t秒。在中斷函數中判斷當時間為0.5 s時執行黃燈取反,當計時為1 s時執行數碼管減一,并且將count清0。
3.2.4? 按鍵子程序
使用者和單片機的直接交流除了代碼的修改之外就是通過硬件電路里的按鍵了。用戶按下按鍵后,單片機系統就會獲得相應的鍵值,并執行相應的命令程序。按鍵部分的軟件設計主要是對51單片機進行編程,從而能夠成功地讀取按鍵,實現相應功能。在正常模式按鍵按下后要將初值重新賦值給各數碼管,并且可以通過按鍵來改變東西、南北方向允許通行的時間減少擁堵[7-8]。
緊急模式下,考慮到事故車輛的通過。在緊急按鍵按下時,各個方向均亮紅燈包括人行道,方便處理事故,或者讓救護車、救火車等車輛快速通過。
4? ? 軟件仿真
在Proteus中選擇完合適的元器件之后,將其按設計進行引腳連接。在連接完成后,將.hex文件添加到芯片中進行仿真。整個過程分為8個狀態,且前4個與后4個狀態相似,正常模式的前4個狀態如圖4所示。
當遙控器或者交通指揮亭中緊急按鍵按下,緊急模式如圖5所示。
5? ? 結語
本設計簡單高效、低成本,可以很好地指揮路口交通。隨著嵌入式的高速發展,人們的生活變得越來越方便、高效。未來的交通燈將變得更加智能,自我學習的人工智能也將逐漸地加入到交通控制系統當中。將人工智能與車流量計算、安全警告相結合,將使得道路安全問題得到解決。