基于EDA的VHDL語言設(shè)計(jì)的交通燈_第1頁
基于EDA的VHDL語言設(shè)計(jì)的交通燈_第2頁
基于EDA的VHDL語言設(shè)計(jì)的交通燈_第3頁
基于EDA的VHDL語言設(shè)計(jì)的交通燈_第4頁
基于EDA的VHDL語言設(shè)計(jì)的交通燈_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

玉林師范學(xué)院本科生課程設(shè)計(jì)論文基于VerilogHDL的RS編碼器設(shè)計(jì)院系電子與通信工程學(xué)院專業(yè)通信工程學(xué)生班級通信111班姓名韋仁良學(xué)號201108402123指導(dǎo)教師單位電子與通信工程學(xué)院指導(dǎo)教師姓名陳宇寧【摘要】隨著社會(huì)上特別是城市中機(jī)動(dòng)車輛保有量的不斷增加,在現(xiàn)代城市的日常運(yùn)行控制中,車輛的交通控制越來越重要,在十字交叉路口,越來越多的使用紅綠燈進(jìn)行交通指揮和管理。本文以VHDL硬件描述語言為設(shè)計(jì)手段,完成了交通信號燈控制電路的設(shè)計(jì),其中交通信號燈控制電路的開發(fā)目的是設(shè)計(jì)一個(gè)適用于主、支干道十字交叉路口的紅黃綠交通燈的控制系統(tǒng),通過合理設(shè)計(jì)系統(tǒng)功能,使紅黃綠燈的轉(zhuǎn)換有一個(gè)準(zhǔn)確的時(shí)間間隔和轉(zhuǎn)換順序。所設(shè)計(jì)的交通信號燈控制電路經(jīng)過在QuartusⅡ軟件下進(jìn)行模擬仿真,觀察其波形,證明所設(shè)計(jì)的交通信號燈控制電路完全可以實(shí)現(xiàn)預(yù)定的功能,并有一定的實(shí)用性。【關(guān)鍵詞】VHDL;QuartusⅡ;交通燈【題目要求】用有限狀態(tài)機(jī)設(shè)計(jì)一個(gè)交通燈控制器,設(shè)計(jì)要求:A路和B路,每路都有紅、黃、綠三種燈,持續(xù)時(shí)間為:紅燈45s、黃燈5s、綠燈40s。A、B路交通燈的轉(zhuǎn)換狀態(tài)是:(1)A紅、B綠(持續(xù)時(shí)間40s);(2)A紅、B黃(持續(xù)時(shí)間5);(3)A綠、B紅(持續(xù)時(shí)間40s);(4)A黃、B紅(持續(xù)時(shí)間5s);【系統(tǒng)總體設(shè)計(jì)原理】4000Hz分頻器4000Hz分頻器發(fā)光二極管交通燈控制器交通燈控制器50MHz1秒分頻器50MHz1秒分頻器顯示模塊數(shù)碼管顯示模塊數(shù)碼管outputclkout;regclkout;reg[24:0]q;always@(posedgeclkin)beginif(q==12499)beginq<=0;clkout<=~clkout;endelseq<=q+1;endendmodule編譯結(jié)果:【交通燈控制及計(jì)時(shí)模塊】端口說明:Clock:輸入時(shí)鐘信號,上升沿有效。Reset:復(fù)位信號,高電平有效。Red1、yellow1、green1:分別表示A路的紅燈、黃燈、綠燈顯示信號,高電平有效。Red2、yellow2、green2:分別表示B路的紅燈、黃燈、綠燈顯示信號,高電平有效。Timea:A路綠燈亮?xí)r間,高電平有效。Timeb:B路紅燈亮?xí)r間,高電平有效。Alarm:倒計(jì)時(shí)信號輸出實(shí)現(xiàn)程序:moduletraffic_control(clock,reset,red1,yellow1,green1,red2,yellow2,green2,timea,timeb,alarm);inputclock,reset;outputred1,yellow1,green1,red2,yellow2,green2,alarm;output[7:0]timea,timeb;reg[1:0]state=2'b00;reg[7:0]timea=40;//A路綠燈亮?xí)r間reg[7:0]timeb=45;//B路紅燈亮?xí)r間regred1=1'b0,yellow1=1'b0,green1=1'b1;//A綠燈亮regred2=1'b1,yellow2=1'b0,green2=1'b0;//B紅燈亮regalarm=1'b0;always@(posedgeclockorposedgereset)beginif(reset)begin state<=2'b00;timea<=40;timeb<=45; endelsebegincase(state)2'b00:begin if(timea==0)//A綠燈亮?xí)r間40S結(jié)束begin timea<=5;//A黃燈亮?xí)r間5S red1<=1'b0;yellow1<=1'b1;green1<=1'b0;//A黃燈亮 red2<=1'b1;yellow2<=1'b0;green2<=1'b0;//B紅燈繼續(xù)亮 state<=2'b01;//轉(zhuǎn)到A黃燈,B紅燈 endelse begin timea<=timea-1;//A綠燈亮?xí)r間40S-- timeb<=timeb-1;//B紅燈亮?xí)r間45S-- state<=2'b00; end end2'b01:beginif(timea==0)//A黃燈亮5S時(shí)間結(jié)束 begin timea<=45;//A紅燈亮?xí)r間45S timeb<=40;//B綠燈亮?xí)r間40S red1<=1'b1;yellow1<=1'b0;green1<=1'b0;//A紅燈亮 red2<=1'b0;yellow2<=1'b0;green2<=1'b1;//B綠燈亮 alarm<=1'b0; state<=2'b10;//轉(zhuǎn)到A紅燈,B綠燈 endelse begin timea<=timea-1;//A黃燈亮?xí)r間3S-- timeb<=timeb-1;//B紅燈亮?xí)r間3S-- alarm<=~alarm;yellow1<=~yellow1; state<=2'b01; endend2'b10:beginif(timeb==0)//B綠燈亮40S時(shí)間結(jié)束begin timeb<=5;//B燈黃亮?xí)r間5S red1<=1'b1;yellow1<=1'b0;green1<=1'b0;//A紅燈亮 red2<=1'b0;yellow2<=1'b1;green2<=1'b0;//B黃燈亮 state<=2'b11;//轉(zhuǎn)到A紅燈,B黃燈 end else begin timea<=timea-1;//A紅燈亮?xí)r間-- timeb<=timeb-1;//B綠燈亮?xí)r間-- state<=2'b10; end end 2'b11:beginif(timeb==0)//B黃燈亮5S時(shí)間結(jié)束begin timea<=40;//A綠燈亮?xí)r間40S timeb<=45;//B綠燈亮?xí)r間45S red1<=1'b0;yellow1<=1'b0;green1<=1'b1;//A綠燈亮 red2<=1'b1;yellow2<=1'b0;green2<=1'b0;//B紅燈亮 alarm<=1'b0; state<=2'b00;//轉(zhuǎn)到A綠燈,B紅燈 end else begin timea<=timea-1;//A紅燈亮?xí)r間-- timeb<=timeb-1;//B黃燈亮?xí)r間-- alarm<=~alarm;yellow2<=~yellow2; state<=2'b11; end endendcaseendendEndmodule編譯結(jié)果:此模塊是整個(gè)系統(tǒng)的核心部分,主要功能是完成四個(gè)狀態(tài)的轉(zhuǎn)換,并且在每個(gè)狀態(tài)里完成相應(yīng)的控制作用,即控制主干道和支干道的紅黃綠燈的點(diǎn)亮和各自數(shù)碼管倒計(jì)時(shí)顯示?!綽in2bcd轉(zhuǎn)換模塊】該模塊將二進(jìn)制語言轉(zhuǎn)換為BCD碼輸出,模塊如下圖:端口說明:numin[7..0]:輸入8位二進(jìn)制編碼numa[3..0]:輸出高4位BCD碼numb[3..0]:輸出低4位BCD碼bin2bcd轉(zhuǎn)換模塊實(shí)現(xiàn)程序:modulebin2bcd(numin,numa,numb);input[7:0]numin;output[3:0]numa,numb;reg[3:0]numa,numb;always@(numin)beginif(numin>=90)beginnuma=9;numb=numin-90;endelseif(numin>=80)beginnuma=8;numb=numin-80;endelseif(numin>=70)beginnuma=7;numb=numin-70;endelseif(numin>=60)beginnuma=6;numb=numin-60;endelseif(numin>=50)beginnuma=5;numb=numin-50;endelseif(numin>=40)beginnuma=4;numb=numin-40;endelseif(numin>=30)beginnuma=3;numb=numin-30;endelseif(numin>=20)beginnuma=2;numb=numin-20;endelseif(numin>=10)beginnuma=1;numb=numin-10;endelsebeginnuma=0;numb=numin;endendendmodule編譯結(jié)果:【數(shù)碼管顯示譯碼和掃描模塊】驅(qū)動(dòng)交通信號LED燈以及倒計(jì)時(shí)器數(shù)碼管的顯示,模塊如下圖:端口說明:Scanclk:4000Hz時(shí)鐘脈沖Ewh,smh:輸入高4位BCD碼Ewl,sml:輸入高4位BCD碼Ledout:數(shù)碼管段選Ledsel:數(shù)碼管位選Verilog語言描述如下:moduledisplay(scanclk,ewh,ewl,snh,snl,ledout,ledsel);inputscanclk;input[3:0]ewh,ewl,snh,snl;output[6:0]ledout;output[3:0]ledsel;reg[6:0]ledout;reg[3:0]ledsel;reg[3:0]bcd;reg[2:0]q;always@(posedgescanclk)beginq<=q+1;case(q)3'b000:beginledsel<=4'b0111;bcd<=ewh;end3'b001:beginledsel<=4'b1011;bcd<=ewl;end3'b010:beginledsel<=4'b1101;bcd<=snh;end3'b011:beginledsel<=4'b1110;bcd<=snl;enddefault:beginledsel<=8'b11111111;bcd<=4'bzzzz;endendcaseendalways@(bcd)begincase(bcd)4'b0000:ledout=7'b0111111;4'b0001:ledout=7'b0000110;4'b0010:ledout=7'b1011011;4'b0011:ledout=7'b1001111;4'b0100:ledout=7'b1100110;4'b0101:ledout=7'b1101101;4'b0110:ledout=7'b1111101;4'b0111:ledout=7'b0000111;4'b1000:ledout=7'b1111111;4'b1001:ledout=7'b1101111;default:ledout=7'b0000000;endcaseendendmodule編譯結(jié)果:【各模塊電路符號】頂層電路圖如下:頂層文件原理圖頂層文件編譯結(jié)果如下:【硬件驗(yàn)證結(jié)果】引腳配置如下:硬件驗(yàn)證效果如下:按照設(shè)計(jì)好的原理圖,運(yùn)行QuartusⅡ軟件,運(yùn)用模塊化設(shè)計(jì)方法,創(chuàng)建圖形設(shè)計(jì)文件,畫出所設(shè)計(jì)的交通燈控制器總框圖并連接,對其進(jìn)行測試,編譯,得到結(jié)果如圖所示:【總結(jié)】

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論