曾紹杰 劉衛(wèi)東 周鑫淼 祁佳兵 王瑞東
摘 要:本文基于EDA技術(shù),設(shè)計(jì)一個(gè)交通信號(hào)燈控制器,可以在數(shù)碼管上顯示計(jì)時(shí)時(shí)間,并且控制十字路口綠燈、紅燈、黃燈的亮滅。
關(guān)鍵詞:EDA;數(shù)碼管;交通燈
DOI:10.16640/j.cnki.37-1222/t.2018.14.141
0 引言
目前許多交通燈控制系統(tǒng)是基于單片機(jī)的控制,本文設(shè)計(jì)一種基于EDA技術(shù)的交通燈控制系統(tǒng),來(lái)實(shí)現(xiàn)對(duì)十字路口交通燈的控制。
1 系統(tǒng)設(shè)計(jì)要求
十字路口由一條主干道和一條支干道匯合而成,在每個(gè)入口處設(shè)置紅、綠、黃三色信號(hào)燈,紅燈亮表示禁止通行,綠燈亮表示允許通行,黃燈亮則給行駛中的車(chē)輛有時(shí)間停留在禁行線(xiàn)外。主、支干道均有車(chē)時(shí),兩者交替允許通行,主干道每次放行45秒,支干道每次放行25秒,設(shè)立45秒、25秒計(jì)時(shí)顯示電路。在每次由綠燈亮到紅燈亮的轉(zhuǎn)換過(guò)程中,要亮5秒黃燈作為過(guò)渡,使行駛中的車(chē)輛有時(shí)間停到禁行線(xiàn)外,并設(shè)立5秒計(jì)時(shí)、顯示電路。
2 系統(tǒng)設(shè)計(jì)方案
本文采用有限狀態(tài)機(jī)的方法來(lái)實(shí)現(xiàn)該交通燈控制器,該方法的優(yōu)點(diǎn)在于簡(jiǎn)單易用,狀態(tài)之間的關(guān)系清晰直觀。
依據(jù)設(shè)計(jì)要求,主干道方向和支干道方向交通燈共有四種狀態(tài),設(shè)為S0、S1、S2、S3,四種狀態(tài)如表1所示。該系統(tǒng)的狀態(tài)轉(zhuǎn)換機(jī)如圖2所示。
3 程序設(shè)計(jì)方法
本文系統(tǒng)程序設(shè)計(jì)時(shí),先進(jìn)行分頻處理,產(chǎn)生秒方波。在每遇到一個(gè)秒方波的上升沿,當(dāng)計(jì)數(shù)標(biāo)志time1小于79時(shí),time1加一,否則time1清零。并且在遇到秒方波上升沿時(shí),把下一個(gè)狀態(tài)賦給現(xiàn)態(tài)。當(dāng)處于S0狀態(tài)時(shí),輸出主干道和支干道的交通燈的狀態(tài),判斷計(jì)數(shù)標(biāo)志time1,決定是否進(jìn)入S1狀態(tài),并對(duì)數(shù)據(jù)tm進(jìn)行處理,在數(shù)碼管上進(jìn)行顯示。當(dāng)系統(tǒng)狀態(tài)為S1、S2、S3時(shí)方法相同、源程序類(lèi)似。產(chǎn)生位選信號(hào),依次點(diǎn)亮數(shù)碼管,同時(shí)把處理的數(shù)據(jù)送到數(shù)碼管,進(jìn)行倒計(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開(kāi)發(fā)工具Quartus II對(duì)程序進(jìn)行編譯、邏輯綜合、波形時(shí)序仿真,發(fā)現(xiàn)可以符合設(shè)計(jì)要求。將程序下載到硬件中,能完美的實(shí)現(xiàn)系統(tǒng)要求。
4 結(jié)語(yǔ)
本文系統(tǒng)提出了基于EDA技術(shù)的交通燈控制方案,該系統(tǒng)具有易于實(shí)現(xiàn)、便于修改、穩(wěn)定等優(yōu)點(diǎn)。傳統(tǒng)的基于單片機(jī)的交通燈控制系統(tǒng)一般不穩(wěn)定并且不利于擴(kuò)展,本系統(tǒng)突破了單片機(jī)的種種限制,有較為廣闊的發(fā)展前景。
參考文獻(xiàn):
[1]楊東,王學(xué)春.基于EDA的交通信號(hào)燈電路的設(shè)計(jì)與仿真[J].電子設(shè)計(jì)工程,2014,22(20):82-85.
[2]陳歡.基于EDA技術(shù)的交通燈控制器的設(shè)計(jì)[J].電子制作,2013(17):9.
[3]趙凱.一種基于EDA的智能交通燈設(shè)計(jì)[J].武漢工業(yè)學(xué)院學(xué)報(bào),2009,28(01):53-56.
[4]楊顯富.基于EDA技術(shù)的交通燈自適應(yīng)控制系統(tǒng)[J].成都大學(xué)學(xué)報(bào)(自然科學(xué)版),2003(03):19-24.