交通燈控制器EDA設(shè)計報告(共16頁)_第1頁
交通燈控制器EDA設(shè)計報告(共16頁)_第2頁
交通燈控制器EDA設(shè)計報告(共16頁)_第3頁
交通燈控制器EDA設(shè)計報告(共16頁)_第4頁
交通燈控制器EDA設(shè)計報告(共16頁)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上交通燈控制器設(shè)計報告姓名:學(xué)號: 一、概述在十字路口,每條道路各有一組紅、黃、綠燈和倒計時顯示器,用以指揮車輛和行人有序地通行。其中,紅燈(R)亮,表示該條道路禁止通行;黃燈(Y)亮,表示停車;綠燈(G)亮,表示可以通行。倒計時顯示器是用來顯示允許通行和禁止通行地時間。交通燈控制器就是用來自動控制十字路口的交通燈和計時器,指揮各種車輛和行人安全通行。二、功能要求(1)在十字路口的兩個方向上各設(shè)一組紅、綠、黃燈,顯示順序為其中一方向(東西方向)是綠燈、黃燈、紅燈;另一方向(南北方向)是紅燈、綠燈、黃燈。(2)設(shè)置一組數(shù)碼管,以倒計時的方式顯示允許通行或禁止通行的時間,其

2、中綠燈、黃燈、紅燈的持續(xù)時間分別是20s、5s和25s。(3)當(dāng)各條路上任意一條上出現(xiàn)特殊情況時,如當(dāng)消防車、救護車或其他需要優(yōu)先放行的車輛通過時,各方向上均是紅燈亮,倒計時停止,且顯示數(shù)字在閃爍。當(dāng)特殊運行狀態(tài)結(jié)束后,控制器恢復(fù)原來狀態(tài),繼續(xù)正常運行。三、功能設(shè)計交通燈用以指揮車輛和行人有序地通行,在功能上要實現(xiàn)紅黃綠燈之間狀態(tài)變換、計時設(shè)置和緊急情況三大功能。3.1紅黃綠燈之間狀態(tài)變換對于十字路口兩個方向上的交通燈,要保證一條道路通行另一條禁止,同時還要考慮黃燈到紅燈的變換,因此一共有四個狀態(tài),即南北紅東西綠、南北紅東西黃、南北綠東西紅、南北黃東西紅。 3.2計時設(shè)置根據(jù)要求,綠燈、黃燈、

3、紅燈的持續(xù)時間分別是20s、5s和25s,對應(yīng)到3.1中的四個狀態(tài)分別持續(xù)時間為20s、5s、20s、5s。3.3緊急情況當(dāng)各條路上任意一條上出現(xiàn)特殊情況時,各方向上均是紅燈亮,倒計時停止,且顯示數(shù)字在閃爍。綜上分析,可得如下循環(huán)圖:東西20s南北20s東西20s南北20s南北5s東西5s南北5s東西5s南北紅東西綠南北黃東西紅南北綠東西紅南北紅東西黃南北20圖1功能狀態(tài)循環(huán)圖四、功能模塊設(shè)計根據(jù)3節(jié)中的功能設(shè)計,要實現(xiàn)交通燈的控制需要5個功能模塊,分別為4M分頻器,數(shù)碼管譯碼器,交通燈控制器以及計時器。4.1 4M分頻器由于引腳選用4M時鐘,而計時單位為秒,需要對時鐘信號進行4M分頻處理,編

4、譯后生成4M分頻器如下圖:圖2 4M分頻器4.2數(shù)碼管譯碼器輸出時間為16進制數(shù),要在數(shù)碼管上顯示需設(shè)計數(shù)碼管譯碼器對其進行譯碼,編譯后生成數(shù)碼管譯碼器如下圖:圖3 數(shù)碼管譯碼器4.3 交通燈控制器為完成四個狀態(tài)之間的循環(huán),需交通燈控制器通過時鐘信號的變化來完成狀態(tài)循環(huán)的功能,編譯后生成交通燈控制器如下圖:圖4 交通燈控制器4.4 計時器計時器不僅要完成倒計時功能,還要隨狀態(tài)的變化而改變其倒計時時間,編譯后生成計時器如下圖:圖5 計時器五、引腳設(shè)置針對EP1C6Q240C8芯片,引腳設(shè)置如下:圖6 引腳設(shè)置六、元器件連接根據(jù)4、5節(jié)中的內(nèi)容,將元器件連接,如下圖:圖7 交通燈控制器原理圖七、波

5、形仿真分析在clc上升沿,tim2計數(shù)到達01,此時改變狀態(tài),主道路的路燈熄滅,黃燈點亮,從道路的紅燈保持不變,持續(xù)5秒并計數(shù)。Reset置1后開始進入計數(shù)狀態(tài),并隨著時鐘上升沿改變狀態(tài)。在clc上升沿,tim1和tim2計數(shù)都達到01,此時改變狀態(tài),主道路黃燈熄滅紅燈點亮,從道路紅燈熄滅綠燈點亮。并開始計數(shù)。emg為緊急情況的開關(guān),在緊急情況下,將emg置0,此時主動道路都變?yōu)榧t燈,且計數(shù)器停止計數(shù),保持原計數(shù)時間并閃爍。緊急情況排除后,emg恢復(fù)置1,此時恢復(fù)緊急狀況之前的狀態(tài),并繼續(xù)計數(shù)。八、 程序代碼8.1 4M分頻器LIBRARY IEEE ;USE IEEE.STD_LOGIC_1

6、164.ALL ;USE IEEE.STD_LOGIC_UNSIGNED.ALL ; - 運算符重載ENTITY cnt4M IS PORT ( ena,clr,d_ctr,clk : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR( 21 DOWNTO 0 );co:outstd_logic ) ; END ENTITY cnt4M; ARCHITECTURE bhv OF cnt4M ISSIGNAL q1 : STD_LOGIC_VECTOR(21 DOWNTO 0 ); BEGIN q <= q1 ; PROCESS (clk,clr,ena,d_

7、ctr) BEGIN IF clr='0' THEN q1<= (others =>'0'); ELSIF clk'EVENT AND clk = '1' THEN IF ena='1' THEN IF d_ctr='1' THEN IF q1 = "" THEN q1 <= (others =>'0'); ELSE q1<=q1+'1' END IF; ELSIF q1= "" THEN q1<=(

8、others =>'1'); ELSE q1<=q1-'1' END IF; END IF ; END IF; END PROCESS ;PROCESS(q1) BEGIN IF q1= "" THENco<='1' ELSEco<='0' END IF;END PROCESS;END ARCHITECTURE bhv;8.2 數(shù)碼管譯碼器LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DecL7S IS PORT ( A : IN

9、 STD_LOGIC_VECTOR(3 DOWNTO 0) ;LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ) ;END ; ARCHITECTURE one OF DecL7S IS BEGINPROCESS( A ) BEGINCASE A(3 DOWNTO 0) IS WHEN "0000" => LED7S<= "" ; - X“80”?0 WHEN "0001" => LED7S<= "" ; - X“79”?1 WHEN "0010&

10、quot; => LED7S<= "" ; - X“24”?2 WHEN "0011" => LED7S<= "" ; - X“30”?3 WHEN "0100" => LED7S<= "" ; - X“19”?4 WHEN "0101" => LED7S<= "" ; - X“12”?5 WHEN "0110" => LED7S<= "" ; - X“02

11、”?6 WHEN "0111" => LED7S<= "" ; - X“78”?7 WHEN "1000" => LED7S<= "" ; - X“00”?8 WHEN "1001" => LED7S<= "" ; - X“10”?9 WHEN "1010" => LED7S<= "" ; - X“08”?10 WHEN "1011" => LED7S<=

12、"" ; - X“03”?11 WHEN "1100" => LED7S<= "" ; - X“46”?12 WHEN "1101" => LED7S<= "" ; - X“21”?13 WHEN "1110" => LED7S<= "" ; - X“06”?14 WHEN "1111" => LED7S<= "" ; - X“0E”?15 WHEN OTHERS =&

13、gt; NULL ; END CASE ; END PROCESS ;END ;8.3 交通燈控制器LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jtd ISPORT(clk,emg:IN STD_LOGIC;-輸入時鐘,復(fù)位,狀態(tài) COUNT1,COUNT2:IN STD_LOGIC_VECTOR(7 DOWNTO 0);-計時器 MG,MY,MR,CG,CY,CR:OUT STD_LOGIC);-輸出信號,控制各種燈END jtd;ARCHITECTURE behav OF

14、jtd IS TYPE jtdSTATEIS(mrcg,mrcy,mgcr,mycr); SIGNAL STATE:jtdSTATE;BEGINPROCESS(STATE,clk,emg)-RESET, S BEGIN - IF RESET='1' THEN STATE<=mgcr;MG<='1'CR<='1'MY<='0'MR<='0'CG<='0'CY<='0' -ELS IF clk'EVENT AND clk='1&#

15、39; then IF emg='1' THEN MY<='0'CR<='1'MG<='0'MR<='1'CG<='0'CY<='0' END IF; IF emg='0' THEN CASE STATE IS WHEN mrcg=>IF COUNT1="" AND COUNT2=""THEN STATE<=mrcy;MY<='0'CR<='0&

16、#39;MG<='0'MR<='1'CG<='0'CY<='1' ELSE STATE<=mrcg;MG<='0'CR<='0'MY<='0'MR<='1'CG<='1'CY<='0' END IF; WHEN mrcy=>IF COUNT1="" AND COUNT2=""THEN STATE<=mgcr;MR<

17、='0'CG<='0'MG<='1'MY<='0'CR<='1'CY<='0' ELSE STATE<=mrcy;MY<='0'CR<='0'MG<='0'MR<='1'CG<='0'CY<='1' END IF; WHEN mgcr=>IF COUNT2="" AND COUNT1=""

18、THEN STATE<=mycr;MR<='0'CY<='0'MY<='1'MG<='0'CR<='1'CG<='0' ELSE STATE<=mgcr;MR<='0'CG<='0'MG<='1'MY<='0'CR<='1'CY<='0' END IF; WHEN mycr=>IF COUNT1="&quo

19、t; AND COUNT2=""THEN STATE<=mrcg;MG<='0'CR<='0'MR<='1'MY<='0'CY<='0'CG<='1' ELSE STATE<=mycr;MR<='0'CY<='0'MY<='1'MG<='0'CR<='1'CG<='0' END IF; END CASE

20、; END IF; END IF; END PROCESS; END behav;8.4 計時器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JISHU ISPORT(clk,RESET,emg:IN STD_LOGIC; tim1,tim2:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END JISHU;ARCHITECTURE behav OF JISHU IS TYPE RGY IS(mrcg,mrcy,mgcr,mycr); SIGNAL STATE:

21、RGY;BEGINPROCESS(clk,RESET,emg)-,RESET VARIABLE a1:STD_LOGIC:='0' VARIABLE a2:STD_LOGIC:='0' VARIABLE a3:STD_LOGIC:='0' VARIABLE a4:STD_LOGIC:='0' VARIABLE b:STD_LOGIC:='0' VARIABLE timmh:STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE timml:STD_LOGIC_VECTOR(3 DOWNTO 0

22、); VARIABLE timch:STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE timcl:STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE mth,mtl,cth,ctl:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN IF clk'EVENT AND clk='1' THEN IF RESET='1' THEN STATE<=mrcg;a1:='1' END IF; IF RESET='0' AND emg='1'

23、 THEN IF b='0' THEN b:='1'mth:="0000"mtl:="0000"cth:="0000"ctl:="0000" else b:='0'mth:=timmh;mtl:=timml;cth:=timch;ctl:=timcl; END IF; END IF; IF emg='0' THEN mth:=timmh;mtl:=timml;cth:=timch;ctl:=timcl; CASE STATE IS WHEN mrcg

24、=> -IF S='1' AND b='1' THEN STATE<=mycr;a:='0'th:="0000"tl:="0100"b:='0' -ELSIF S='0' AND b='1' THEN STATE<=mgcr;a:='1'th:="0000"tl:="0001" -ELSE IF a1='1' THEN mth:="0010"mtl:=

25、"0101"cth:="0010"ctl:="0000"a1:='0'timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; -25秒,20秒else IF NOT(cth="0000" AND ctl="0010") then IF mtl="0000" thenmtl:="1001"mth:=mth-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl;

26、 elsemtl:=mtl-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; END IF; -IF NOT(cth="0000" AND ctl="0010") then IF ctl="0000" thenctl:="1001"cth:=cth-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; elsectl:=ctl-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ct

27、l; END IF; ELSE mth:="0000"mtl:="0110"cth:="0000"ctl:="0001"STATE<=mrcy;a2:='1'timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; -6.1 END IF; END IF; -END IF; WHEN mrcy => IF a2='1' THEN cth:="0000"ctl:="0101"mth:="

28、0000"mtl:="0101"a2:='0'timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; -5秒else IF NOT(cth="0000" AND ctl="0010" ) thenctl:=ctl-1;mtl:=mtl-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; ELSE cth:="0000"ctl:="0001"mth:="0000"m

29、tl:="0001"a3:='1'STATE<=mgcr;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; END IF; END IF; WHEN mgcr =>-IF S='1' THEN IF a3='1' THEN mth:="0010"mtl:="0000"cth:="0010"ctl:="0101"a3:='0'timmh:=mth; timml:=mtl; ti

30、mch:=cth; timcl:=ctl; -20秒else IF NOT(mth="0000" AND mtl="0010") then IF mtl="0000" thenmtl:="1001"mth:=mth-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; elsemtl:=mtl-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; END IF; -IF NOT(cth="0000" AND ctl="0010") then IF ctl="0000" thenctl:="1001&quo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論