倒计时器写到板子上,一直停在0000 按load也没有反应
时间:10-02
整理:3721RD
点击:
module BCD_cnt59(qout,en,clk,load,data); //倒计时模块//
parameter zero=4'b0000;
output reg[11:0] qout;
input en,clk,load;
input [3:0] data;
always@(posedge clk )
if(load)
begin qout[11:7]=data;qout[7:4]=0;end
else if(en)
if(qout[3:0]==4'b0000)
if(qout[7:4]==4'b0000)
if(qout[11:8]==4'b0000) qout[11:0]=0;
else begin qout[7:4]=4'b0101;qout[11:8]=qout[11:8]-1'b1;end
else
begin qout[7:4]=qout[7:4]-1'b1; qout[3:0]=4'b1001;end
else qout[3:0]=qout[3:0]-1'b1;
endmodulemodule shudian(mclk,load,pause,cont,min0,ld,led,AN
);
parameter zero=4'b0000;
input mclk,load,pause,cont;
input [3:0]min0;
output reg ld;
output [7:0] led;
output [3:0] AN;
reg en;
wire[11:0] qout;
wire tclk,ledclk;
wire [3:0]display;
clk_led t1(.clkin(mclk),.clkout(ledclk));//数码管位选时钟//
sec_clk t0(.clkin(mclk),.clkout(tclk)); //1s时钟信号//
led_select l0(.clk(ledclk),.AN(AN)); //数码管位选信号//
display_select s1(.display(display),.qout(qout),.ledclk(ledclk),.AN(AN));//数码管段选信号//
seg_decoder d1(.display(display),.AN(AN),.led(led)); //译码器//
BCD_cnt59 c1(.qout(qout),.en(en),.clk(tclk),.load(load),.data(data));
always @(negedge tclk)
if(qout==0) ld<=1;else ld<=0;
always @( pause or cont )
if(pause) en<=0;else if(cont) en<=1;else en<=en;
endmodule
写到板子上,一直停在0000
按load也没有反应
计时器 相关文章:
