always @(posedge clk_12M or negedge stop)
begin
if(!stop)//暂停信号为0时有效
begin
cnt <= 0;
end//停止信号有效时,暂停
else if(cnt == 24'h5b8d80)//计数为5999999
begin
clk_1s <= ~clk_1s;
cnt <= 0;
end
else
begin
cnt <= cnt+1;
clk_1s <= clk_1s;
end//暂停信号无效时继续计时
end
/*用于产生1s的秒表计数*/
reg [7:0]sec_reg=0;
always @(posedge clk_1s or negedge reset)
begin
if(!reset)//复位信号为0时有效
begin
sec_reg <= 0;//复位信号有效时置0
end
else if(sec_reg[3:0] == 4'd9)//秒个位计数到9
begin
if(sec_reg[7:4] == 4'd5)//秒十位计数到5
begin
sec_reg <= 0;//清0
end
else
begin
sec_reg[7:4] <= sec_reg[7:4] + 1;//秒十位加1
sec_reg[3:0] <= 0;//秒个位清零
end
end
else
begin
sec_reg[3:0] <= sec_reg[3:0] + 1;
end
end
assign sec = sec_reg;