交通燈控制器設(shè)計-EDA課程設(shè)計_第1頁
交通燈控制器設(shè)計-EDA課程設(shè)計_第2頁
交通燈控制器設(shè)計-EDA課程設(shè)計_第3頁
交通燈控制器設(shè)計-EDA課程設(shè)計_第4頁
交通燈控制器設(shè)計-EDA課程設(shè)計_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

東北石油大學(xué)課程設(shè)計課程課程EDA技術(shù)課程設(shè)計題目交通燈控制器院系電子科學(xué)學(xué)院專業(yè)班級電子信息工程學(xué)生姓名學(xué)生學(xué)號指導(dǎo)教師2011東北石油大學(xué)課程設(shè)計任務(wù)書課程EDA技術(shù)課程設(shè)計題目交通燈控制器專業(yè)電子信息工程姓名學(xué)號主要內(nèi)容、根本要求、主要參考資料等主要內(nèi)容:設(shè)計一個交通信號燈控制器,由一條主干道和一條支干道集合成十字路口,在每個入口處設(shè)置紅、綠、黃三色信號燈,紅燈亮禁止通行,綠燈亮允許通行,黃燈亮則給行駛中的車輛有時間停在禁行線外。根本要求:1、紅、綠、黃發(fā)光二極管作信號燈,用傳感器或邏輯開關(guān)作檢測車輛是否到來的信號,實(shí)驗(yàn)電路用邏輯開關(guān)代替。2、主干道處于常允許通行的狀態(tài),支干道有車來時才允許通行。主干道亮綠燈時,支干道亮紅燈;支干道亮綠燈時,主干道亮紅燈。3、主、支干道均有車時,兩者交替允許通行,主干道每次放行45秒,支干道每次放行25秒,設(shè)立45秒、25秒計時、顯示電路,選擇1HZ時鐘脈沖作為系統(tǒng)時鐘。4、在每次由綠燈亮到紅燈亮的轉(zhuǎn)換過程中,要亮5秒黃燈作為過渡,使行駛中的車輛有時間停到禁行線外,設(shè)立5秒計時、顯示電路。主要參考資料:[1]潘松著.EDA技術(shù)實(shí)用教程(第二版).北京:科學(xué)出版社,2005.[2]康華光主編.電子技術(shù)根底模擬局部.北京:高教出版社,2006.[3]閻石主編.數(shù)字電子技術(shù)根底.北京:高教出版社,2003.完成期限指導(dǎo)教師專業(yè)負(fù)責(zé)人201一、總體設(shè)計思想1.根本原理該系統(tǒng)主要由計數(shù)模塊、控制模塊、分頻模塊、分位模塊以及顯示電路構(gòu)成。其中分頻模塊主要將系統(tǒng)輸入的基準(zhǔn)時鐘信號轉(zhuǎn)換是1Hz的鼓勵信號。驅(qū)動計數(shù)模塊和控制模塊工作,控制模塊根據(jù)計數(shù)器的計數(shù)情況對交通燈的亮滅及持續(xù)時間進(jìn)行控制,并通過分位電路將燈亮?xí)r間以倒計時的形式通過數(shù)碼管顯示出來。2.設(shè)計框圖CLK時鐘分頻模塊1kHZCLK時鐘分頻模塊1kHZ1HZCAR交通燈控制計時模塊支干道車輛檢測CAR交通燈控制計時模塊掃描顯示譯碼模塊1kHZ數(shù)碼管及LED信號掃描顯示譯碼模塊數(shù)碼管段碼數(shù)碼管段碼LED顯示數(shù)碼管位碼二、設(shè)計步驟和調(diào)試過程1、總體設(shè)計電路2、模塊設(shè)計和相應(yīng)模塊程序《1》模塊設(shè)計〔1〕分頻器分頻器實(shí)現(xiàn)的是將高頻時鐘信號轉(zhuǎn)換成底頻的時鐘信號,用于觸發(fā)控制器、計數(shù)器和掃描顯示電路。該分頻器實(shí)現(xiàn)的是一千分頻,將一千赫茲的時鐘信號分頻成一赫茲的時鐘信號?!?〕控制器設(shè)計控制器的作用是根據(jù)計數(shù)器的計數(shù)值控制發(fā)光二極管的亮、滅,以及輸出倒計時數(shù)值給七段數(shù)碼管的分位譯碼電路。本控制器可以有兩種設(shè)計方法,一種是利用時鐘沿的下降沿讀取前級計數(shù)器的計數(shù)值,然后作出反響;另一種則是將本模塊設(shè)計成純組合邏輯電路,不需要時鐘驅(qū)動?!?〕計數(shù)器設(shè)計這里需要的計數(shù)器的計數(shù)范圍為0-45。計到45后,下一個時鐘沿回復(fù)到0,開始下一輪計數(shù)。〔4〕分位譯碼電路設(shè)計-1因?yàn)榭刂破鬏敵龅牡接嫊r數(shù)值可能是1位或者2位十進(jìn)制數(shù),所以在七段數(shù)碼管的譯碼電路前要加上分位電路。與控制器一樣,分位電路同樣可以由時鐘驅(qū)動,也可以設(shè)計成純組合邏輯電路??刂破髦?,引入了存放器。為了讓讀者開拓眼界,分位電路就用組合邏輯電路實(shí)現(xiàn)?!?〕分位譯碼電路設(shè)計—2〔6〕數(shù)碼管驅(qū)動設(shè)計串行連接,即每個數(shù)碼管對應(yīng)的引腳都接在一起,通過控制公共端為高電平控制相應(yīng)數(shù)碼管的亮、滅〔共陰極數(shù)碼管的公共端為高電平時,LED不亮;共陽極的公共端為低電平時,LED不亮〕?!?〕下列圖為交通燈控制器的頂層文件連接圖《2》相應(yīng)模塊程序〔1〕分頻器的設(shè)計LIBRARYIEEE;USEIEEE.Std_Logic_1164.ALL;ENTITYFreDeviderISPORT(Clkin:INStd_Logic;Clkout:OUTStd_Logic);END;ARCHITECTUREDeviderOFFreDeviderISCONSTANTN:Integer:=499;signalcounter:Integerrange0toN;signalClk:Std_Logic;BEGINPROCESS(Clkin)beginIFrising_edge(Clkin)THENIFCounter=Nthencounter<=0;Clk<=notclk;elsecounter<=counter+1;endif;endif;endprocess;clkout<=clk;end;〔2〕控制設(shè)計控制器的作用是根據(jù)計數(shù)器的計數(shù)值控制發(fā)光二極管的亮、滅,以及輸出倒計時數(shù)值給七段譯管的分譯碼電路。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYcountrollerISPORT(Clock:INSTD_LOGIC;Hold:instd_logic;CountNum:inINTEGERRANGE0TO89;NumA,NumB:outINTEGERRANGE0TO45;RedA,GreenA,YellowA:outstd_logic;RedB,GreenB,YellowB:outstd_logic);END;ARCHITECTUREbehaviorOFCountrollerISBEGINprocess(Clock)BEGINIFfalling_edge(Clock)THENIFHold='1'THENRedA<='1';RedB<='1';GreenA<='0';GreenA<='0';YellowA<='0';YellowB<='0';ELSIFCountNum<=39THENNumA<=40-CountNum;RedA<='0';GreenA<='1';YellowA<='0';ELSIFCountNum<=44THENNumA<=45-CountNum;RedA<='0';GreenA<='0';YellowA<='1';ELSENumA<=90-CountNum;RedA<='1';GreenA<='0';YellowA<='0';ENDIF;IFCountNum<=44THENNumB<=45-CountNum;RedB<='1';GreenB<='0';YellowB<='0';ELSIFCountNum<=84THENNumB<=85-CountNum;RedB<='0';GreenB<='1';YellowB<='0';ELSeNumB<=90-CountNum;RedB<='0';GreenB<='0';YellowB<='1';ENDIF;ENDIF;ENDPROCESS;END;〔3〕計數(shù)器的設(shè)計這里計數(shù)器的計數(shù)范圍為0—45S。計到45后,下一個時鐘沿回復(fù)到0,開始下一輪計數(shù)。程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYcounterISPORT(clock:INSTD_LOGIC;reset:instd_logic;Hold:instd_logic;countNum:BuFFeRINTEGERRANGE0TO90);END;ARCHITECTUREbehaviorOFcounterISBEGINprocess(reset,Clock)BEGINIFReset='1'THENcountNum<=0;ELSIFrising_edge(Clock)THENIFHold='1'thencountNum<=countNum;ELSEIFcountNum=90THENcountNum<=0;ELSEcountNum<=countNum+1;ENDIF;ENDIF;ENDIF;ENDPROCESS;END;〔4〕分位譯碼電路設(shè)計--1LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYFenweiISPORT(Numin:INintegerRANGE0TO45;NumA,NumB:OUTIntegerRANGE0to9);END;ARCHITECTUREbehaviorOFFenweiISBEGINprocess(Numin)BEGINIFNumin>=40THENNumA<=4;NumB<=Numin-40;ELSIFNumin>=30THENNumA<=3;NumB<=Numin-30;ELSIFNumin>=20THENNumA<=2;NumB<=Numin-20;ELSIFNumin>=10THENNumA<=1;NumB<=Numin-10;ELSENumA<=0;NumB<=Numin;ENDIF;ENDPROCESS;END;〔5〕分位譯碼電路設(shè)計—2USEIEEE.STD_LOGIC_1164.ALL;ENTITYFenwei2ISPORT(Numin:INintegerRANGE0TO45;NumC,NumD:OUTIntegerRANGE0to9);END;ARCHITECTUREbehaviorOFFenwei2ISBEGINprocess(Numin)BEGINIFNumin>=40THENNumC<=4;NumD<=Numin-40;ELSIFNumin>=30THENNumC<=3;NumD<=Numin-30;ELSIFNumin>=20THENNumC<=2;NumD<=Numin-20;ELSIFNumin>=10THENNumC<=1;NumD<=Numin-10;ELSENumC<=0;NumD<=Numin;ENDIF;ENDPROCESS;END;〔6〕數(shù)碼管驅(qū)動設(shè)計LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYbcd_dataISPORT(bcd_data:inSTD_LOGIC_VECTOR(3downto0);segout:outSTD_LOGIC_VECTOR(6downto0));END;ARCHITECTUREbehaviorOFbcd_dataISBEGINprocess(bcd_data)BEGINcasebcd_dataiswhen"0000"=>segout<="1111110";when"0001"=>segout<="0110000";when"0010"=>segout<="1101101";when"0011"=>segout<="1111001";when"0100"=>segout<="0110011";when"0101"=>segout<="1011011";when"0110"=>segout<="0011111";when"0111"=>segout<="1110000";when"1000"=>segout<="1111111";when"1001"=>segout<="1110011";whenothers=>null;ENDCASE;ENDPROCESS;END;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_unsigned.ALL;ENTITYdtsmISPORT(clk:inSTD_LOGIC;NumA,NumB,NumC,NumD:inSTD_LOGIC_VECTOR(3downto0);segout1:outSTD_LOGIC_VECTOR(6downto0);led_sel:outSTD_LOGIC_VECTOR(3downto0));ENDdtsm;architecturebhvofdtsmiscomponentbcd_dataisport(bcd_data:inSTD_LOGIC_VECTOR(3downto0);segout:outSTD_LOGIC_VECTOR(6downto0));endcomponent;signalx:STD_LOGIC_VECTOR(3downto0);signalq:STD_LOGIC_VECTOR(1downto0);beginp1:process(clk)beginifclk'eventandclk='1'thenQ<=Q+'1';endif;endprocess;p2:process(Q)begincaseQiswhen"00"=>led_sel<="1110";x<=NumD;when"01"=>led_sel<="1101";x<=NumC;when"10"=>led_sel<="1011";x<=NumB;when"11"=>led_sel<="0111";x<=NumA;whenothers=>null;endcase;endprocess;u1:bcd_dataPORTmap(bcd_data=>x,segout=>segout1);end;3、仿真及仿真結(jié)果分析交通燈控制單元電路分析及仿真此單元電路主要完成控制交通燈的功能,即根據(jù)主,支干道傳感信號sm,sb以及來自時基發(fā)生電路的時鐘信號clk,發(fā)出主,支干道指示燈的控制信號,同時向各定時單元,顯示控制單元發(fā)出使能控制信號en1,en2,en3,en4。支干道無車通行時,主干道一直亮綠燈,當(dāng)sb感應(yīng)到支干道來車時,主干道亮45s綠燈之后,亮5s黃燈,開始亮紅燈,而支干道隨之由之前的紅燈變?yōu)榫G燈亮25s,之后亮5s黃燈,最后變?yōu)榧t燈,如此交替進(jìn)行下去。4、實(shí)驗(yàn)調(diào)試結(jié)果仿真后可以得到最終的結(jié)果:開始時,支干道沒有車輛行駛。主干道處于常通行狀態(tài),支干道處于禁止?fàn)顟B(tài);當(dāng)支干道有車來時,主干道亮綠燈,經(jīng)行45秒倒計時,支干道亮紅燈,經(jīng)行25秒倒計時;主干道45秒倒計時結(jié)束后跳變到黃燈,進(jìn)行5秒倒計時,支干道繼續(xù)亮紅燈,進(jìn)行倒計時;主干道5秒倒計時結(jié)束后跳變到紅燈,經(jīng)行45秒倒計時,支干道跳變到綠燈,進(jìn)行25秒倒計時;支干道25秒倒計時結(jié)束后跳變到黃燈,進(jìn)行5秒倒計時,主干道繼續(xù)亮紅燈,進(jìn)行倒計時;支干道5秒倒計時結(jié)束后,判斷支干道是否有車,假設(shè)有車跳變到S1狀態(tài),沒有車跳變到S0狀態(tài)驗(yàn)證了設(shè)計完成了預(yù)定功能。三、結(jié)論及心得體會EDA設(shè)計我感覺程序調(diào)試最重要,試驗(yàn)軟件、硬件熟悉其次。我

溫馨提示

  • 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

提交評論