曾紹杰 劉衛(wèi)東 周鑫淼 祁佳兵 王瑞東
摘 要:本文基于EDA技術(shù),設(shè)計一個交通信號燈控制器,可以在數(shù)碼管上顯示計時時間,并且控制十字路口綠燈、紅燈、黃燈的亮滅。
關(guān)鍵詞:EDA;數(shù)碼管;交通燈
DOI:10.16640/j.cnki.37-1222/t.2018.14.141
0 引言
目前許多交通燈控制系統(tǒng)是基于單片機的控制,本文設(shè)計一種基于EDA技術(shù)的交通燈控制系統(tǒng),來實現(xiàn)對十字路口交通燈的控制。
1 系統(tǒng)設(shè)計要求
十字路口由一條主干道和一條支干道匯合而成,在每個入口處設(shè)置紅、綠、黃三色信號燈,紅燈亮表示禁止通行,綠燈亮表示允許通行,黃燈亮則給行駛中的車輛有時間停留在禁行線外。主、支干道均有車時,兩者交替允許通行,主干道每次放行45秒,支干道每次放行25秒,設(shè)立45秒、25秒計時顯示電路。在每次由綠燈亮到紅燈亮的轉(zhuǎn)換過程中,要亮5秒黃燈作為過渡,使行駛中的車輛有時間停到禁行線外,并設(shè)立5秒計時、顯示電路。
2 系統(tǒng)設(shè)計方案
本文采用有限狀態(tài)機的方法來實現(xiàn)該交通燈控制器,該方法的優(yōu)點在于簡單易用,狀態(tài)之間的關(guān)系清晰直觀。
依據(jù)設(shè)計要求,主干道方向和支干道方向交通燈共有四種狀態(tài),設(shè)為S0、S1、S2、S3,四種狀態(tài)如表1所示。該系統(tǒng)的狀態(tài)轉(zhuǎn)換機如圖2所示。
3 程序設(shè)計方法
本文系統(tǒng)程序設(shè)計時,先進行分頻處理,產(chǎn)生秒方波。在每遇到一個秒方波的上升沿,當(dāng)計數(shù)標志time1小于79時,time1加一,否則time1清零。并且在遇到秒方波上升沿時,把下一個狀態(tài)賦給現(xiàn)態(tài)。當(dāng)處于S0狀態(tài)時,輸出主干道和支干道的交通燈的狀態(tài),判斷計數(shù)標志time1,決定是否進入S1狀態(tài),并對數(shù)據(jù)tm進行處理,在數(shù)碼管上進行顯示。當(dāng)系統(tǒng)狀態(tài)為S1、S2、S3時方法相同、源程序類似。產(chǎn)生位選信號,依次點亮數(shù)碼管,同時把處理的數(shù)據(jù)送到數(shù)碼管,進行倒計時,該系統(tǒng)的部分源程序如下。
(1)case current_state is when s0=>comb_out<="100001";
if time1=44 then next_state<=s1;else next_state<=s0;end if;
tm:=44-conv_integer(time1);tm1:=49-conv_integer(time1);
if(tm<45 and tm>39)then
th<="0100";tl<=conv_std_logic_vector(tm-40,4);
elsif(tm<40 and tm>29)then
th<="0011";tl<=conv_std_logic_vector(tm-30,4);
elsif(tm<30 and tm>19)then
th<="0010";tl<=conv_std_logic_vector(tm-20,4);
elsif(tm<20 and tm>9)then
th<="0001";tl<=conv_std_logic_vector(tm-10,4);
else th<="0000";tl<=conv_std_logic_vector(tm,4);end if;
(2)case sel is when "000"=>ot1<="01111";
if(time1>=0 and time1<=49)then num<=th1;
elsif(time1>=50 and time1<=74)then num<=th;
else ot1(4)<='1'; end if;
when "001"=>ot1<="10111";
if(time1>=0 and time1<=49)then num<=tl1;
elsif(time1>=50 and time1<=74)then num<=tl;
else ot1(3)<='1;end if;
(3)case num is
when"0000"=>ot<="0111111";when"0001"=>ot<="0000110";
when"0010"=>ot<="1011011";when"0011"=>ot<="1001111";
when"0100"=>ot<="1100110";when"0101"=>ot<="1101101";
when"0110"=>ot<="1111101";when"0111"=>ot<="0000111";
when"1000"=>ot<="1111111";when"1001"=>ot<="1101111";
when others=>null;end case;
利用EDA開發(fā)工具Quartus II對程序進行編譯、邏輯綜合、波形時序仿真,發(fā)現(xiàn)可以符合設(shè)計要求。將程序下載到硬件中,能完美的實現(xiàn)系統(tǒng)要求。
4 結(jié)語
本文系統(tǒng)提出了基于EDA技術(shù)的交通燈控制方案,該系統(tǒng)具有易于實現(xiàn)、便于修改、穩(wěn)定等優(yōu)點。傳統(tǒng)的基于單片機的交通燈控制系統(tǒng)一般不穩(wěn)定并且不利于擴展,本系統(tǒng)突破了單片機的種種限制,有較為廣闊的發(fā)展前景。
參考文獻:
[1]楊東,王學(xué)春.基于EDA的交通信號燈電路的設(shè)計與仿真[J].電子設(shè)計工程,2014,22(20):82-85.
[2]陳歡.基于EDA技術(shù)的交通燈控制器的設(shè)計[J].電子制作,2013(17):9.
[3]趙凱.一種基于EDA的智能交通燈設(shè)計[J].武漢工業(yè)學(xué)院學(xué)報,2009,28(01):53-56.
[4]楊顯富.基于EDA技術(shù)的交通燈自適應(yīng)控制系統(tǒng)[J].成都大學(xué)學(xué)報(自然科學(xué)版),2003(03):19-24.