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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  計(jì)算機(jī)硬件設(shè)計(jì)實(shí)訓(xùn)</b></p><p><b>  報(bào) 告</b></p><p>  題目: 具有四種信號(hào)燈的交通燈控制器 </p><p>  班級(jí) </p><p>  學(xué)號(hào)

2、 </p><p>  姓名 </p><p><b>  2012年12月</b></p><p>  具有四種信號(hào)燈的交通燈控制器</p><p><b>  一、總體要求</b></p><p>  初始條件:設(shè)計(jì)一個(gè)具有四種信號(hào)燈的交通燈控制

3、器。設(shè)計(jì)要求是:由一條主干道和一條支干道匯合成十字路口,在每個(gè)入口處設(shè)置紅、綠、黃、左拐允許四盞信號(hào)燈,紅燈亮禁止通行,綠燈亮允許通行,黃燈亮則給行駛中的車輛有時(shí)間停在禁行線外,左拐燈亮允許車輛向左拐彎。信號(hào)燈變換次序?yàn)椋褐髦Ц傻澜惶嬖试S通行,主干道每次放行40S,亮5S紅燈讓行駛中的車輛有時(shí)間停到禁行線外,左拐放行15秒,亮5S紅燈;支干道放行30S,亮5S黃燈,左拐放行15秒,亮5S紅燈……。各計(jì)時(shí)電路為倒計(jì)時(shí)顯示。</p&g

4、t;<p><b>  二、設(shè)計(jì)原理及思想</b></p><p>  根據(jù)設(shè)計(jì)要求和系統(tǒng)所具有的功能,并參考相關(guān)的文獻(xiàn)資料,經(jīng)行方案設(shè)計(jì),可以畫出如下圖所示的交通信號(hào)燈控制器的系統(tǒng)框圖。</p><p>  圖1、具有四種信號(hào)燈的交通燈控制器系統(tǒng)框圖</p><p>  由交通燈控制器系統(tǒng)框圖(圖1)可知,該系統(tǒng)由4個(gè)子模塊組成

5、。其中包括:</p><p><b>  定時(shí)模塊; </b></p><p><b>  主控電路模塊;</b></p><p><b>  譯碼驅(qū)動(dòng)電路模塊;</b></p><p><b>  掃描顯示模塊。</b></p>&l

6、t;p>  以上四個(gè)電路可以分為兩大模塊,即:主控電路及計(jì)時(shí)(定時(shí))模塊和掃描顯示譯碼模塊。</p><p>  三、單元模塊設(shè)計(jì)與仿真</p><p>  1、主控電路及計(jì)時(shí)(定時(shí))模塊</p><p>  控制模塊根據(jù)外部輸入信號(hào)和計(jì)時(shí)模塊產(chǎn)生的輸出信號(hào),產(chǎn)生系統(tǒng)的狀態(tài)機(jī),控制其他部分協(xié)調(diào)工作。計(jì)時(shí)模塊用來設(shè)定主干道和支干道計(jì)時(shí)器的初值,并為掃描顯示譯碼模

7、塊提供倒計(jì)時(shí)時(shí)間。</p><p>  控制及計(jì)時(shí)模塊采用狀態(tài)機(jī)進(jìn)行設(shè)計(jì),可以定義出8種狀態(tài),分別為S0:主干道綠燈,支干道紅燈且禁止通行;S1:主干道黃燈亮,支干道紅燈禁止通行;S2:左拐燈亮,允許左行,支干道紅燈,禁止通行;S3:主干道黃燈,停車;支干道紅燈,禁止通行;S4:主干道紅燈,支干道綠燈。S5:主干道紅燈,支干道黃燈S6:主干道紅燈,支干道左拐燈亮,允許左拐S7:主干道紅燈,支干道黃燈。</p

8、><p><b>  其仿真波形如下:</b></p><p>  圖2、主控電路及計(jì)時(shí)(定時(shí))模塊仿真圖</p><p>  2、掃描顯示譯碼模塊</p><p>  掃描顯示譯碼模塊可以根據(jù)控制信號(hào),驅(qū)動(dòng)交通信號(hào)燈以及倒計(jì)時(shí)數(shù)碼管的顯示,其中數(shù)碼管的顯示采用動(dòng)態(tài)掃描顯示。本模塊采用數(shù)碼顯示管來完成。數(shù)碼顯示管是計(jì)數(shù)器等電

9、路的最好選擇。數(shù)碼管可以用TTL或者CMOS集成電路直接驅(qū)動(dòng)完成。</p><p><b>  仿真波形如下:</b></p><p>  圖3、掃描顯示譯碼模塊仿真圖</p><p><b>  3、頂層文件的編寫</b></p><p>  將以上各個(gè)單元模塊仿真成功后,再進(jìn)行頂層文件的編寫。根

10、據(jù)以上設(shè)計(jì)思路,可以得到如下的頂層文件原理圖</p><p>  圖4、具有四種信號(hào)燈的交通燈控制器的頂層原理圖</p><p><b>  系統(tǒng)輸入信號(hào):</b></p><p>  clk:1kHz的時(shí)鐘信號(hào);</p><p><b>  en:系統(tǒng)使能信號(hào)</b></p><

11、;p><b>  系統(tǒng)輸出信號(hào):</b></p><p>  lampa1:主干道紅燈信號(hào)</p><p>  lampa2:主干道黃燈信號(hào)</p><p>  lampa3:主干道綠燈信號(hào)</p><p>  lampa4:主干道左拐信號(hào)</p><p>  lampb1:主干道紅燈信號(hào)&

12、lt;/p><p>  lampb2:主干道黃燈信號(hào)</p><p>  lampb3:主干道綠燈信號(hào)</p><p>  lampb4:主干道左拐信號(hào)</p><p>  acounth,acountl:主干道計(jì)時(shí)輸出</p><p>  bcounth,bcountl:支干道計(jì)時(shí)輸出</p><p&

13、gt;<b>  仿真波形如下:</b></p><p>  圖5、具有四種信號(hào)燈的交通燈控制器的頂層文件仿真圖(1)</p><p>  圖6、具有四種信號(hào)燈的交通燈控制器的頂層文件仿真圖(2)</p><p><b>  四、結(jié)果及分析</b></p><p><b>  通過仿真可以

14、看到:</b></p><p>  當(dāng)主干道綠燈,支干道紅燈時(shí),主干道倒計(jì)時(shí)高位置數(shù)0100,低位置數(shù)0101;支干道高位置數(shù)0101,低位置數(shù)0000;</p><p>  當(dāng)主干道黃燈,支干道紅燈時(shí),主干道黃燈倒計(jì)時(shí)置數(shù)0101;支干道繼續(xù)剛才的減計(jì)數(shù);</p><p>  當(dāng)主干道紅燈,支干道綠燈時(shí),主干道倒計(jì)時(shí)高位置數(shù)0011,低位置數(shù)0000;

15、支干道高位置數(shù)0010,低位置數(shù)0101;</p><p>  當(dāng)主干道紅燈,支干道黃燈時(shí),支干道黃燈倒計(jì)時(shí)置數(shù)0101;主干道繼續(xù)剛才的減計(jì)數(shù)。</p><p>  在S4狀態(tài)結(jié)束后,自動(dòng)跳回到S0狀態(tài),繼續(xù)判斷支干道是否有車行駛,若有車行駛,則跳轉(zhuǎn)到S1狀態(tài),給高、低位置數(shù),繼續(xù)進(jìn)行減計(jì)時(shí)。</p><p>  系統(tǒng)根據(jù)COUNT的變化自動(dòng)在各狀態(tài)下跳變,當(dāng)co

16、unt為45時(shí),跳變到S2狀態(tài);當(dāng)count為50時(shí),跳變到S3狀態(tài);當(dāng)count為75時(shí),跳變到S4狀態(tài);當(dāng)count為80時(shí),若支干道沒有車跳變到S0狀態(tài),有車則跳變到S1狀態(tài)。</p><p>  五、調(diào)試過程中遇到的問題及解決方法</p><p>  設(shè)計(jì)過程中參考課本后面的附帶的設(shè)計(jì)程序,發(fā)現(xiàn)了書中的一些小瑕疵,在老師的幫助下,加以修改,最終完成了主控電路模塊的仿真。</p

17、><p><b>  錯(cuò)誤:</b></p><p><b>  修改后:</b></p><p><b>  六、收獲與體會(huì)</b></p><p>  本設(shè)計(jì)采用了VHDL硬件描述語言文本輸入方式,在確立總體預(yù)期實(shí)現(xiàn)功能的前提下,分層次進(jìn)行設(shè)計(jì)。實(shí)現(xiàn)了具有四種信號(hào)燈的交通燈控制

18、器,以及時(shí)間的倒計(jì)時(shí)顯示,指揮行人和車輛安全通行。程序中所用到的數(shù)據(jù)均可以根據(jù)實(shí)際情況進(jìn)行設(shè)置,修改靈活方便。通過此次設(shè)計(jì),我對(duì)于VHDL硬件描述語言有了更深入地了解,也在原來所學(xué)的理論基礎(chǔ)上得到了進(jìn)一步地應(yīng)用。但由于經(jīng)驗(yàn)上的不足,有些地方還需要做進(jìn)一步地改善。</p><p><b>  七、附件:程序清單</b></p><p>  1.主控電路及計(jì)時(shí)(定時(shí))模塊

19、</p><p>  LIBRARY ieee;</p><p>  USE ieee.std_logic_1164.all;</p><p>  USE ieee.std_logic_unsigned.all;</p><p>  ENTITY traffic IS</p><p><b>  PORT &

20、lt;/b></p><p><b>  (</b></p><p>  clk,en:IN STD_LOGIC;</p><p>  lampa1,lampa2,lampa3,lampa4,lampb1,lampb2,lampb3,lampb4:OUT STD_LOGIC;</p><p>  acounth,a

21、count1,bcounth,bcount1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)</p><p><b>  );</b></p><p>  END traffic;</p><p>  ARCHITECTURE one OF traffic IS</p><p>  signal tem

22、pa,tempb:std_logic;</p><p>  signal counta,countb:std_logic_vector(2 downto 0);</p><p>  signal numa,numb,ared,ayellow,agreen,aleft,bred,byellow,bgreen,bleft:std_logic_vector(7 downto 0);</p&

23、gt;<p><b>  BEGIN</b></p><p>  com1:process(en)</p><p><b>  begin</b></p><p>  if(en='0')then</p><p>  ared<="01010101&qu

24、ot;;ayellow<="00000101";agreen<="01000000";aleft<="00010101";</p><p>  bred<="01100101";byellow<="00000101";bgreen<="00110000";bl

25、eft<="00010101";</p><p><b>  end if;</b></p><p>  end process com1;</p><p>  acounth<=numa(7 DOWNTO 4);acount1<=numa(3 downto 0);</p><p>

26、  bcounth<=numa(7 downto 4);bcount1<=numb(3 downto 0);</p><p>  com2:process(clk,en,tempa,numa)</p><p><b>  begin</b></p><p>  if(en='1')then</p>&l

27、t;p>  if(tempa='0')then</p><p>  tempa<='1';</p><p>  case counta is</p><p>  when"000"=>numa<=agreen;lampa1<='0';lampa2<='0&

28、#39;;lampa3<='1';lampa4<='0';counta<="001";</p><p>  when"001"=>numa<=ayellow;lampa1<='0';lampa2<='1';lampa3<='0';lampa4<

29、;='0';counta<="010";</p><p>  when"010"=>numa<=aleft;lampa1<='0';lampa2<='0';lampa3<='0';lampa4<='1';counta<="011"

30、;;</p><p>  when"011"=>numa<=ayellow;lampa1<='0';lampa2<='1';lampa3<='0';lampa4<='0';counta<="100";</p><p>  when"10

31、0"=>numa<=ared;lampa1<='1';lampa2<='0';lampa3<='0';lampa4<='0';counta<="000";</p><p>  when others=>lampa1<='1';lampa2<=&#

32、39;0';lampa3<='0';lampa4<='0';</p><p><b>  end case;</b></p><p>  elsif(numa>1)then</p><p>  if(numa(3 downto 0)="0000")then</p

33、><p>  numa(3 downto 0)<="1001";numa(7 downto 4)<=numa(7 downto 4)-1;</p><p><b>  else</b></p><p>  numa(3 downto 0)<=numa(3 downto 0)-1;</p><

34、p>  if(numa="00000010")then tempa<='0';end if;</p><p><b>  end if;</b></p><p><b>  else</b></p><p>  lampa1<='1';lampa2<

35、;='0';lampa3<='0';lampa4<='0';counta<="000";tempa<='0';</p><p><b>  end if;</b></p><p><b>  end if;</b></p>&

36、lt;p>  end process com2;</p><p>  com3:process(clk,en,tempb,numb)</p><p><b>  begin</b></p><p>  if(en='1')then</p><p>  if(tempb='0')the

37、n</p><p>  tempb<='1';</p><p>  case countb is</p><p>  when"000"=>numb<=bgreen;lampb1<='1';lampb2<='0';lampb3<='0';lampb

38、4<='0';countb<="001";</p><p>  when"001"=>numb<=byellow;lampb1<='0';lampb2<='0';lampb3<='1';lampb4<='0';countb<="01

39、0";</p><p>  when"010"=>numb<=bleft;lampb1<='0';lampb2<='1';lampb3<='0';lampb4<='0';countb<="011";</p><p>  when&quo

40、t;011"=>numb<=byellow;lampb1<='0';lampb2<='0';lampb3<='0';lampb4<='1';countb<="100";</p><p>  when"100"=>numb<=bred;lampb1&

41、lt;='0';lampb2<='1';lampb3<='0';lampb4<='0';countb<="000";</p><p>  when others=>lampb1<='1';lampb2<='0';lampb3<='0';

42、lampb4<='0';</p><p><b>  end case;</b></p><p>  elsif(numb>1)then</p><p>  if(numb(3 downto 0)="0000")then</p><p>  numb(3 downto 0)

43、<="1001";numb(7 downto 4)<=numb(7 downto 4)-1;</p><p><b>  else</b></p><p>  numb(3 downto 0)<=numb(3 downto 0)-1;</p><p>  if(numb="00000010&quo

44、t;)then tempb<='0';</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  else</b></p><p>  lampb1<='1';

45、lampb2<='0';lampb3<='0';lampb4<='0';countb<="000";tempb<='0';</p><p><b>  end if;</b></p><p><b>  end if;</b><

46、/p><p>  end process com3;</p><p><b>  END one;</b></p><p>  2.掃描顯示譯碼模塊</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p>&l

47、t;p>  entity led is</p><p>  port(DD:in std_logic_vector(3 downto 0);</p><p>  a,b,c,d,e,f,g:out std_logic );</p><p><b>  end led;</b></p><p>  architect

48、ure one of led is</p><p><b>  begin</b></p><p>  process(DD)</p><p>  variable tt:std_logic_vector(6 downto 0);</p><p><b>  begin</b></p>

49、<p>  case DD is</p><p>  when "0000"=>tt:="0000001";</p><p>  when "0001"=>tt:="1001111";</p><p>  when "0010"=>tt:

50、="0010010";</p><p>  when "0011"=>tt:="0000110";</p><p>  when "0100"=>tt:="1001100";</p><p>  when "0101"=>tt:=

51、"0100100";</p><p>  when "0110"=>tt:="0100000";</p><p>  when "0111"=>tt:="0001111";</p><p>  when "1000"=>tt:=&

52、quot;0000000";</p><p>  when "1001"=>tt:="0001100";</p><p>  when others=>null;</p><p><b>  end case;</b></p><p>  a<=tt(6

溫馨提示

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

評(píng)論

0/150

提交評(píng)論