题: 设计一个可控进制的计数器, 当输入控制变量M=0时工作在5进制; M=1时工作在15进制.

分析:

根据之前博客中的分析, 我们可以通过两种方法来进行设计.

设计方案1:

我们可以通过设计74163的四个输入引脚DCBA, 再辅以LOAD'引脚的设计, 来实现可控进制计数器的功能.

将控制变量设定为M: 规定M=0时计数器工作在5进制, M=1时计数器工作在15进制.

当电路状态到达1111时, 触发LOAD'引脚预置数功能: 即将Q3Q2Q1Q0四个引脚分别接到四输入与非门的四个输入端, 该逻辑门的输出接到LOAD'引脚.

当M=0时, 共有1011、1100、1101、1110、1111五个计数状态; 当M=1时, 共有0001、0010、0011、0100、0101、0110、0111、1000、1001、1010、1011、1100、1101、1110、1111十五个计数状态. 由分析, 当M=0时, DCBA=1011; 当M=1时, DCBA=0001. 由此得到下面的真值表.

控制变量设计真值表
M D C B A
0 1 0 1 1
1 0 0 0 1

从上面的真值表中, 可得到 D=M', C=0, B=M', A=1.

将上面的分析转换为电路的设计, 得到电路的逻辑图.

设计方案2:

我们还可以通过直接设计LOAD'引脚来实现可控进制计数器的功能.

将控制变量设定为M: 规定M=0时计数器工作在5进制, M=1时计数器工作在15进制.

将四个输入引脚DCBA置为0000.

当M=0时, 工作在5进制, 则一共有0000、0001、0010、0011、0100五个计数状态; 当M=1时, 工作在15进制, 则一共有0000、0001、0010、0011、0100、0101、0110、0111、1000、1001、1010、1011、1100、1101、1110十五个计数状态. 再由同步置数法的设计准则可知, 当M=0时, LOAD'引脚在电路状态为0100时为0; 当M=1时, LOAD'引脚在电路状态为1110时为0. 根据此处的分析, 得到下面的LOAD'引脚设计真值表. 补充说明一下, 除了上述两种使得LOAD'=0的情况外, 其它情况下的LOAD'均为1.

LOAD'引脚设计真值表
M Q3 Q2 Q1 Q0 LOAD'
0 0 1 0 0 0
1 1 1 1 0 0

由上述真值表, LOAD=M'Q3'Q2Q1'Q0'+MQ3Q2Q1Q0', 则LOAD'=(M'Q3'Q2Q1'Q0'+MQ3Q2Q1Q0')'. 这样得到的表达式虽然正确, 但不是最简形式, 我们按照74163的计数规律, 化简LOAD'的逻辑表达式.

由74163的计数规律(积攒设计经验后方可直接得出), LOAD'=(M'Q2+MQ3Q2Q1)'.

按照上述分析绘制电路的逻辑图.

设计总结:

要想设计可控进制的计数器, 必须要先将74160/74163的基本功能彻底掌握, 再须熟练掌握74160/74163同步置数法的设计准则. 有了这两部分的基础, 才能较轻松得设计出可控进制得计数器.

还有一种设计方法要熟练掌握——真值表量化设计法. 相信很多朋友在进行比如上面第一种方案中的DCBA引脚的设计时, 会一直跟着感觉设计, 即没有严格的理论依据——这是不可取的(我也相信很多朋友在设计如74138/74151扩展级联电路时也是跟着感觉一直走). 要想提升设计效率和设计准确率, 必须能将实际问题中输入与输出的对应体现在一张真值表中, 这需要大家多多积攒动手设计电路的经验.

※以一片74163(同步十六进制加法计数器)为核心部件设计可变进制(两种进制选择)计数器相关推荐

  1. Java多线程编程-(6)-两种常用的线程计数器CountDownLatch和循环屏障CyclicBarrier

    前几篇: Java多线程编程-(1)-线程安全和锁Synchronized概念 Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性 Java多线程编程-(3)-线程本地Th ...

  2. c语言实现同步四位加法计数器,八进制计数器设计方案汇总(四款模拟电路原理实现过程)...

    今天小编要和大家分享的是八进制计数器,计数器相关信息,接下来我将从八进制计数器设计方案汇总(四款模拟电路原理实现过程),试用4位同步二进制加法计数器74161采用置数法构成十进制计数器 二这几个方面来 ...

  3. c++十六进制加法_C++中输出十六进制形式的字符串

    前言 在进行 i18n 相关的开发时,经常遇到字符编码转换的错误.这时如果能把相关字符串用十六进制的形式打印出来,例如,"abc" 输出成 "\\x61\\x62\\x6 ...

  4. c++十六进制加法_C/C++知识点之怎样理解八进制和十六进制

    本文主要向大家介绍了C/C++知识点之怎样理解八进制和十六进制,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助. C语言中8进制和16进制怎么表示 C语言本身支持的三种输入是: 1. ...

  5. 两片74161实现60进制_74LS161设计60进制计数器-数电课程设计

    计数器是一个用以实现计数功能的时序部件,它不仅可用来及脉冲数,还常用作数子系统的定时.分频和执行数字运算以及其它特定的逻辑功能. 计数器种类很多.按构成计数器中的各触发器是否使用一个时钟脉冲源来分,有 ...

  6. 实验五、计数器逻辑功能和设计

    6.实验内容及步骤 (1)测试74HC161的逻辑功能,根据测试结果总结并描述其逻辑功能,表格自行完善. 表2.5.1  74HC161的功能表 (2)测试74HC390的逻辑功能,根据测试结果总结并 ...

  7. 讲清楚进制转换、进制计算那些事 —— 二进制转换十进制、十六进制

    讲清楚进制转换.进制计算那些事 信息在计算机中的表示 1.易于物理实现 2.可靠性高 3.运算规则简单 数制及其不同进制之间的转换 1.常用进制数及其对应关系 表 1-2 常见进制数所使用的基本符号 ...

  8. lin通讯从节点同步间隔场_LIN总线节点的设计

    lin总线节点的设计 [日期:2005-5-11] 来源:电子技术应用 作者:宋开臣 陈 舒 [字体:大 中 小] 摘要:介绍了汽车网络系统a类串行总线通信标准lin协议2.0版本(最新版本),设计了 ...

  9. lin通讯从节点同步间隔场_LIN总线节点的设计-控制器/处理器-与非网

    摘要:介绍了汽车网络系统A类串行总线通信标准LIN协议2.0版本(最新版本),设计了总线节点的硬件和通信程序,规划了电动汽车车身网络总线结构. 关键词:LIN总线 通信 节点 随着汽车电子业的飞速发展 ...

最新文章

  1. Dreamwerver8下定义表单实现第一个登陆页面
  2. C# 获取gzip网页解压处理
  3. 手机端公告文本回滚(简单的jq代码)
  4. 60-170-040-使用-Time-Flink时间系统系列之实例讲解-如何做定时输出
  5. sudo uograde 之后 需要重装显卡驱动
  6. 波兰表达式和逆波兰表达式
  7. 用python把视频转换为图片
  8. 茎叶图、箱图是什么,如何用SPSS实现?(图文)
  9. “VBE6EXT.OLB不能被加载”解决方法
  10. Logstash系列: mutate拦截器的使用
  11. word中首行缩进、悬挂缩进、左缩进有什么区别?如何操作?
  12. 林奇社区群主招募!福利福利福利!
  13. cannot lock ref问题的解决
  14. HTML学习笔记~html学习需要准备什么
  15. nodejs在Linux下使用图片相关模块出现Error: write EPIPE
  16. AI-041: Python深度学习3 - 三个Karas实例-3
  17. 比较经典的位字段例题(颜色三原色)
  18. 1355C - Count Triangles,2021CCPC桂林 C,D
  19. 智慧城市,以人为本的新世界
  20. 计算机应用能力考试和软考哪个有用,软考中级哪个最容易过 哪个含金量最高...

热门文章

  1. 流水账php,11-12流水账
  2. excel填充序列_序列填充你只会下拉?3种不同的填充方法都在这,你学会了吗?...
  3. 完美收纳特色装饰 日本小两口的56平温馨窝
  4. iOS应用签名管理工具
  5. 《Adobe Flash CS5中文版经典教程》——1.7 使用“工具”面板
  6. 【OpenCV】 人脸识别
  7. Word如何快速插入日期和时间
  8. 瓦片地图之WMS服务(GeoServer)
  9. LBM方法的优点及缺点
  10. woff字体反爬处理