为啥从0到9显示时间间隔均匀再循环到0时间隔时间变长了?
程序如下,请大侠帮忙,先谢了。<br />module led_jing (seg,sl,clk);<br />output seg;<br />output sl;<br />input clk;<br />regseg_reg;<br />regsl_seg;<br />regdisp_dat;<br />regcount;<br />always@(posedge clk)<br /> begin<br /> count=count+1;<br /> end<br />always<br /> begin<br /> sl_seg=5'b11111;<br /> end<br />always <br /> begin<br /> disp_dat=count;<br /> if(disp_dat>9)disp_dat=4'b0000;<br /> end<br />always@(disp_dat)<br /> begin<br /> case (disp_dat)<br /> 4'h0:seg_reg=8'h3f;//显示0<br /> 4'h1:seg_reg=8'h06;// 1<br /> 4'h2:seg_reg=8'h5b; // 2 <br /> 4'h3:seg_reg=8'h4f; // 3 <br /> 4'h4:seg_reg=8'h66; // 4<br /> 4'h5:seg_reg=8'h6d;<br /> 4'h6:seg_reg=8'h7d;<br /> 4'h7:seg_reg=8'h07;<br /> 4'h8:seg_reg=8'h7f;<br /> 4'h9:seg_reg=8'h6f; //显示9 <br /> endcase<br /> end<br />assign seg=seg_reg;<br />assign sl=sl_seg;<br />endmodule<br />count[27:20]为8个二进制位,可以表示0~255
你这8个二进制位是连续计数,每计数一次需要2<sup>19</sup>=524288个时钟周期,但只显示0~9,9之后是10,从10循环到255溢出再回到0,要再计数524288*245个时钟周期,结果可想而知了。3Q,明白了。
Yes
页:
[1]