肖傳清
(福建工程學院 信息科學與工程學院,福建 福州 350108)
基于單片機控制交通燈的設計
肖傳清
(福建工程學院 信息科學與工程學院,福建 福州 350108)
本文是基于單片機控制交通信號燈的設計,主要闡述了以單片機為核心控制,在鎖存器和可編程并行接口芯片的輔助下,通過設計的交通管理方案,設計單片機控制程序的工作流程,從而實現對十字路口交通信號燈的自動化控制,來指揮交通,讓車輛、行人能夠有條不紊地安全地通過十字路口,維護了社會車輛行人的出行安全.
單片機控制交通燈;8051單片機;十字路口;交通管理;方案;鎖存器
由于微控技術的快速發展,應用單片機控制交通信號燈已經成為可能.以單片機為核心,搭建交通燈顯示模塊,配合以適當的控制電路和保護電路,來實現單片機控制交通信號燈,已達到交通通暢、人車和諧有序的交通狀態.
本文基于單片機控制交通燈設計是面向十字路口交通燈的自動化控制,主要思路是通過單片機內部可編程定時器來定時,一定時間后按照既定規則來改變當前交通信號燈的狀態.此次用到的主要組件有51系列單片機,鎖存器,可編程并行接口芯片以及交通信號燈顯示硬件(包括信號燈、數碼管顯示等等).
1.1 8051單片機
8051是MSC-51單片機系列中的典型產品,它擁有中央處理器、程序存儲器ROM、數據存儲器RAM、定時/計數器、串并行端口、中斷系統以及數據總線、控制總線和地址總線組成.
其中中央處理器是單片機的核心處理器,能夠處理8位二進制數據,中央處理器主要負責指揮、控制和調度整個單元系統協調工作,完成數據運算以及控制輸入輸出等操作.
程序存儲器ROM是用來存放單片機運行代碼以及代碼中初始化數據.數據存儲器RAM是單片機存放控制指令數據和用戶數據的存儲單元,其中供用戶使用的只有128存儲單元,用戶可以通過統一編址,來對數據進行讀寫操作.
定時/計數器是可編程控制的定時器,單片機用來計時或者計數進而產生中斷,以方便控制程序跳轉.
8051提供了4組8位并行輸入輸出端口和一個全雙工串行通信口,用于同外部進行數據傳輸. 8051具有兩個外中斷、兩個定時中斷和一個串行中斷,具有較完善的終端功能.
單片機的總線系統則是在單片機內部單元之間、內部與外部之間傳輸數據、命令和地址.
1.2 74LS373鎖存器
74LS373鎖存器是將收入數據進行暫時保存的芯片,它有8位數據輸入端和8位數據輸出端,以及一個數據輸入輸出控制引腳和一個芯片使能端.當使能端允許芯片工作室,數據輸入輸出控制端為“0”時,鎖存器讀取輸入數據,當控制端為“1”時,鎖存器鎖存讀取數據,并將數據輸出.
1.3 8255可編程并行接口芯片
8255芯片是可編程并行接口芯片,提供三個8位數據輸入輸出端口.用戶可以根據自己需要設定該芯片控制字使其以不同的工作方式工作.
1.4 交通燈硬件電路
該設計主要是對一個十字路口的東西道、南北道的交通信號燈的設計,所以基本要求是東西道和南北道各有兩個面向不同方向的紅綠燈以及讀秒數碼管共四組紅綠燈設施,每個道路的兩側邊不同方向應有兩組指示行人的紅綠燈共八組.
在第二章節介紹的基本單元的基礎上,來對交通信號燈進行整體設計,設計流程是:提出交通管理方案→硬件框圖設計→軟件流程設計.
2.1 交通管理方案
本設計主要是針對十字路口交通信號燈來設計的,分東西干道和南北干道四組交通指示燈,每組交通信號燈由兩套紅綠燈和讀秒數碼管組成,其中每套紅綠燈指示對面一端車輛的前進與左行(右行車輛可直接通過右行小道行駛,不必等待紅綠燈指示),當交通燈在紅燈或者綠燈狀態接近變燈的前十秒,而每個交通讀秒數碼管顯示讀數,紅綠燈黃燈亮時,讀秒數碼管一直讀秒,直至黃燈熄滅.每個干道兩側都有兩個指示行人同行的行人紅綠燈,共八組,每組行人紅綠燈由紅燈和綠燈組成,在綠燈切換成紅燈之前三秒,綠燈開始閃爍,直至切換到紅燈.

表1 交通信號燈亮滅組合方案
針對車輛行人紅綠燈等待和通行時間,可以根據十字路口車輛人數通行量來設定,而針對具體的交通信號燈亮滅組合見表1.
使用單片機來控制交通信號燈,可以按照表1提供的亮滅組合方案,設計單片機軟件流程,來控制交通信號燈指揮交通.
2.2 硬件框圖設計
在第二章節部分提到了我們所需要的部件,8051單片機,74LS373鎖存器,8255可編程并行接口芯片,以及交通信號燈的顯示系統,以8051單片機為核心,配合外圍電路,來搭建交通信號燈指揮系統.具體的單片機控制交通信號燈硬件電路框圖如圖1.

圖1 單片機控制交通信號燈硬件設計框圖
由圖1可知,8051單片機系統對整個外圍電路進行指揮,當8051經過一定的處理后,將數據和控制命令通過數據總線輸出后,由鎖存器將數據進行臨時保存;74LS373將鎖存數據在下一個時間脈沖將數據發送至8255可編程并行接口芯片經過后,按照8255設定的工作方式,將數據發送給交通信號燈顯示系統,來控制讀秒數碼管和紅綠燈顯示.
2.3 軟件流程設計
基于單片機控制交通信號燈的基本核心在于單片機的控制,而單片機有序的控制還是需要單片機軟件來實現.
單片機控制交通信號燈的流程是要根據既定的交通管理方案來進行設定,具體流程按照如下步驟.
a)數據初始化(主要是對單片機、定時器控制字以及鎖存器使能端控制字、8255可編程并行接口芯片控制字進行初始化).
b)發送控制數據(南北道車輛前行綠燈亮,左行紅燈亮,左右兩側人行綠燈亮;東西道車輛前行和左行紅燈亮,左右兩側人行紅燈亮).
c)計時器開始計時至35s.
d)初始化計時器計時10s,設定讀秒數碼管讀秒(每一秒向南北道紅綠燈發送讀秒數碼管顯示段碼).
e)發送控制數據(南北車輛前行、左行黃燈亮;東西車輛前行、左行紅燈亮,兩側人行紅燈亮).
f)初始化計時器計時3s,設定讀秒數碼管讀秒,設定另外一個計時器計時3s,每0.5s,控制南北道兩側綠燈閃爍一次(每一秒向讀秒數碼管發送顯示段碼,每0.5s向南北道人行綠燈發送與當前狀態相反數據).
g)發送控制數據(南北道車輛前行紅燈亮,左行綠燈亮,左右兩側人行紅燈亮;東西道車輛前行和左行紅燈亮,左右兩側人行紅燈亮).
h)計時器開始計時至10s.
i)初始化計時器計時10s,設定讀秒數碼管讀秒(每一秒向讀秒數碼管發送顯示段碼).
j)發送控制數據(南北車輛前行紅燈亮,左行黃燈亮,兩側人行紅燈亮;東西車輛前行黃燈亮,左行紅燈亮,兩側人行紅燈亮).
k)初始化計時器計時3s,設定讀秒數碼管讀秒(每一秒向南北道、東西道讀秒數碼管發送顯示段碼).
l)發送控制數據(南北道車輛前行、左行紅燈亮,左右兩側人行紅燈亮;東西道車輛前行綠燈亮,左行紅燈亮,左右兩側人行綠燈亮).
m)計時器開始計時至35s.
n)初始化計時器計時10s,設定讀秒數碼管讀秒(每一秒向東西道讀秒數碼管發送顯示段碼).
o)發送控制數據(南北車輛前行、左行紅燈亮,兩側人行紅燈亮;東西車輛前行、左行黃燈亮).
p)初始化計時器計時3s,設定讀秒數碼管讀秒,設定另外一個計時器計時3s,每0.5s,控制東西道兩側綠燈閃爍一次(每一秒中發送讀秒數碼管顯示段碼,每0.5s向東西道人行綠燈發送與當前狀態相反數據).
q)發送控制數據(南北道車輛前行、左行紅燈亮,左右兩側人行紅燈亮;東西道車輛前行紅燈亮,左行綠燈亮,左右兩側人行紅燈亮).
r)計時器開始計時至10s.
s)初始化計時器計時10s,設定讀秒數碼管讀秒(每一秒向讀秒數碼管發送顯示段碼).
t)發送控制數據(南北車輛前行黃燈亮,左行紅燈亮,兩側人行紅燈亮;東西車輛前行紅燈亮,左行黃燈亮,兩側人行紅燈亮).
u)初始化計時器計時3s,設定讀秒數碼管讀秒(每一秒向南北道、東西道讀秒數碼管發送顯示段碼).
v)循環至程序開始.
根據以上步驟來設計單片機控制交通信號燈流程圖,周而復始,循環執行上述操作步驟,進而有效執行交通管理方案,指揮交通.
基于單片機控制交通信號燈的設計,在單片機程序的控制下,向交通信號燈顯示電路發送控制數據,在外圍芯片和電路的配合下,完成交通信號燈的設計來控制十字路口的交通.至于交通信號燈亮滅時間可以根據當地車流人流量來設定,也可以根據主干道、支干道不同來設定.該設計的難點在于交通管理方案的設計,只有一個良好的交通管理方案,才能很好地管理道路交通,維持車輛、人流和諧有序的良好交通狀態.
〔1〕鄭建光,李永.基于AT89C51單片機的交通燈系統設計[J].自動化與儀器儀表,2008(06).
〔2〕王兵.基于8051單片機交通燈控制系統的設計[J].科技資訊,2011(32).
〔3〕馬華玲,左謹平,張濤.基于AT89S51的交通燈控制系統設計與實現[J].交通科技與經濟,2010(02).
〔4〕萬強兵,王坤俠.基于單片機的交通燈控制系統的設計[J].科技信息,2011(19).
〔5〕王潔瓊,王紅衛,敬敏.基于單片機的實用交通燈設計[J].科協論壇(下半月),2009(06).
TP273.5;U491.5
A
1673-260X(2013)11-0032-02