一、分析:利用封装的74161完成带有异步复位端的模6和模10计数器,然后级联构成模为60的BCD码计数器:

​ 由74161功能表可知要构成模6计数器和模10计数器,可以采用同步置数法:当达到需要的计数终点时反馈一个置数信号到LD非,使得输出Q3Q2Q1Q0=D3D2D1D0。也可以采用反馈清零法:当达到需要的计数终点时反馈一个清零信号到CR非,使得输出Q3Q2Q1Q0=0000。

二、设计:

三、logisim实现:

1.Logisim环境下设计并封装74161:


2.利用封装的74161完成带有异步复位端的模6和模10计数器,然后连接构成模为60的BCD码计数器:


​ 右边74161作为低位片,利用反馈清零法,从0000计数到1010清零(瞬态),因此实际有效计数从0000到1001,构成了模10计数器。

​ 左边74161作为高位片,同样利用反馈清零法,当从0000计数到0101同时低位片进位到1010时清零,构成模6计数器。

​ 左右两片74161级联,低位片每计10个数清零的同时向高位片发送一个下降沿的时钟信号,高位片计1,直到高位片为0101(5),低位片为1001(9)时产生进位,此时低位片再加1到1010时整体清零(瞬态),由此构成了模为60的BCD码计数器。

四、quartus实现:

1.在quartus环境下完成电路连接电路:

2.同样也可直接用verilog代码实现模60 BCD码计数器计数器:

//模为60的BCD码计数器
module count60(
input clk,
input cin,
input reset,
input load,
input [7:0]data,
output reg [7:0]qout,
output cout
);
always @(posedge clk or negedge reset)beginif(!reset)qout<=0;else if(load)qout<=data;else if(cin)beginif(qout[3:0]==9)beginqout[3:0]<=0;if(qout[7:4]==5)qout[7:4]<=0;else qout[7:4]<=qout[7:4]+1'b1;   endelse qout[3:0]<= qout[3:0]+1'b1;end
end
assign cout=((qout==8'h59)&cin)?1:0;
endmodule
五、仿真结果:

1.logisim:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DYaVA0np-1647855011131)(C:\Users\25\Pictures\图8.png)]

说明:低位片每计10个数高位片成功加1,整体从00计数到59时进位输出成功为1,再来一个cp信号整体清零回到0000,重新开始新一轮计数。

2.quartus:

​ 说明:当从00计数到59时产生进位,再来一个cp信号整体清零回到00,重新开始新一轮计数。

六、扩展:

1.除了反馈清零法,也可以用同步置数法来做,高低位片可以都用清零法,也可以都用置数法,也可以高位片清零法低位片置数法,解法并不唯一。

2.BCD码计数器和非BCD码计数器有什么不同?

BCD码计数器相当于将非BCD码计数器的每一位转译为bcd码,既用4位二进制数表示每一位十进制数。BCD码计数器的输出端可以直接通过驱动器连接7段数码管,实现计数的显示功能。

资源下载地址:

Github资源下载

logisim,quartus实现模为60的BCD码计数器相关推荐

  1. 模为60的BCD码计数器的设计与验证

    step1:实现module: module DigitalCountBCD60(clk_50M,rst_n,time_cnt); input clk_50M; input rst_n; output ...

  2. FPGA中模为60的BCD码加法计数器

    定义输入data,load,cin,clk,reset:输出为qout:则代码为: module count60(clk,load,cin,reset,data,cout,qout);input cl ...

  3. 利用BCD码计数器和7段码转换器子电路

    实验目的:利用BCD码计数器和7段码转换器子电路 实验工具:Quartus ii软件和meli软件联合仿真 实验过程截图 实验结果截图 实验代码: module BCDcount (Clock, Cl ...

  4. HDLBits 系列(18) BCD码计数器的设计

    目录 原题复现 审题 我的设计 原题复现 先给出原题: Build a 4-digit BCD (binary-coded decimal) counter. Each decimal digit i ...

  5. 数字时钟计数器(内含模60计数器以及8421BCD码计数器设计代码)

    目录 前言 模60计数器 verilog设计代码如下: ISE综合 模24的8421BCD码计数器 原理 verilog HDL代码 测试文件 仿真波形 数字时钟计数器 verilog HDL代码 测 ...

  6. 两片74161实现60进制_设计60进制的计数器_用eda设计60进制计数器_74ls161(3)

    图4 D/A 转换器电路 该电路的输入信号接四位二进制计数器的输出 端,设计数器输出高... 数字控制电路要求5V电源,可选择CW7805集成三端稳压器实现.辅助电源原理图如图6... <数字电 ...

  7. 模24的8421BCD码计数器(Verilog HDL语言描述)(仿真与综合)

    目录 前言 原理 Verilog HDL程序设计 测试代码 仿真波形图 ISE综合后 RTL Schematic Technology Schematic 前言 本博文用Verilog HDL语言描述 ...

  8. [计组]压缩BCD码指二进制编码的十进制

    压缩BCD码指二进制编码的十进制 压缩BCD码指一个字节8位存储2位BCD码.比如32用8421BCD码表示如下:非压缩BCD码表示:00000011 00000010:压缩BCD码表示:0011 0 ...

  9. 沈航计算机学院杨华,BCD码的加法.doc

    BCD码的加法课案 沈阳航空航天大学 课 程 设 计 报 告 课程设计名称:计算机组成原理课程设计 课程设计题目:COP2000实现BCD码的加法 院(系):计算机学院 专 业:计算机科学与技术 班 ...

最新文章

  1. 分类与逻辑回归(classification and logistic regression)
  2. JAVA_Thread_interrupt
  3. c++顺序容器vector用法
  4. c# 分类 机器学习_C#也能做机器学习?基于.NET的AI智能应用市场还是一片“处女地”...
  5. [CQOI2017] 老C的任务(差分 + 树状数组 / K-D tree)
  6. PHP如何获取用户IP地址
  7. 通过hsv筛选颜色 python_OpenCV-Python 光流介绍(附代码)
  8. MongoDB 副本集
  9. jQuery动画:实现渐入渐出
  10. Android JNI 本地开发接口
  11. zynq以太网官网例子调试
  12. CMM,CMMI 软件全面质量管理的思想体系
  13. Vi编辑器常用命令及三种模式转换
  14. Windows10自带的 录制音频 方法
  15. 同样是VPS,为什么RAKsmart更受欢迎
  16. 客单价怎么算 影响客单价的主要因素有哪些?
  17. 对ABAP程序调优的学习(三)并行并发读取
  18. 速腾rs16激光雷达安装驱动使用方法
  19. 华为正式发布鸿蒙开源是什么意思,重磅!狙击所有操作系统,华为正式发布鸿蒙OS,并宣布全面开源...
  20. “兼并”还是“合作” 宏碁方正各怀鬼胎

热门文章

  1. 作业:找出“你、我、他”在Unicode表中的位置
  2. HDU 3549 网络流水题
  3. 不二越机器人编程手册_NACHI机器人说明书.doc
  4. element ui 不使用input-number实现数字效果 (大于0,可以是小数)
  5. localStorage、sessionStorage 、indexedDB 、websql 、cookie 的区别
  6. python office插件_Office 数据可视化8大实用插件推荐
  7. vb 窗体画面打不开
  8. 测试开发工作者日记【终焉】:再见~ 小猪
  9. JDK官方网站下载、安装教程及环境配置
  10. python 语料标注_语料标注工具(3)