eda課程設(shè)計(jì)--交通信號燈控制器_第1頁
已閱讀1頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  課 程 設(shè) 計(jì)</p><p>  課程設(shè)計(jì)名稱: EDA課程設(shè)計(jì) </p><p>  專 業(yè) 班 級 : xxxxxxxxxxx </p><p>  學(xué) 生 姓 名 : xxxxx </p><p>  學(xué) 號 : xxxxxxxxxx

2、xxxxx </p><p>  指 導(dǎo) 教 師 : </p><p>  課程設(shè)計(jì)時間: 2011-12-19~2011-12-30 </p><p>  電子信息工程與技術(shù) 專業(yè)課程設(shè)計(jì)任務(wù)書</p><p><b>  1 設(shè)計(jì)任務(wù)及要求</b></p><

3、p>  設(shè)計(jì)任務(wù):模擬十字路口交通信號燈的工作過程,利用實(shí)驗(yàn)板上的兩組紅、黃、綠LED作為交通信號燈,設(shè)計(jì)一個交通信號燈控制器。要求:</p><p>  交通燈從綠變紅時,有4秒黃燈亮的間隔時間;</p><p>  交通燈紅變綠是直接進(jìn)行的,沒有間隔時間;</p><p>  主干道上的綠燈時間為45秒,支干道的綠燈時間為25秒;</p>&

4、lt;p>  在任意時間,顯示每個狀態(tài)到該狀態(tài)結(jié)束所需的時間。</p><p><b>  支干道</b></p><p><b>  主干道</b></p><p>  圖1 路口交通管理示意圖</p><p>  表1 交通信號燈的4種狀態(tài)</p><p><

5、b>  設(shè)計(jì)要求:</b></p><p>  采用VHDL語言編寫程序,并在QUARTUSII工具平臺中進(jìn)行仿真,下載到EDA實(shí)驗(yàn)箱進(jìn)行驗(yàn)證。</p><p>  編寫設(shè)計(jì)報(bào)告,要求包括方案選擇、程序清單、調(diào)試過程、測試結(jié)果及心得體會。</p><p>  2設(shè)計(jì)原理及總體框圖</p><p><b>  設(shè)計(jì)目

6、的:</b></p><p>  學(xué)習(xí)DEA開發(fā)軟件和QuartusII的使用方法,熟悉可編程邏輯器件的使用。通過制作來了解交通燈控制系統(tǒng),交通燈控制系統(tǒng)主要是實(shí)現(xiàn)城市十字交叉路口紅綠燈的控制</p><p><b>  設(shè)計(jì)原理</b></p><p> ?。?)第一模塊:clk時鐘秒脈沖發(fā)生電路</p><p

7、>  在紅綠燈交通信號系統(tǒng)中,大多數(shù)情況是通過自動控制的方式指揮交通的。因此為了避免意外事件的發(fā)生,電路必須給一個穩(wěn)定的時鐘(clock)才能讓系統(tǒng)正常運(yùn)作。</p><p><b>  模塊說明:</b></p><p><b>  系統(tǒng)輸入信號:</b></p><p>  Clk: 由外接信號發(fā)生器提供256

8、的時鐘信號;</p><p>  系統(tǒng)輸出信號: full:產(chǎn)生每秒一個脈沖的信號;</p><p> ?。?)第二模塊:計(jì)數(shù)秒數(shù)選擇電路</p><p>  計(jì)數(shù)電路最主要的功能就是記數(shù)負(fù)責(zé)顯示倒數(shù)的計(jì)數(shù)值,對下一個模塊提供狀態(tài)轉(zhuǎn)換信號。</p><p><b>  模塊說明:</b></p><p

9、>  系統(tǒng)輸入:full: 接收由clk電路的提供的1hz的時鐘脈沖信號;</p><p>  系統(tǒng)輸出信號: tm: 產(chǎn)生顯示電路狀態(tài)轉(zhuǎn)換信號</p><p>  tl:倒計(jì)數(shù)值 秒數(shù)個位變化控制信號</p><p>  th:倒計(jì)數(shù)值 秒數(shù)十位變化控制信號</p><p> ?。?)第三模塊:紅綠燈狀態(tài)轉(zhuǎn)換電路</p>

10、<p>  本電路負(fù)責(zé)紅綠燈的轉(zhuǎn)換。</p><p><b>  模塊說明:</b></p><p>  系統(tǒng)輸入信號:full: 接收由clk電路的提供的1hz的時鐘脈沖信號;</p><p>  tm: 接收計(jì)數(shù)秒數(shù)選擇電路狀態(tài)轉(zhuǎn)換信號;</p><p>  系統(tǒng)輸出信號: comb_out: 負(fù)

11、責(zé)紅綠燈的狀態(tài)顯示。</p><p> ?。?)第四模塊:時間顯示電路</p><p>  本電路負(fù)責(zé)紅綠燈的計(jì)數(shù)時間的顯示。</p><p><b>  模塊說明:</b></p><p>  系統(tǒng)輸入信號:tl:倒計(jì)數(shù)值 秒數(shù)個位變化控制信號;</p><p>  th:倒計(jì)數(shù)值 秒數(shù)十位變化

12、控制信號;</p><p>  系統(tǒng)輸出信號: led7s1: 負(fù)責(zé)紅綠燈的顯示秒數(shù)個位。</p><p>  led7s2: 負(fù)責(zé)紅綠燈的顯示秒數(shù)十位</p><p><b>  總體框圖</b></p><p><b>  時間顯示數(shù)據(jù)輸出</b></p><p>

13、;<b>  紅黃綠燈信號輸出</b></p><p>  圖2 交通信號燈控制器的原理框圖</p><p>  采用VHDL語言輸入的方式實(shí)現(xiàn)交通信號燈控制器</p><p><b>  CLK</b></p><p><b>  時間顯示數(shù)據(jù)輸出</b></p>

14、<p><b>  信號燈輸出</b></p><p>  圖3 交通信號燈控制器程序原理框圖</p><p>  該程序由7個進(jìn)程組成,進(jìn)程P1和P2將CLK信號分頻后產(chǎn)生1秒信號,進(jìn)程P3、P4、P5構(gòu)成兩個帶有預(yù)置數(shù)功能的十進(jìn)制計(jì)數(shù)器,其中P4產(chǎn)生允許十位計(jì)數(shù)器計(jì)數(shù)的控制信號。進(jìn)程P6實(shí)現(xiàn)狀態(tài)轉(zhuǎn)換和產(chǎn)生狀態(tài)轉(zhuǎn)換的控制信號,進(jìn)程P7產(chǎn)生次態(tài)信號和信號

15、燈輸出信號,以及每一個狀態(tài)的時間值。</p><p><b>  3 程序設(shè)計(jì)</b></p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p>

16、<p>  ENTITY traffic IS </p><p>  PORT (clk:in std_logic;</p><p>  led7s1:out std_logic_vector(6 downto 0);</p><p>  led7s2:out std_logic_vector(6 downto 0);</p><p&g

17、t;  comb_out:out std_logic_vector(5 downto 0));</p><p><b>  END;</b></p><p>  ARCHITECTURE one OF traffic IS</p><p>  TYPE dm IS (s0,s1,s2,s3);</p><p>  SIg

18、nal current_state,next_state:dm;</p><p>  SIGNAL FULL : STD_LOGIC;</p><p>  SIGNAL tl :STD_LOGIC_VECTOR(6 DOWNTO 0);</p><p>  SIGNAL th:STD_LOGIC_VECTOR(1 DOWNTO 0);</p>&l

19、t;p>  SIGNAL tm :STD_LOGIC_VECTOR(6 DOWNTO 0);</p><p>  SIGNAL TIME :STD_LOGIC_VECTOR(6 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  P_REG: PROCESS(CLK)</p>&

20、lt;p>  VARIABLE CNT8:STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  IF CLK'EVENT AND CLK='1' THEN</p><p>  IF CNT8 = "11111111" TH

21、EN</p><p>  CNT8:="01111111";</p><p>  FULL<='1';</p><p>  ELSE CNT8 := CNT8+1;</p><p>  FULL <= '0';</p><p>  END IF;

22、END IF;</p><p>  END PROCESS P_REG;</p><p>  PROCESS(full)</p><p><b>  BEGIN</b></p><p>  IF full'EVENT AND full='1' THEN</p><p>  

23、IF TIME<"1000011" THEN </p><p>  TIME<=TIME+1;</p><p>  ELSe TIME <="0000000"; </p><p><b>  END IF;</b></p><p><b>  END I

24、F;</b></p><p>  END PROCESS;</p><p>  REG:process( full,current_state)</p><p><b>  BEGIN</b></p><p>  IF full='1' AND full'EVENT THEN <

25、/p><p>  current_state<=next_state;</p><p><b>  END IF;</b></p><p>  END process;</p><p>  COM:process(current_state, time)</p><p><b>  b

26、egin</b></p><p>  case current_state is</p><p>  when s0=>comb_out<="001100";tm<=39-time;</p><p>  if time=39 then next_state<=s1;</p><p>

27、  else next_state<=s0;</p><p><b>  end if;</b></p><p>  when s1=>comb_out<="010100";tm<=43-time;</p><p>  if time=43 then next_state<=s2;</p

28、><p>  else next_state<=s1;</p><p><b>  end if;</b></p><p>  when s2=>comb_out<="100010";tm<=63-time;</p><p>  if time=63 then next_stat

29、e<=s3;</p><p>  else next_state<=s2;</p><p><b>  end if;</b></p><p>  when s3=>comb_out<="100001";tm<=67-time;</p><p>  if time=67

30、then next_state<=s0;</p><p>  else next_state<=s3;</p><p><b>  end if;</b></p><p><b>  end case;</b></p><p>  end process;</p><

31、;p>  PROCESS(tm)</p><p><b>  BEGIN </b></p><p>  IF tm>=30 THEN th<="11";tl<=tm-30;</p><p>  ELSIF tm>=20 THEN th<="10";tl<=tm-2

32、0;</p><p>  ELSIF tm>=10 THEN th<="01";tl<=tm-10;</p><p>  ELSE th<="00";tl<=tm;</p><p><b>  END IF;</b></p><p>  END PR

33、OCESS;</p><p>  process(th,tl)</p><p><b>  begin</b></p><p>  case th is</p><p>  when"00"=>led7s1<="0111111";</p><p>

34、;  when"01"=>led7s1<="0000110";</p><p>  when"10"=>led7s1<="1011011";</p><p>  when"11"=>led7s1<="1001111";</p>

35、;<p>  when others=>null;</p><p><b>  end case;</b></p><p>  case tl is </p><p>  when "0000000"=>led7s2<="0111111";</p><p

36、>  when"0000001"=>led7s2<="0000110";</p><p>  when "0000010"=>led7s2<="1011011";</p><p>  when"0000011"=>led7s2<="1001

37、111";</p><p>  when"0000100"=>led7s2<="1100110";</p><p>  when "0000101"=>led7s2<="1101101";</p><p>  when "0000110&quo

38、t;=>led7s2<="1111101";</p><p>  when"0000111"=>led7s2<="0000111";</p><p>  when "0001000"=>led7s2<="1111111";</p><p

39、>  when "0001001"=>led7s2<="1101111";</p><p>  when others=>null;</p><p><b>  end case;</b></p><p>  end process;</p><p><

40、;b>  end;</b></p><p><b>  4 編譯及仿真</b></p><p>  CLK為1KHZ系統(tǒng)時鐘脈沖</p><p>  CAR為支干道車輛行駛情況,高電平為有車行駛,低電平為無車行駛</p><p>  LED為交通燈發(fā)光情況</p><p>  S

41、EL為數(shù)碼管位碼掃描</p><p><b>  SEG為數(shù)碼管段碼</b></p><p>  CLK綁定時鐘1KHZ</p><p><b>  CAR綁定DK4</b></p><p>  LED[0]綁定LED6;--支干道紅燈</p><p>  LED[1]綁定L

42、ED7;--支干道黃燈</p><p>  LED[2]綁定LED8;--支干道綠燈</p><p>  LED[3]綁定LED1;--主干道紅燈</p><p>  LED[4]綁定LED2;--主干道黃燈</p><p>  LED[5]綁定LED3;--主干道綠燈</p><p>  SEL[0]綁定LI0;&l

43、t;/p><p>  SEL[1]綁定LI1;</p><p>  SEL[2]綁定LI2。</p><p>  SEG[0]綁定G8;</p><p>  SEG[1]綁定F8;</p><p>  SEG[2]綁定E8;</p><p>  SEG[3]綁定D8;</p><

44、p>  SEG[4]綁定C8;</p><p>  SEG[5]綁定B8;</p><p>  SEG[6]綁定A8;</p><p><b>  仿真圖如下</b></p><p>  5 硬件調(diào)試與結(jié)果分析</p><p>  接下來就要選擇目標(biāo)器件并對相應(yīng)的引腳進(jìn)行鎖定了,我們選擇的器

45、件為cyclone系列的EP1C3T144芯片,引腳鎖定方法如下圖所示。將未使用的管腳設(shè)置為三態(tài)輸入(一定要設(shè)置,否則可能會損壞芯片)。</p><p>  本實(shí)驗(yàn)只能用采用模式6下載調(diào)試,一切正常</p><p>  將程序下載到實(shí)驗(yàn)板后,CAR置于低電平后,可以看到LED燈的顯示情況為主干道亮綠燈,支干道亮紅燈,主干道數(shù)碼管顯示45秒,支干道數(shù)碼管顯示50秒。但支干道有車時,把CAR置

46、于高電平,可以看到主、支干道的數(shù)碼管開始倒計(jì)時;主干道倒計(jì)時結(jié)束后再進(jìn)行4秒倒計(jì)時,并且交通燈變?yōu)辄S燈;當(dāng)主干道倒計(jì)時結(jié)束后,主干道數(shù)碼管顯示30,支干道數(shù)碼管顯示25,主干道變?yōu)榧t燈,支干道變?yōu)榫G燈,繼續(xù)進(jìn)行倒計(jì)時;支干道倒計(jì)時結(jié)束后再經(jīng)行4秒倒計(jì)時,交通燈變?yōu)辄S燈;支干道倒計(jì)時結(jié)束后再回到初始狀態(tài)。</p><p>  從實(shí)驗(yàn)板上可以看出硬件測試下的效果達(dá)到了設(shè)計(jì)的要求,能夠?qū)崿F(xiàn)交通信號燈控制器的基本功能。但

47、是,由于實(shí)驗(yàn)板的系統(tǒng)時鐘不穩(wěn)定,導(dǎo)致數(shù)碼管的掃描有時會出現(xiàn)閃動的現(xiàn)象,在更換了實(shí)驗(yàn)板后可以看出,數(shù)碼管的掃描基本穩(wěn)定,在視覺上不會出現(xiàn)閃動的情況。或者可以將系統(tǒng)的時鐘頻率改為2KHZ,更改分頻模塊后再進(jìn)行編譯下載,這樣可以加快數(shù)碼管掃描的速度,從而達(dá)到消除視覺上閃動的現(xiàn)象。</p><p><b>  6 參考文獻(xiàn)</b></p><p>  VHDL數(shù)字控制系統(tǒng)設(shè)計(jì)

48、 電子工業(yè)出版社</p><p>  EDA技術(shù)與VHDL 清華大學(xué)出版社</p><p>  數(shù)字原理與設(shè)計(jì) 清華大學(xué)出版社</p><p>  FPGA EP1C3T144的模式結(jié)構(gòu)圖與引腳對應(yīng)資料

49、 網(wǎng)上資料 </p><p><b>  心得體會</b></p><p>  通過這次課程設(shè)計(jì),我進(jìn)一步加深了對電子設(shè)計(jì)自動化的了解。并進(jìn)一步熟練了對QuartusII軟件的操作。在編寫程序的過程中,遇到了很多問題,使我發(fā)現(xiàn)自己以前學(xué)習(xí)上存在的不足。通過與同學(xué)探討和請教老師,終于把問題都解決了,并加深了對交通燈原理和設(shè)計(jì)思路的了解。同時也掌握了做課程設(shè)計(jì)的一

50、般流程,為以后的設(shè)計(jì)積累了一定的經(jīng)驗(yàn)。做課程設(shè)計(jì)時,先查閱相關(guān)知識,把原理吃透,確定一個大的設(shè)計(jì)方向,在按照這個方向分模塊的把要實(shí)現(xiàn)的功能用流程圖的形式展示。最后參照每個模塊把輸入和輸出引腳設(shè)定,運(yùn)用我們所學(xué)的VHDL語言進(jìn)行編程。</p><p>  在波形仿真的過程中,同樣遇到了困難,有的時候,由于END TIME的時間修改的太大,會出現(xiàn)仿真時間過長的問題,這個時候應(yīng)該要把END TIME的時間相應(yīng)的改小,或

51、是修改系統(tǒng)時鐘的頻率。</p><p>  在設(shè)計(jì)的過程中還應(yīng)該多聯(lián)系下實(shí)際情況,要了解實(shí)際情況下交通信號燈的工作情況,才能更好的完成此次的課程設(shè)計(jì)。在今后的工作和學(xué)習(xí)中,我們不能僅僅把目光停留在課本上,要多理論聯(lián)系實(shí)際。有的時候,理論上是正確的東西放到現(xiàn)實(shí)中去,可能由于種種因素的制約,并不能達(dá)到實(shí)際的效果,還需要我們進(jìn)行相應(yīng)的修改才能完成要求。這次的課程設(shè)計(jì)使我鞏固了以前學(xué)習(xí)到的知識,還使我掌握了以前沒有掌握的

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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

提交評論