资源描述:
《verilog_简单交通灯实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、简易交通控制器一、设计要求设计一个交通控制器,用LED显示灯来表示交通状态,并以七段数码管显示器显示当前状态剩余秒数,具体要求如下:1、主干道绿灯亮时,支干道红灯亮,反之依然,二者交替允许通过;主干道每次放行35s,支干道25s;每次由绿灯变为红灯过程中,黄灯亮作为过度,黄灯亮5s;2、能实现正常的倒计时显示功能;3、能实现总体清零功能,计数器由初始状态开始计数,对应状态的指示灯亮;4、能实现特殊状态的功能的显示,进入特殊状态时,东—西、南—北均显示红灯状态;二、设计原理图一、程序如下modulejiao_tong(clk,ji
2、n,ra,ya,ga,rb,yb,gb,seg7,scan);inputclk,jin;outputra,ya,ga,rb,yb,gb;output[7:0]scan;output[7:0]seg7;regra,ya,ga,rb,yb,gb;reg[7:0]scan;reg[7:0]seg7;reg[1:0]state,next_state;parameterstate0=2'b00,state1=2'b01,state2=2'b10,state3=2'b11;regclk1khz,clk1hz;reg[3:0]one,ten;
3、reg[1:0]cnt;reg[3:0]data;reg[7:0]seg7_temp;regr1,r2,g1,g2,y1,y2;reg[14:0]count1;reg[8:0]count2;rega;reg[3:0]qh,ql;initialscan<=8'b00000000;always@(posedgeclk)beginif(count1=='d25000)beginclk1khz<=~clk1khz;count1<=0;endelsebegincount1<=count1+1'b1;endendalways@(posedg
4、eclk1khz)beginif(count2=='d500)beginclk1hz<=~clk1hz;count2<=0;endelsebegincount2<=count2+1'b1;endendalways@(posedgeclk1hz)beginstate=next_state;case(state)state0:beginif(jin)beginif(!a)beginqh<='b0011;ql<='b0101;a<=1;r1<=0;y1<=0;g1<=1;r2=1;y2<=0;g2<=0;endelsebeginif(
5、!qh&&!ql)beginnext_state<=state1;a<=0;qh<='b0000;ql<='b0000;endelseif(!ql)beginql<='b1001;qh<=qh-1'b1;endelsebeginql<=ql-1'b1;endendendendstate1:beginif(jin)beginif(!a)beginqh<='b0000;ql<='b0101;a<=1;r1<=0;y1<=1;g1<=0;r2=1;y2<=0;g2<=0;endelsebeginif(!ql)beginnext_sta
6、te<=state2;a<=0;qh<='b0000;ql<='b0000;endelsebeginql<=ql-1'b1;endendendendstate2:beginif(jin)beginif(!a)beginqh<='b0010;ql<='b0101;a<=1;r1<=1;y1<=0;g1<=0;r2=0;y2<=0;g2<=1;endelsebeginif(!qh&&!ql)beginnext_state<=state3;a<=0;qh<='b0000;ql<='b0000;endelseif(!ql)beginql
7、<='b1001;qh<=qh-1'b1;endelsebeginql<=ql-1'b1;endendendendstate3:beginif(jin)beginif(!a)beginqh<='b0000;ql<='b0101;a<=1;r1<=1;y1<=0;g1<=0;r2=0;y2<=1;g2<=0;endelsebeginif(!ql)beginnext_state<=state0;a<=0;qh<='b0000;ql<='b0000;endelsebeginql<=ql-1'b1;endendendendendcase
8、one<=ql;ten<=qh;end//--------------------always@(jin,clk1hz,r1,r2,g1,g2,y1,y2,seg7_temp)beginif(!jin)beginra<=r1
9、
10、jin;rb<=r2
11、
12、jin;g