十进制异步计数器

十进制异步计数器

十进制异步加法计数器

【例1】设计一个十进制异步加法计数器,要求电路按 8421 BCD 码进行加法计数

  • Step1:建立原始状态转换图

    根据状态转换图画出对应的时序图,然后从翻转要求出发,为每个触发器选择合适的时钟信号

    选择时钟脉冲的基本原则 :凡是要翻转的触发器都能够获得相应的时钟触发沿,且触发沿越少越好

  • Step2:选触发器,求方程

    1. 选触发器 :用到 3 位二进制代码,故选用 3 个 触发器(这里选用 CP 下降沿触发 JK 触发器),分别用 F F 0 、 F F 1 、 F F 2 FF_0、FF_1、FF_2 FF0、FF1、FF2 表示

    2. 时钟方程(异步时序电路的关键):先根据状态转换图画出时序图,再根据翻转条件选脉冲

      根据翻转条件选脉冲,得出时钟方程

      C P 0 = C P ( C P ↓ ) CP_0=CP(CP↓) CP0=CP(CP↓)

      C P 1 = Q 0 ( Q 0 ↓ ) CP_1=Q_0(Q_0↓) CP1=Q0(Q0↓)

      C P 2 = Q 1 ( Q 1 ↓ ) CP_2=Q_1(Q_1↓) CP2=Q1(Q1↓)

      C P 3 = Q 0 ( Q 0 ↓ ) CP_3=Q_0(Q_0↓) CP3=Q0(Q0↓)

    3. 输出方程

    4. 状态方程:先画出次态卡诺图,再拆分开得各触发器卡诺图

      注意 :要把没有时钟信号的次态也作为约束项处理,以利于状态方程的化简

      由拆分卡诺图得状态方程

    5. 驱动方程:变换状态方程,使之形式与选用触发器的特性方程一致,比较后得驱动方程

  • Step3:画电路图

  • Step4:检查电路能否自启动

其余步骤省略(在之前的几篇文章中都有详细介绍过,如果还不太清楚可以参考【数字电子基础】专栏中的文章)

十进制异步减法计数器

【例2】设计一个十进制异步减法计数器,要求电路按 8421 BCD 码进行减法计数

  • Step1:建立原始状态转换图

    根据状态转换图画出对应的时序图,然后从翻转要求出发,为每个触发器选择合适的时钟信号

    选择时钟脉冲的基本原则 :凡是要翻转的触发器都能够获得相应的时钟触发沿,且触发沿越少越好

  • Step2:选触发器,求方程

    1. 选触发器 :用到 3 位二进制代码,故选用 3 个 触发器(这里选用 CP 下降沿触发 JK 触发器),分别用 F F 0 、 F F 1 、 F F 2 FF_0、FF_1、FF_2 FF0、FF1、FF2 表示

    2. 时钟方程(异步时序电路的关键):先根据状态转换图画出时序图,再根据翻转条件选脉冲

      根据翻转条件选脉冲,得出时钟方程

      C P 0 = C P ( C P ↓ ) CP_0=CP(CP↓) CP0=CP(CP↓)

      C P 1 = Q 0 ( Q 0 ‾ ↓ ) CP_1=Q_0(\overline{Q_0}↓) CP1=Q0(Q0↓)

      C P 2 = Q 1 ( Q 1 ‾ ↓ ) CP_2=Q_1(\overline{Q_1}↓) CP2=Q1(Q1↓)

      C P 3 = Q 0 ( Q 0 ‾ ↓ ) CP_3=Q_0(\overline{Q_0}↓) CP3=Q0(Q0↓)

    3. 输出方程

    4. 状态方程:先画出次态卡诺图,再拆分开得各触发器卡诺图

      注意 :要把没有时钟信号的次态也作为约束项处理,以利于状态方程的化简

      由拆分卡诺图得状态方程

    5. 驱动方程:变换状态方程,使之形式与选用触发器的特性方程一致,比较后得驱动方程

  • Step3:画电路图

  • Step4:检查电路能否自启动

集成十进制异步计数器

二-五-十进制异步计数器 74LS290

管脚图 & 逻辑图

内部结构

内含一个 1 位二进制计数器和一个五进制计数器(和 二-八-十六进制计数器 74LS197 相似,在 【集成二进制异步计数器】一文中有介绍)

  • C P 0 CP_0 CP0 :二进制计数器的计数脉冲输入端
  • Q 0 Q_0 Q0 :二进制计数器输出端
  • C P 1 CP_1 CP1 :五进制计数器计数脉冲输入端
  • Q 1 Q_1 Q1~ Q 3 Q_3 Q3 :五进制计数器输出端
  • S 9 A , S 9 B S_{9A},S_{9B} S9A,S9B :异步置 9 端
  • R 0 A , R 0 B R_{0A},R_{0B} R0A,R0B :异步清零端(置 0)
  • C T / L D ‾ CT/\overline{LD} CT/LD :计数和置数控制端
74LS290功能表
  • 异步清 0 功能 :当 S 9 = S 9 A ⋅ S 9 B = 0 S_9=S_{9A}·S_{9B}=0 S9=S9A⋅S9B=0 时,若 R 0 = R 0 A ⋅ R 0 B = 1 R_0=R_{0A}·R_{0B}=1 R0=R0A⋅R0B=1 ,计数器异步清 0

  • 异步置 9 功能 :当 S 9 = S 9 A ⋅ S 9 B = 1 S_9=S_{9A}·S_{9B}=1 S9=S9A⋅S9B=1 时,计数器异步置 9

  • 计数功能 :当 S 9 A ⋅ S 9 B = 0 S_{9A}·S_{9B}=0 S9A⋅S9B=0 且 R 0 A ⋅ R 0 B = 0 R_{0A}·R_{0B}=0 R0A⋅R0B=0 ,在下降沿作用下进行加法计数

相关推荐
scdifsn3 小时前
动手学深度学习12.7. 参数服务器-笔记&练习(PyTorch)
pytorch·笔记·深度学习·分布式计算·数据并行·参数服务器
jackson凌6 小时前
【Java学习笔记】SringBuffer类(重点)
java·笔记·学习
huangyuchi.7 小时前
【Linux】LInux下第一个程序:进度条
linux·运维·服务器·笔记·进度条·c/c++
大写-凌祁8 小时前
论文阅读:HySCDG生成式数据处理流程
论文阅读·人工智能·笔记·python·机器学习
Unpredictable2228 小时前
【VINS-Mono算法深度解析:边缘化策略、初始化与关键技术】
c++·笔记·算法·ubuntu·计算机视觉
傍晚冰川9 小时前
FreeRTOS任务调度过程vTaskStartScheduler()&任务设计和划分
开发语言·笔记·stm32·单片机·嵌入式硬件·学习
Love__Tay10 小时前
【学习笔记】Python金融基础
开发语言·笔记·python·学习·金融
半导体守望者11 小时前
ADVANTEST R3764 66 R3765 67爱德万测试networki connection programming网络程序设计手册
经验分享·笔记·功能测试·自动化·制造
柠石榴12 小时前
【论文阅读笔记】《A survey on deep learning approaches for text-to-SQL》
论文阅读·笔记·深度学习·nlp·text-to-sql
田梓燊12 小时前
数学复习笔记 27
笔记