基于VerilogHDL的通行時間可變的交通燈控制器_第1頁
基于VerilogHDL的通行時間可變的交通燈控制器_第2頁
基于VerilogHDL的通行時間可變的交通燈控制器_第3頁
基于VerilogHDL的通行時間可變的交通燈控制器_第4頁
基于VerilogHDL的通行時間可變的交通燈控制器_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、通行時間可變的交通燈控制器設計module tr1(ng,clk,reset,resets,emergency,lighta,lightb,seg,select);input ng,clk,reset,emergency,resets;output6:0seg;/顯示用的output3:0 lighta,lightb;/a是主干道,b是支干道output 3:0 select;/選擇那一個管子進行顯示reg clk1,clk2;/clk1要5HZ clk2要幾千HZreg 3:0 select;reg tim1,tim2;/這是看你的等有沒有變過顏色的控制信號reg 1:0 cont;reg2

2、:0state1,state2,ste;兩個控制顏色變化狀態(tài)的信號。reg3:0lighta,lightb;/a是主干道,b是支干道reg3:0num;/譯碼器是根據(jù)這個東西來譯碼的reg 35:0 fout;reg6:0seg;/顯示reg7:0 numa,numb;reg7:0 red1,red2,green1,green2,yellow1,yellow2,left1,left2;always (ng )if(!ng)begin /設置計數(shù)初值green1 <=8'b00110000;/30Sred1 <=8'b01010001;/51Syellow1<=

3、8'b00000011;/3Sleft1 <=8'b00010101; /15Sgreen2 <=8'b00110000;/30Sred2 <=8'b01010001;/51S yellow2<=8'b00000011;/3Sleft2 <=8'b00010101; /15Sendalways (posedge clk) beginif (fout=36'b111111111111111111111111111111111111)fout<=0;else begin fout<=fout+1;cl

4、k1=fout23;5HZclk2=fout13;幾千HZendendalways (posedge clk1 )beginif(reset) /復位與特殊情況控制 這是主干道的復位 begin lighta<=4'b1000; /lighta是主干道的交通燈,lightb是支干道的交通燈,1000是紅燈,0100是直行綠燈,0010是黃燈,0001是左轉綠燈 numa<=red1; /主干道的數(shù)碼管從紅燈開始記state1<=0;/這時候燈變化的控制信號為0 end else if(emergency)/緊急情況 beginlighta<=4'b100

5、0;/主干道紅了 numa<=red1;/計時也從紅燈記 end else if(ng)/這下開始正常工作了 begin /使能有效開始控制計數(shù) if(!tim1) /你有沒有變過顏色???沒有?那開始變顏色吧。 begin /主干道交通燈點亮控制 tim1<=1;/主干道的燈的開關,行了,我變過了。 case(state1)/state1是用來控制主干道亮燈的各個狀態(tài)的。/1000(8)是紅燈,0100(4)是直行綠燈,0010(2)是黃燈,0001(1)是左轉綠燈 3'b000:begin numa<=green1; lighta<=4; state1<

6、=3'b001;end/直行綠 3'b001:begin numa<=yellow1;lighta<=2; state1<=3'b010;end/黃 3'b010:begin numa<=left1; lighta<=1; state1<=3'b011;end/左轉綠 3'b011:begin numa<=yellow1;lighta<=2; state1<=3'b100;end/黃 3'b100:begin numa<=red1; lighta<=8; state

7、1<=3'b000;end/紅 default:lighta<=8;/接二極管正極,負極接地endcase end else/tm1=1,我變過顏色了,可以開始計數(shù)了。 begin /倒數(shù)計時 if(numa>0) if(numa3:0=0) begin numa3:0<=4'b1001; numa7:4<=numa7:4-1; end else numa3:0<=numa3:0-1; if(numa=1) tim1<=0;好了,差不多計完了,再讓我變一次吧。 end end else /如果電路沒有啟動 begin lighta<

8、;=4'b0100;/默認為直行綠燈 numa=0;/默認計數(shù)為0 tim1<=0; /默認我沒有變過顏色 end endalways (posedge clk1 )/下面就和主干道的一樣了begin if(reset) /復位與特殊情況控制 begin lightb<=4'b1000; numb<=red2;state2<=0; end else if(emergency) begin lightb<=4'b1000; numb<=red2; end else if(ng) begin if(!tim2) begin tim2<

9、;=1; case(state2) 0:begin numb<=red2; lightb<=8; state2<=1; end 1:begin numb<=green2; lightb<=4; state2<=2; end 2:begin numb<=yellow2;lightb<=2; state2<=3;end 3:begin numb<=left2; lightb<=1; state2<=4;end 4:begin numb<=yellow2; lightb<=2; state2<=0;end de

10、fault:lightb<=8; endcase end else begin /倒數(shù)計時 if(numb>0) if(numb3:0=0) begin numb3:0<=4'b1001; numb7:4<=numb7:4-1; end else numb3:0<=numb3:0-1; if(numb=1) tim2<=0; end end else begin tim2<=0; state2<=0; lightb<=4'b0100; end end always (posedge clk2)begin /數(shù)碼管掃描 if(

11、resets) begin cont=0; select=4'b1111; end else begin case(cont) 2'b00:begin num<=numa3:0; select<=4'b1101;cont<=cont+1; end 2'b01:begin num<=numa7:4; select<=4'b1011;cont<=cont+1; end 2'b10:begin num<=numb3:0; select<=4'b0111;cont<=cont+1; end 2

12、'b11:begin num<=numb7:4; select<=4'b1110;cont<=cont+1; end endcase endendalways (posedge clk2)begin /數(shù)碼管譯碼顯示case(num)4'b0000: seg<=7'b0111111; /04'b0001: seg<=7'b0000110; /14'b0010: seg<=7'b1011011; /24'b0011: seg<=7'b1001111; /34'b0100: seg<=7'b1100110; /44'b0101: seg<=7'b1101101; /54'b0110: seg&

溫馨提示

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

評論

0/150

提交評論