交通燈設(shè)計(jì)完整版本_第1頁
交通燈設(shè)計(jì)完整版本_第2頁
交通燈設(shè)計(jì)完整版本_第3頁
交通燈設(shè)計(jì)完整版本_第4頁
交通燈設(shè)計(jì)完整版本_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

南昌大學(xué)實(shí)驗(yàn)報告學(xué)生姓名:學(xué)號專業(yè)班級:電子053班實(shí)驗(yàn)類型:□驗(yàn)證□綜合■設(shè)計(jì)□創(chuàng)新實(shí)驗(yàn)日期:2007-12-5實(shí)驗(yàn)五十字路口交通燈控制器設(shè)計(jì)實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)較復(fù)雜數(shù)字電路系統(tǒng)的設(shè)計(jì);熟悉QuartusⅡ軟件的使用方法;學(xué)習(xí)VHDL基本邏輯電路和狀態(tài)機(jī)電路的綜合設(shè)計(jì)應(yīng)用。實(shí)驗(yàn)基本原理本實(shí)驗(yàn)中主要應(yīng)用了狀態(tài)機(jī)以及減法器的設(shè)計(jì)原理。在狀態(tài)連續(xù)變化的數(shù)字系統(tǒng)設(shè)計(jì)中,采用狀態(tài)機(jī)的設(shè)計(jì)思想有利于提高設(shè)計(jì)效率,增加程序的可讀性,減少錯誤的發(fā)生幾率。同時,狀態(tài)機(jī)的設(shè)計(jì)方法也是數(shù)字系統(tǒng)中一種最常用的設(shè)計(jì)方法。一般來說,標(biāo)準(zhǔn)狀態(tài)機(jī)可以分為穆爾(Moore)機(jī)和米利(Mealy)機(jī)兩種。在穆爾機(jī)中,其輸出僅僅是當(dāng)前狀態(tài)值的函數(shù),并且僅在時鐘上升沿到來時才發(fā)生變化。米利機(jī)的輸出則是當(dāng)前狀態(tài)值、當(dāng)前輸出值和當(dāng)前輸入值的函數(shù)。實(shí)驗(yàn)內(nèi)容設(shè)計(jì)并調(diào)試好一個由一條主干道和一條鄉(xiāng)間公路的匯合點(diǎn)形成的十字交叉路口的交通燈控制器,具體要求如下:有MR(主紅)、MY(主黃)、MG(主綠)、CR(鄉(xiāng)紅)、CY(鄉(xiāng)黃)、CG(鄉(xiāng)綠)六盞交通燈需要控制;交通燈由綠轉(zhuǎn)紅有4秒黃燈亮的間隔時間,由紅轉(zhuǎn)綠沒有間隔時間;系統(tǒng)有MRCY、MRCG、MYCR、MGCR四個狀態(tài);鄉(xiāng)間公路右側(cè)各埋有一個傳感器,當(dāng)有車輛通過鄉(xiāng)間公路時,發(fā)出請求信號S=1,其余時間S=0;平時系統(tǒng)停留在MGCR(主干道通行)狀態(tài),一旦S信號有效,經(jīng)MYCR(黃燈狀態(tài))轉(zhuǎn)入MRCG(鄉(xiāng)間公路通行)狀態(tài),但要保證MGCR的狀態(tài)不得短于一分鐘;一旦S信號無效,系統(tǒng)脫離MRCG狀態(tài)。隨即經(jīng)MRCY(黃燈狀態(tài))進(jìn)入MGCR狀態(tài),即使S信號一直有效,MRCG狀態(tài)也不得長于20秒鐘。主要儀器設(shè)備及耗材PC機(jī)一臺、QuartusII軟件、EDA實(shí)驗(yàn)箱一臺、下載電纜一根(已接好)導(dǎo)線若干。實(shí)驗(yàn)步驟用文本輸入法設(shè)計(jì)交通信號控制器由實(shí)驗(yàn)要求寫出設(shè)計(jì)思路如下:主、鄉(xiāng)道各設(shè)有一個綠、黃、紅指示燈,兩個顯示數(shù)碼管。主干道處于常允許通行狀態(tài),而鄉(xiāng)道有車來才允許通行。當(dāng)主干道允許通行亮綠燈時,鄉(xiāng)道亮紅燈。而鄉(xiāng)道允許通行亮綠燈時,主干道亮紅燈。當(dāng)主、鄉(xiāng)道均有車時,兩者交替允許通行,主干道每次放行60s,支干道每次放行20s,在每次由亮綠燈變成亮紅燈的轉(zhuǎn)換過程中,要亮4s的黃燈作為過渡,并進(jìn)行減計(jì)時顯示。整個交通控制器的狀態(tài)轉(zhuǎn)換圖如下圖示(僅畫出主干道狀態(tài)轉(zhuǎn)換圖,鄉(xiāng)道類似):主干道狀態(tài)轉(zhuǎn)換圖S=0立刻轉(zhuǎn)換下一狀態(tài)S=0立刻轉(zhuǎn)換下一狀態(tài)S=1S=1S=0S=0S=1STEP0系統(tǒng)下載,主干道開始60s倒計(jì)時,不論S有無信號,皆為MGCR狀態(tài)。判斷SSTEP1保持MGCR狀態(tài),顯示保持4秒。STEP2轉(zhuǎn)入MYCR狀態(tài),開始4s倒計(jì)時STEP3轉(zhuǎn)入MRCG狀態(tài),開始20s倒計(jì)時判斷SSTEP4轉(zhuǎn)入MRCY狀態(tài),開始4s倒計(jì)時打開QuartusII軟件,進(jìn)入編輯環(huán)境。充分理解狀態(tài)轉(zhuǎn)換圖,根據(jù)狀態(tài)轉(zhuǎn)換圖設(shè)計(jì)出相應(yīng)的應(yīng)用狀態(tài)機(jī)的交通信號控制器程序。打開QuartusII軟件,進(jìn)入編輯環(huán)境。創(chuàng)建新的文本文件,命名為traffic。編寫文本如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitytrafficisport(clk,ena,s:instd_logic;--時鐘,使能,傳感器S輸入信號mql,mqh,cql,cqh:bufferstd_logic_vector(3downto0);--計(jì)數(shù)顯示信號mr,my,mg,cr,cy,cg:outstd_logic);--紅綠燈信號輸出endtraffic;architectureoneoftrafficissignalmq:integerrange0to4;signalcq:integerrange0to5;beginprocess(clk,ena,s)beginifena='1'thenifrising_edge(clk)thencasemqis--主干道狀態(tài)when0=>--MRCG狀態(tài)ifs='1'then--判斷S值ifmql=0then--倒計(jì)時減法計(jì)數(shù)mql<="1001";ifmqh>0thenmqh<=mqh-1;elsemq<=1;mql<="1001";mqh<="0101";mr<='0';my<='0';mg<='1';endif;--倒計(jì)時結(jié)束,將指向下一狀態(tài)并賦初值elsemql<=mql-1;endif;elsemq<=4;mql<="0011";mqh<="0000";mr<='1';my<='0';mg<='0';endif;when1=>--MGCR狀態(tài)casesiswhen'1'=>ifmql=0thenmql<="1001";ifmqh>0thenmqh<=mqh-1;elsemq<=2;mql<="0011";mqh<="0000";mr<='0';my<='1';mg<='0';endif;elsemql<=mql-1;endif;when'0'=>ifmql=0thenmql<="1001";ifmqh>0thenmqh<=mqh-1;elsemq<=3;mql<="0011";mqh<="0000";mr<='0';my<='0';mg<='1';endif;elsemql<=mql-1;endif;whenothers=>null;endcase;when2=>--MYCR狀態(tài)ifmql>0thenmql<=mql-1;elsemq<=0;mql<="0011";mqh<="0010";mr<='1';my<='0';mg<='0';endif;when3=>--MGCR狀態(tài)ifs='0'then--S無信號,保持狀態(tài)mql<="0011";mqh<="0000";mr<='0';my<='0';mg<='1';elsemq<=2;mql<="0011";mqh<="0000";mr<='0';my<='1';mg<='0';--一旦S有信號指向下一狀態(tài)endif;when4=>--MRCY狀態(tài)ifmql>0thenmql<=mql-1;elsemq<=1;mql<="1001";mqh<="0101";mr<='0';my<='0';mg<='1';endif;whenothers=>null;endcase;casecqis--鄉(xiāng)道狀態(tài)when0=>cq<=1;cql<="0011";cqh<="0110";cr<='1';cy<='0';cg<='0';when1=>casesiswhen'1'=>ifcql=0thencql<="1001";ifcqh>0thencqh<=cqh-1;endif;elsecql<=cql-1;ifcql="0100"andcqh="0000"thencq<=2;cql<="0011";cqh<="0000";cr<='1';cy<='0';cg<='0';endif;endif;when'0'=>ifcql=0thencql<="1001";ifcqh>0thencqh<=cqh-1;endif;elsecql<=cql-1;ifcql="0100"andcqh="0000"thencq<=5;cql<="0011";cqh<="0000";cr<='1';cy<='0';cg<='0';endif;endif;whenothers=>null;endcase;when2=>ifcql>0thencql<=cql-1;elsecq<=3;cql<="1001";cqh<="0001";cr<='0';cy<='0';cg<='1';endif;when3=>ifs='1'thenifcql=0thencql<="1001";ifcqh>0thencqh<=cqh-1;elsecq<=4;cql<="0011";cqh<="0000";cr<='0';cy<='1';cg<='0';endif;elsecql<=cql-1;endif;elsecq<=4;cql<="0011";cqh<="0000";cr<='0';cy<='1';cg<='0';endif;when4=>ifcql>0thencql<=cql-1;elsecq<=1;cql<="0011";cqh<="0110";cr<='1';cy<='0';cg<='0';endif;when5=>ifs='0'thencql<="0011";cqh<="0000";cr<='1';cy<='0';cg<='0';elsecq<=2;cql<="0011";cqh<="0000";cr<='1';cy<='0';cg<='0';endif;whenothers=>null;endcase;endif;endif;endprocess;endone;對文件保存并進(jìn)行編譯仿真,判斷其正確性,并將正確的文件進(jìn)行元件例化(頂層文件),生成通用符號文件(CreateSymbolFilesforCurrentFile)。如右圖示:用文本輸入法設(shè)計(jì)分頻計(jì)數(shù)器和動態(tài)數(shù)碼管掃描輸出文件由本實(shí)驗(yàn)要求用數(shù)碼管顯示倒數(shù)計(jì)時計(jì)數(shù),故還要設(shè)計(jì)分頻計(jì)數(shù)器和動態(tài)數(shù)碼管掃描輸出文件。參考書本分頻計(jì)數(shù)器設(shè)計(jì),打開QuartusII軟件,進(jìn)入編輯環(huán)境。創(chuàng)建新的文本文件,命名為clkgen。編寫文本如下:libraryieee;useieee.std_logic_1164.all;entityclkgenisport(clk:instd_logic;newclk1:outstd_logic);endentityclkgen;architectureoneofclkgenissignalcnter1:integerrange0to10#999#;beginprocess(clk)isbeginifclk'eventandclk='1'thenifcnter1=10#999#thencnter1<=0;elsecnter1<=cnter1+1;endif;endif;endprocess;process(cnter1)isbeginifcnter1=10#999#thennewclk1<='1';elsenewclk1<='0';endif;endprocess;endarchitectureone;對文件保存并進(jìn)行編譯仿真,判斷其正確性,并將正確的文件進(jìn)行元件例化(頂層文件),生成通用符號文件(CreateSymbolFilesforCurrentFile)。如右上圖示:創(chuàng)建新的文本文件,命名為scan。編寫文本如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityscanisport(clk:instd_logic;num1,num2,num7,num8:instd_logic_vector(3downto0);sel:outstd_logic_vector(2downto0);num:outstd_logic_vector(3downto0));end;architecturebehaveofscanissignalq:std_logic_vector(2downto0);beginprocess(clk)beginifrising_edge(clk)thenifq="000"thennum<=num1;sel<="000";q<=q+1;endif;ifq="001"thennum<=num2;sel<="001";q<="100";endif;ifq="100"thennum<=num7;sel<="110";q<=q+1;endif;ifq="101"thennum<=num8;sel<="111";q<="000";endif;endif;endprocess;endbehave;對文件保存并進(jìn)行編譯仿真,判斷其正確性,并將正確的文件進(jìn)行元件例化(頂層文件),生成通用符號文件(CreateSymbolFilesforCurrentFile)。如右上圖示:用原理圖輸入法設(shè)計(jì)綜合文件MR根據(jù)實(shí)驗(yàn)要求設(shè)計(jì)整個交通控制器的原理圖如下圖示:MRNEWCLKMYENACLKCLKNEWCLKMYENACLKCLKMGSMGSCRCRCGCYCGCYMQLMQLMQHSMQHSCQLCQLVCCCQHVCCCQH通過調(diào)用編輯好的各元件,將分頻計(jì)數(shù)器、交通信號控制器以及動態(tài)數(shù)碼管掃描輸出組合。打開QuartusII軟件,進(jìn)入編輯環(huán)境。創(chuàng)建新的原理圖文件,命名為trafficlight。

溫馨提示

  • 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

提交評論