實驗二報告--交通燈控制器_第1頁
實驗二報告--交通燈控制器_第2頁
實驗二報告--交通燈控制器_第3頁
實驗二報告--交通燈控制器_第4頁
實驗二報告--交通燈控制器_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗二 交通燈控制器1、 實驗?zāi)康?設(shè)計一個基于EDA的十字路口交通控制器,假設(shè)南北方向和東西方向,兩個方向分別設(shè)置紅燈、綠燈、黃燈,每個方向設(shè)置一組倒計時顯示器,用以指揮車輛和行人有序的通行。紅燈亮表示直行車輛禁行;綠燈亮表示直行車輛可以通行;黃燈亮表示直行車輛即將禁行。二、實驗任務(wù)及要求1、能顯示十字路口東西、南北兩個方向的紅、黃、綠的指示狀態(tài)用兩組紅、黃、綠三色燈作為兩個方向的紅、黃、綠燈。變化規(guī)律為:東西綠燈,南北紅燈>東西黃燈,南北紅燈>東西紅燈,南北綠燈>東西紅燈,南北黃燈->東西綠燈,南北紅燈依次循環(huán)。圖1 2、能實現(xiàn)正常的倒計時功能用兩組數(shù)碼管作為東西和

2、南北方向的允許或通行時間的倒計時顯示,顯示時間為紅燈45秒、綠燈40秒、黃燈5秒。3、能實現(xiàn)緊急狀態(tài)處理的功能(1)出現(xiàn)緊急狀態(tài)(例如消防車,警車執(zhí)行特殊任務(wù)時要優(yōu)先通行)時,兩路上所有車禁止通行,紅燈全亮;(2)顯示到計時的兩組數(shù)碼管閃爍;(3)計數(shù)器停止計數(shù)并保持在原來的狀態(tài);4、能實現(xiàn)系統(tǒng)復(fù)位功能系統(tǒng)復(fù)位后,東西綠燈,南北紅燈,東西計時器顯示40秒,南北顯示45秒。5、用VHDL語言設(shè)計符合上述功能要求的交通燈控制器,并用層次化設(shè)計方法設(shè)計該電路。6、個模塊的功能用功能仿真的方法驗證,可通過有關(guān)波形確認(rèn)電路設(shè)計是否正確。7、完成電路全部設(shè)計后,通過系統(tǒng)實驗箱下載驗證設(shè)計課題的正確性。三、

3、實驗原理圖1、交通燈狀態(tài)轉(zhuǎn)換圖圖2 交通燈狀態(tài)轉(zhuǎn)換圖2、 交通燈控制器框圖圖3 交通燈控制器框圖3、交通燈控制的算法流程圖圖4 交通燈控制的算法流程圖四、實驗報告要求1、畫出頂層原理圖。2、對照交通燈電路框圖分析電路工作原理。3、寫出各功能模塊的VHDL語言源文件。4、敘述各模塊的工作原理。5、詳述控制器部分的工作原理,繪出詳細(xì)電路圖,寫出VHDL語言源文件,畫出有關(guān)狀態(tài)機(jī)變化。6、書寫實驗報告時應(yīng)結(jié)構(gòu)合理,層次分明,在分析時注意語言的流暢。5、 實驗結(jié)果1、 畫出頂層原理圖。由于我使用的是元件例化語句,沒有使用手畫元器件電路,主要思路我用圖表示出來首先我將led燈的正確亮法顯示出來,led是

4、第一個頂層文件如圖5所示,然后我再將led作為data的底層文件,從data顯示出數(shù)碼管的數(shù)據(jù)和led燈的亮法,data是第二個頂層文件如圖6所示。圖5 led頂層原理圖圖6 數(shù)碼管顯示頂層原理圖2、 對照交通燈電路框圖分析電路工作原理。(1) 由reset恢復(fù)led和數(shù)碼管的初始值,東西綠燈,南北紅燈,東西計時器顯示40秒,南北顯示45秒。這兒有g(shù)2代表東西方向的路燈,r1代表南北方向的紅燈,(2) 由urgent表示出現(xiàn)緊急情況時的按鍵信息,如果出現(xiàn)緊急情況,當(dāng)urgent=1,led南北和東西方向都是紅燈,r1,r2都是1,且數(shù)碼管保持?jǐn)?shù)據(jù)不變。當(dāng)urgent=0,一切又恢復(fù)正常,數(shù)碼管

5、數(shù)據(jù)不斷減一減少。(3) clk表示時鐘頻率,所有的元件使用同一個時鐘脈沖。(4) 由分析可知,整個交通燈的亮暗情況共有4種狀態(tài),加上出現(xiàn)緊急時的一種情況共5種。利用狀態(tài)機(jī)實現(xiàn)4種不同狀態(tài)的轉(zhuǎn)換。,由traffic輸出的c1,c2,c3作為使能信號使得count5和count40的分時減少,實現(xiàn)紅綠燈的不同時長的亮暗變化。(5) 由于led的輸出的紅路燈已具有準(zhǔn)確的時間轉(zhuǎn)換,利用這個時間控制數(shù)碼管的分時輸出,由data頂層文件實現(xiàn)。3、 寫出各功能模塊的VHDL語言源文件。(1) count5功能模塊(同理可得count40的功能模塊)LIBRARY IEEE;USE IEEE.STD_LOG

6、IC_1164.ALL;ENTITY count5 IS PORT( clk_5 :IN STD_LOGIC; enable_5:IN STD_LOGIC; c_5:OUT STD_LOGIC);END count5;ARCHITECTURE behave OF count5 ISBEGIN PROCESS(clk_5) VARIABLE cnt:INTEGER RANGE 4 DOWNTO 0; BEGIN IF (clk_5'EVENT AND clk_5='1')THEN IF enable_5='1' AND cnt<4 THEN cnt:

7、=cnt+1;ELSE cnt:=0; END IF; END IF; IF cnt=4 THEN c_5<='1' ELSE c_5<='0' END IF; END PROCESS;END behave; (2)traffic功能模塊LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY traffic IS PORT(clk:IN STD_LOGIC;c1,c2,c3:OUT STD_LOGIC;-各定時計數(shù)器的使能信號w1,w2,w3:IN STD_LOGIC;-各定時計數(shù)器的工作信號r1,r2:OU

8、T STD_LOGIC;-兩個方向的紅燈信號y1,y2:OUT STD_LOGIC; -兩個方向的黃燈信號g1,g2:OUT STD_LOGIC;-兩個方向的綠燈信號 urgent,reset:IN STD_LOGIC);-復(fù)位信號END traffic;ARCHITECTURE behave OF traffic IS TYPE state_space IS (s0,s1,s2,s3,s4); SIGNAL state:state_space;BEGINPROCESS(clk,reset,urgent) BEGIN IF reset='1' THEN state<=s0

9、; ELSIF urgent='1' THEN state<=s4; ELSIF(clk'EVENT AND clk='1')THEN CASE state IS WHEN s0=>IF w1='1' THEN-條件信號賦值語句 state<=s1; END IF; WHEN s1=>IF w2='1' THEN state<=s2; END IF; WHEN s2=>IF w3='1' THEN state<=s3; END IF; WHEN s3=>IF

10、w2='1' THEN state<=s0; END IF; WHEN s4=>state<=s4; END CASE; END IF;END PROCESS; c1<='1' WHEN state=s0 ELSE'0' c2<='1' WHEN state=s1 OR state=s3 ELSE '0'c3<='1' WHEN state=s2 ELSE'0'r1<='1' WHEN state=s1 OR state=s0

11、 OR state=s4 ELSE '0' y1<='1' WHEN state=s3 ELSE'0' g1<='1' WHEN state=s2 ELSE'0' r2<='1' WHEN state=s2 OR state=s3 OR state=s4 ELSE '0' y2<='1' WHEN state=s1 ELSE'0' g2<='1' WHEN state=s0 ELSE'0'E

12、ND behave; (3)led元件例化模塊LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY led IS PORT(clk:IN STD_LOGIC;r1,r2:OUT STD_LOGIC;-兩個方向的紅燈信號y1,y2:OUT STD_LOGIC; -兩個方向的黃燈信號g1,g2:OUT STD_LOGIC;-兩個方向的綠燈信號 urgent,reset:IN STD_LOGIC);-復(fù)位信號END led;ARCHITECTURE behave OF led ISCOMPONENT traffic PORT(clk:IN STD_LOGI

13、C;c1,c2,c3:OUT STD_LOGIC;-各定時計數(shù)器的使能信號w1,w2,w3:IN STD_LOGIC;-各定時計數(shù)器的工作信號r1,r2:OUT STD_LOGIC;-兩個方向的紅燈信號y1,y2:OUT STD_LOGIC; -兩個方向的黃燈信號g1,g2:OUT STD_LOGIC;-兩個方向的綠燈信號 urgent,reset:IN STD_LOGIC);-復(fù)位信號END COMPONENT;-COMPONENT count45 IS PORT(clk_45 :IN STD_LOGIC; enable_45:IN STD_LOGIC; c_45:OUT STD_LOGIC

14、);END COMPONENT;-COMPONENT count40 IS PORT(clk_40 :IN STD_LOGIC; enable_40:IN STD_LOGIC; c_40:OUT STD_LOGIC);END COMPONENT;-COMPONENT count5 IS PORT(clk_5 :IN STD_LOGIC; enable_5:IN STD_LOGIC; c_5:OUT STD_LOGIC);END COMPONENT;SIGNAL hc1,hc2,hc3,hw1,hw2,hw3:STD_LOGIC;BEGINU1:traffic PORT MAP(urgent=&

15、gt;urgent,clk=>clk,c1=>hc1,c2=>hc2,c3=>hc3,w1=>hw1,w2=>hw2,w3=>hw3,r1=>r1,r2=>r2,y1=>y1,y2=>y2,g1=>g1,g2=>g2,reset=>reset);U2:count45 PORT MAP(enable_45=>hc1,C_45=>hw1,clk_45=>clk);U3:count5 PORT MAP(enable_5=>hc2,C_5=>hw2,clk_5=>clk);U4:co

16、unt40 PORT MAP(enable_40=>hc3,C_40=>hw3,clk_40=>clk);END behave; (4) data元件例化模塊LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY data IS PORT(clk:IN STD_LOGIC;r1,r2:OUT STD_LOGIC;-兩個方向的紅燈信號y1,y2:OUT STD_LOGIC; -兩個方向的黃燈信號g1,g2:OUT STD_LOGIC;-兩個方向的綠燈信號q1,q2:OUT

17、STD_LOGIC_VECTOR(7 DOWNTO 0); urgent,reset:IN STD_LOGIC);-復(fù)位信號END data;ARCHITECTURE behave OF data ISCOMPONENT led PORT(clk:IN STD_LOGIC;r1,r2:OUT STD_LOGIC;-兩個方向的紅燈信號y1,y2:OUT STD_LOGIC; -兩個方向的黃燈信號g1,g2:OUT STD_LOGIC;-兩個方向的綠燈信號 urgent,reset:IN STD_LOGIC);-復(fù)位信號END COMPONENT;BEGINU5:led PORT MAP(urge

18、nt=>urgent,clk=>clk,r1=>r1,r2=>r2,y1=>y1,y2=>y2,g1=>g1,g2=>g2,reset=>reset);PROCESS(clk,reset,urgent)variable qq1,qq2:STD_LOGIC_VECTOR(7 DOWNTO 0);variable rr1:STD_LOGIC; BEGIN IF reset='1' THENrr1:='0'qq1:="00101101"qq2:="00101000" ELSI

19、F urgent='1' THENqq1:=qq1;qq2:=qq2; ELSIF(clk'EVENT AND clk='1')THENqq1:=qq1-1;qq2:=qq2-1;IF (rr1='0' and qq2="00000000" and qq1="00000101") THENqq1:="00000101"qq2:="00000101"rr1:='1'ELSIF (rr1='1' and qq1="0000

20、0000" and qq2="00000000") THENqq1:="00101000"qq2:="00101101"rr1:='1'ELSIF (rr1='1' and qq2="00000101" and qq1="00000000") THENqq1:="00000101"qq2:="00000101"rr1:='0'ELSIF (rr1='0' and qq1="

21、00000000" and qq2="00000000") THENqq1:="00101101"qq2:="00101000"rr1:='0'END IF;END IF;q1<=qq1;q2<=qq2;END PROCESS;END behave; 4、 敘述各模塊的工作原理。(1)count5功能模塊(同理可得count40的功能模塊)形成一個5的計數(shù)器功能(同理count40的功能模塊可以形成一個40的計數(shù)器功能)實現(xiàn)對led燈的時間控制的作用。(2)traffic功能模塊擁有reset的重置功能和urgent的緊急情況功能,可以在計數(shù)器的幫助下實現(xiàn)燈的準(zhǔn)確計數(shù)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論