begin qout1[3:0]<=0; if(qout1[7:4]==5)
begin
qout1[7:4]<=0; begin
if(qout2[3:0]==9) begin qout2[3:0]<=0; begin
qout2[7:4]<=qout2[7:4]+1; end end
else qout2[3:0]<=qout2[3:0]+1; end
if(qout2[7:4]==2&qout2[3:0]==3) qout2<=0; end
else qout1[7:4]<=qout1[7:4]+1; end
else qout1[3:0]<=qout1[3:0]+1; end end
else qout[7:4]<=qout[7:4]+1; end end
else qout[3:0]<=qout[3:0]+1; end end begin
if(e==1)//闹钟 begin
if(qout1==data1&qout2==data2)
ler1=~ler1; end end end
always @(qout2)//时段控制亮灯,6-18时不亮,其他时刻亮 begin
if(qout2>8'h5&qout2<8'h19)
25
led<=0;
else
led<=1; end
always @(qout)//报时部分 begin
leg<=0; ler<=0; if(qout1==8'h59) begin
if(qout==8'h59)//每小时59分59秒时 leg<=1;
if(qout==8'h51||qout==8'h53||qout==8'h55||qout==8'h57) ler<=1;
end end
endmodule
注释:程序分为几个部分,分别由不同的使能端控制,实现各个部分的功能。
各模块功能仿真波形及用下载板下载后显示的结果
当时钟走到23小时59分59秒时leg灯亮,为51、53、55、57秒时ler灯亮,
26
27
ledr[1]即ler在每小时59分51、53、55、57秒时亮灯,ledg[0]即leg在每小时59分59秒时亮灯。
28
相关推荐: