EDA交通燈控制電路設計(共10頁)_第1頁
EDA交通燈控制電路設計(共10頁)_第2頁
EDA交通燈控制電路設計(共10頁)_第3頁
EDA交通燈控制電路設計(共10頁)_第4頁
EDA交通燈控制電路設計(共10頁)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上設計課題二:交通燈控制電路設計一、問題描述:交通燈的顯示有很多方式,如十字路口、丁字路口等,而對于同一個路口又有很多不同的顯示要求,比如十字路口,車輛如果只要東西和南北方向通行就很簡單,而如果車子可以左右轉彎的通行就比較復雜,本實驗僅針對最簡單的南北和東西直行的情況。二、功能要求:要完成本實驗,首先必須了解交通路燈的燃滅規(guī)律。依人們的交通常規(guī),“紅燈停,綠燈行,黃燈提醒”。其交通燈的燃滅規(guī)律為:初始態(tài)是兩個路口的紅燈全亮,之后,東西路口的綠燈亮,南北路口的紅燈亮,東西方向通車,延時一段時間后,東西路口綠燈滅,黃燈開始閃爍。閃爍若干次后,東西路口紅燈亮,而同時南北路口的

2、綠燈亮,南北方向開始通車,延時一段時間后,南北路口的綠燈滅,黃燈開始閃爍。閃爍若干次后,再切換到東西路口方向,重復上述過程。系統(tǒng)要求實現(xiàn)對2組交通燈控制信號的模擬輸出,其控制規(guī)律為如上所述,同時要完成等待時間模擬的輸出,即紅綠燈的持續(xù)時間倒數(shù)輸出。系統(tǒng)時鐘輸入為一個1KHz的系統(tǒng)時鐘。目錄一、交通燈控制電路設計的主要功能交通燈控制電路設計遵循“紅燈停,綠燈行,黃燈提醒”原則。其初始態(tài)是兩個路口的紅燈全亮,之后,東西路口的綠燈亮,南北路口的紅燈亮,東西方向通車,延時一段時間后,東西路口綠燈滅,黃燈開始閃爍。閃爍若干次后,東西路口紅燈亮,而同時南北路口的綠燈亮,南北方向開始通車,延時一段時間后,南

3、北路口的綠燈滅,黃燈開始閃爍。閃爍若干次后,再切換到東西路口方向,重復上述過程。系統(tǒng)要求實現(xiàn)對2組交通燈控制信號的模擬輸出,其控制規(guī)律為如上所述,同時要完成等待時間模擬的輸出,即紅綠燈的持續(xù)時間倒數(shù)輸出。系統(tǒng)時鐘輸入為一個1KHz的系統(tǒng)時鐘。本實驗中主要應用了狀態(tài)機以及減法器的設計原理。在狀態(tài)連續(xù)變化的數(shù)字系統(tǒng)設計中,采用狀態(tài)機的設計思想有利于提高設計效率,增加程序的可讀性,減少錯誤的發(fā)生幾率。同時,狀態(tài)機的設計方法也是數(shù)字系統(tǒng)中一種最常用的設計方法。二、課題的功能模塊的劃分 CLK倒計時模塊交通燈控制轉換模塊三、主要功能的實現(xiàn) 1.1倒計時模塊倒計時模塊采用減法計數(shù)器設計,等到時鐘的上升沿來

4、到時,對計數(shù)器進行計數(shù)。其中減法計數(shù)器的代碼如下: process(lock,clk) begin if lock='1' then cnt<=init; else if clk'event and clk='1' then cnt<=cnt-1;if cnt=0 thenov<='1' end if; end if;time<=cnt;end if; end process;1.2交通燈控制轉換模塊在設計交通燈控制電路轉換模塊時,采用狀態(tài)機來實行這個功能模塊,其中狀態(tài)機共有五個狀態(tài),如:兩個路口的紅燈全亮;東西路

5、口的綠燈亮,而南北路口的紅燈亮;在延時后,東西路口綠燈滅,黃燈開始閃爍;在閃爍若干次后,東西路口的紅燈亮,同時南北路口的綠燈亮;在延時后,南北路口的綠燈滅,黃燈開始閃爍;在閃爍若干次后,在切換到東西路口方向。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity trafic_light isport (clk,rst:in std_logic; -時鐘信號,復位信號 time:out integer range 0 to 59; -時間信號 r1,r2,y1,y2,g1,g2:out st

6、d_logic);end trafic_light ;architecture rt1 of trafic_light is type state is(r1r2,r1g2,r1y2,r2g1,r2y1); signal n_state ,c_state:state; signal cnt ,init:integer range 0 to 49; signal lock,ov:std_logic;begin state_reg:process(clk,rst) begin if rst='1'then c_state<=r1r2; elsif clk'event

7、and clk='1'then c_state <=n_state; end if; end process;state_com:process(c_state,ov) -交通燈控制轉換 begin case c_state is when r1g2=>r1<='1'g2<='1' y1<='0' r2<='0'g2<= '0'y2<='0' init<=9;lock<='1'n_state<=r1g1

8、2; when r1g12=>r1<='1'g2<='1' y1<='0' r2<='0'g2<= '0'y2<='0' init<=0;lock<='0'if ov='1' then n_state<=r1y2; else n_state<=r1g21; end if; when r1y2=>r1<='1'y2<='1'g1<='0

9、9; r2<='0'y1<='0'g2<='0' init<=49;lock<='1'n_state<=r1y21; when r1y21=>r1<='1'y2<='1'g1<='0' r2<='0'y1<='0'g2<='0' init<=0;lock<='0' if ov='1' then n_state<

10、=r2g1; else n_state<=r1y21; end if;when r2g1=>r2<='1'g1<='1'y1<='0' r1<='0'g2<='0'y2<='0' init<=9;lock<='1'n_state<=r2g11; when r2g11=>r2<='1'g1<='1'y1<='0' r1<='0'

11、g2<='0'y2<='0' init<=0;lock<='0' if ov='1' then n_state<=r2y1; else n_state<=r2g11; end if; when r2y1=>r2<='1'y1<='1'g1<='0' r1<='0'y2<='0'g2<='0' init<=49;lock<='1'n_

12、state<=r2y11; when r2y11=>r2<='1'y1<='1'g1<='0' r1<='0'y2<='0'g2<='0' init<=0;lock<='0' if ov='1' then n_state<=r1g2; else n_state<=r2y11; end if; when others=>n_state<=r1r2; end case; end proce

13、ss;四、系統(tǒng)調試與仿真初始態(tài)是兩個路口的紅燈全亮,之后,東西路口的綠燈亮,南北路口的紅燈亮,東西方向通車,延時一段時間后,東西路口綠燈滅,黃燈開始閃爍。閃爍若干次后,東西路口紅燈亮,而同時南北路口的綠燈亮,南北方向開始通車,延時一段時間后,南北路口的綠燈滅,黃燈開始閃爍。閃爍若干次后,再切換到東西路口方向,重復上述過程。五、總結與體會通過這次EDA課程設計,我不僅熟悉了Quartus軟件的使用方法,而且學習了VHDL 基本邏輯電路和狀態(tài)機電路的綜合設計應用。理論結合實際,很好地實現(xiàn)了學以致用。除此之外,還加強了我思考和解決問題的能力.現(xiàn)在設計已經(jīng)做好了,自己感覺還是比較好的,雖然花了很多的時

14、間,但學到了很多東西.做課程設計的時候,自己把整個書本都看了幾遍,還在網(wǎng)上查閱了很多的有關交通燈控制電路設計的資料,大大增強了自己對知識的理解,很多以前不是很懂的問題現(xiàn)在都已經(jīng)一一得以解決了。EDA設計我感覺程序調試、試驗軟件、硬件熟悉最重要。在編完各模塊程序之后,編譯查錯最初有三十幾個錯誤,有輸入錯誤、語法錯誤。一遍一遍的變異查錯,直到?jīng)]有錯誤。必須注意工程名和實體名一致,不然一般會出錯。在沒有錯誤之后可以進行波型仿真。若與理想的不同,再查看程序,有無原理上的編輯錯誤或沒有查出的輸入錯誤。這次課程設計之后,使我明白了,做任何事情都要認真仔細,不然的話,你會花更多的時間才會做好.課程設計有利于

15、提高我們的動手能力,能把我們所學的書本知識運用到實際生活中去.同時也豐富了我們的業(yè)余生活,提高我們對知識的理解能力。六、附件 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity trafic_light isport (clk,rst:in std_logic; -時鐘信號,復位信號 time:out integer range 0 to 59; -時間信號r1,r2,y1,y2,g1,g2:out std_logic); -交通燈控制信號end trafic_light ; archi

16、tecture rt1 of trafic_light istype state is(r1r2,r1g2,r1y2,r2g1,r2y1);signal n_state ,c_state:state;signal cnt ,init:integer range 0 to 49;signal lock,ov:std_logic;beginstate_reg:process(clk,rst)beginif rst='1'then c_state<=r1r2;elsif clk'event and clk='1'thenc_state <=n_st

17、ate;end if;end process;state_com:process(c_state,ov) -交通燈控制轉換begincase c_state iswhen r1g2=>r1<='1'g2<='1' y1<='0'r2<='0'g2<= '0'y2<='0'init<=9;lock<='1'n_state<=r1g12;when r1g12=>r1<='1'g2<='1

18、' y1<='0'r2<='0'g2<= '0'y2<='0'init<=0;lock<='0'if ov='1' then n_state<=r1y2;else n_state<=r1g21;end if;when r1y2=>r1<='1'y2<='1'g1<='0'r2<='0'y1<='0'g2<='0

19、9;init<=49;lock<='1'n_state<=r1y21;when r1y21=>r1<='1'y2<='1'g1<='0'r2<='0'y1<='0'g2<='0'init<=0;lock<='0'If ov='1' then n_state<=r2g1;else n_state<=r1y21;end if;when r2g1=>r2<=

20、9;1'g1<='1'y1<='0'r1<='0'g2<='0'y2<='0'init<=9;lock<='1'n_state<=r2g11;when r2g11=>r2<='1'g1<='1'y1<='0'r1<='0'g2<='0'y2<='0'init<=0;lock<='0'if ov='1' then n_state<=r2y1;else n_state<=r2

溫馨提示

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

評論

0/150

提交評論