module bcd60counter(clk,switch,count); input clk,switch; output[7:0]count; reg[7:0]count=8'b0; always@(posedge clk) begin if(switch) begin count=count+8'b1; //若低四位向高四位进位 if(count[3:0]==4'b1010) count=count+8'b00000110; //若到了60 if(count==8'b01100000) count=0; end else begin //count=count-8'b1; //若低四位向高四位借位 if(count[3:0]==4'b0000) begin //count[3:0]=4'b1010 count=count-8'b1; count=count-8'b00000110; end else count=count-8'b1; if(count==8'b00000000-8'b00000111) count=8'b01011001; end end endmodule 程序写好后,点击如图按钮进行编译: 编译成功后,按如图所示顺序依次点击,建立波形文件。 在新窗口中,选择以下项,添加波形。
举报
下列图标中,最左端用于选择波形区间,第二个用于放大缩小,之后十一个用于设置之前选中的波形区间,后面的为仿真。设置好波形并仿真得到以下结果:
在使能端switch为高电平时,计数器从当前数字开始计数(向上计数),最高计到59,然后从0重新开始;在使能端为低电平时,计数器从当前数字开始计数(向下计数),最低到0,然后从59从新开始向下计数。
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
等级类勋章
发帖类勋章
人才类勋章
时间类勋章
1148
11651
26
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号