news 2026/6/16 5:46:57

二-五混合进制计数器:从模数分解到74LS90实战应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
二-五混合进制计数器:从模数分解到74LS90实战应用

1. 项目概述:从“奇怪”的进制到实用的计数逻辑

在数字电路和嵌入式系统的世界里,计数器是最基础也最核心的模块之一。我们最常接触的是二进制计数器,它简单、高效,是计算机的基石。十进制计数器也常见于需要直接与人交互的场合,比如电子钟、频率计。但当我第一次听到“二-五混合进制计数器”时,心里也犯嘀咕:这又是什么“奇技淫巧”?二进制和五进制怎么混在一起?这玩意儿到底有什么用?

实际上,这种混合进制计数器并非实验室里的玩具,而是一种非常经典且实用的设计。它巧妙地结合了二进制和五进制的特性,最终实现了一个十进制计数器。没错,它的核心目标就是构建一个十进制计数器,但实现路径和我们直接用四个触发器做8421 BCD码计数器不同。它用一个触发器负责二进制计数(模2),用另外三个触发器构成一个五进制计数器(模5),然后将两者级联,2×5=10,一个完整的十进制计数器就诞生了。这种结构在早期的数字集成电路(比如经典的74LS90)中非常普遍,其设计思想体现了模块化、资源优化和特定场景下的性能优势。

理解它,不仅能让你读懂很多老芯片的数据手册,更能深刻体会数字系统设计中“分解”与“组合”的艺术。无论是电子爱好者修复老设备,还是学生深入理解计数器原理,亦或是工程师在设计特定分频电路时,掌握二-五混合进制计数器都大有裨益。今天,我就来彻底拆解这个“混合体”,从原理、设计到实现和调试,让你不仅知其然,更知其所以然。

2. 核心原理与设计思路拆解

2.1 为什么是“二”和“五”?—— 模数分解的智慧

设计一个十进制计数器,最直观的想法是用四个D触发器或JK触发器,通过特定的反馈逻辑,让它在计数到9(1001)后复位到0(0000),这就是标准的8421 BCD码计数器。那为什么还要搞出一个“二-五混合”的版本呢?这背后有几个关键的考量:

  1. 模块化与标准化:在早期集成电路设计中,芯片面积和晶体管数量是宝贵资源。如果能用更小的、标准的子模块组合成复杂功能,就能提高设计效率和芯片利用率。二进制计数器(模2)和五进制计数器(模5)作为基本模块,其设计相对独立且规整。
  2. 分频灵活性:二-五混合结构天然提供了两个分频输出。二进制部分输出是对输入时钟的2分频(CP/2),五进制部分输出是对其自身输入的5分频。如果你需要一个2分频、5分频或10分频的时钟信号,这个计数器可以直接提供,而不需要额外的逻辑电路。这在时钟管理电路中非常有用。
  3. 简化反馈逻辑:在某些实现中(特别是异步计数器),将反馈复位逻辑分散到两个较小的计数器模块中,可能比在一个四位计数器上实现复杂的反馈网络更简单,更易于理解和调试。
  4. 历史与兼容性:像74LS90、74HC390这样的经典芯片采用了这种结构,成为了行业标准。理解它是与这些广泛使用的硬件对话的基础。

所以,“二”和“五”的选择,是出于“10 = 2 × 5”的数学分解,更是出于工程上对模块化、灵活性和经济性的追求。

2.2 两种经典实现模式:异步与同步

二-五混合进制计数器主要有两种实现方式,对应着两种不同的时钟策略:

异步(纹波)计数器模式:这是最经典、最直观的实现方式。二进制计数器和五进制计数器是独立的,且它们之间的时钟是异步的。通常,输入时钟脉冲先驱动二进制计数器(第一位),二进制计数器的输出(Q0)作为五进制计数器的时钟输入。五进制计数器内部的三个触发器也采用异步级联。这种模式的优点是电路非常简单,触发器用量少。但缺点也很明显:由于后级触发器要等前级触发器翻转稳定后才能动作,计数速度较慢,且输出存在短暂的“毛刺”(竞争冒险),在高频或对时序要求严格的场合需谨慎使用。

同步计数器模式:在这种模式下,二进制和五进制部分的所有触发器都使用同一个主时钟脉冲(CP)来驱动。计数器状态的改变由统一的时钟边沿控制。实现十进制计数功能,需要设计一个统一的、复杂的组合逻辑电路(通常基于触发器输入端的激励方程)来控制所有触发器的状态转移。同步模式的优点是速度快,所有输出几乎同时变化,无纹波延迟问题,工作更可靠。缺点是电路更复杂,需要更多的逻辑门来生成控制信号。

对于初学者和大多数应用场景,我们从异步模式入手理解会更加顺畅。下文的设计与实现也将以异步模式为重点。

3. 异步式二-五混合进制计数器详细设计

我们以使用JK触发器(或可配置为T‘触发器的D触发器)来构建一个异步二-五混合十进制计数器为例。我们将二进制部分标记为触发器A(最低位),五进制部分标记为触发器B、C、D(其中D是五进制部分的最高位)。最终,A是二进制输出(权重1),B、C、D构成五进制输出(权重2, 4, 1?这里需要注意编码!),整体构成一个十进制计数器。

3.1 二进制部分(模2)设计

这部分最简单。只需要一个JK触发器。

  • 连接方式:将JK触发器的J和K输入端都接高电平(逻辑1)。这样,每来一个时钟脉冲的下降沿(假设我们使用下降沿触发),触发器的状态就翻转一次。
  • 功能:实现0和1的交替变化,即模2计数。其输出QA的频率是输入时钟CP频率的1/2。
  • 时钟:CP直接接到该触发器的时钟输入端。

注意:这里默认使用下降沿触发。如果芯片是上升沿触发,逻辑相同,但级联时要注意。

3.2 五进制部分(模5)设计

这是设计的核心。我们需要三个触发器(B, C, D)来计数0到4(共5个状态)。我们需要设计它们的连接方式,使得在计到4(即状态“100”,假设我们采用某种编码)之后,下一个时钟脉冲到来时,所有触发器复位到“000”。

这里需要一个关键设计:状态编码与反馈复位。我们通常采用简单的二进制顺序编码(000, 001, 010, 011, 100)来表示0到4。当状态为100(即QB=0, QC=0, QD=1)时,表示已经计到4。下一个脉冲应该让状态回到000。

对于异步实现,五进制部分内部的三个触发器也采用异步级联。常见的连接方法是:

  • 时钟连接:触发器B的时钟来自二进制部分QA的输出(下降沿)。触发器C的时钟来自QB的输出,触发器D的时钟来自QC的输出。这样,前一级的翻转作为后一级的时钟。
  • 复位逻辑:我们需要在状态为100(QD=1, QC=0, QB=0)时,产生一个复位信号,同时清空B、C、D三个触发器。观察这个状态:QD是高电平,而QC和QB是低电平。我们可以用QD和QC’(QC的非)、QB’(QB的非)相“与”来产生复位条件。但更常见和简洁的利用JK触发器特性的方法是:将QD的输出反馈连接到触发器B和C的复位端(或置位端,取决于有效电平)
    • 具体来说,当QD=1时(表示计到了4或将要进入4),这个高电平通过一个逻辑门(或直接连接,如果允许)送到触发器B和C的异步复位端(R),强制它们在下个时钟沿到来前或当时就清零。同时,QD自身的清零则需要通过其自身的输入控制端(J,K)来实现,当处于状态100时,使其J=0, K=1,这样当下一个时钟(来自QC)到来时,QD就会翻转为0。
  • 触发器输入设置:为了满足五进制的状态转移,每个JK触发器的J、K端需要根据当前状态进行设置。这需要画出状态转移表,然后化简卡诺图得到激励方程。一个经典的74LS90内部五进制部分连接方式是:
    • 触发器B(最低位):JB = QD‘, KB = 1。(QD非接J,保证在计到4后,下一个脉冲让B保持0;K接1保证可翻转)。
    • 触发器C:JC = 1, KC = 1。(始终处于翻转模式,但受时钟和复位控制)。
    • 触发器D(最高位):JD = QB · QC, KD = 1。(当QB和QC同时为1时,JD=1,下一个时钟QD翻转为1;否则JD=0,QD可能清零或保持)。

这个逻辑稍微有点绕,其核心思想是利用了JK触发器的“保持”、“置1”、“清零”功能,并通过QD反馈来在计到5(实际上是第5个脉冲,状态从100变为000)时重置整个五进制部分。

3.3 整体级联与输出

将两部分级联:

  1. 外部时钟CP接二进制部分(触发器A)的时钟输入。
  2. 二进制部分的输出QA接五进制部分第一位(触发器B)的时钟输入。
  3. 五进制部分内部的时钟连接为:QB输出接C时钟,QC输出接D时钟。
  4. 按照上述逻辑连接好各触发器的J、K端以及必要的反馈复位线(如QD到B、C的复位)。

这样,整个计数器就构成了一个异步十进制计数器。它的计数序列是:

A (二进制位)D C B (五进制位)十进制值
00 0 00
10 0 01
00 0 12
10 0 13
00 1 04
10 1 05
00 1 16
10 1 17
01 0 08
11 0 09

注意,这里五进制部分(DCB)的权重并不是标准的2-4-2-1码或其他BCD码,它就是一个独立的三位二进制数(0-4),与二进制位A组合后,整体值 = A + 2 * (D C B组成的二进制值)。当DCB=100(4)且A=1时,代表9,下一个脉冲到来,A先翻转为0,这个下降沿触发五进制部分,五进制部分从100归零为000,整体进入0。

输出:你可以从QA得到2分频信号,从QD(五进制最高位)得到10分频信号(因为每10个输入脉冲,QD完成一个周期)。

4. 基于标准芯片的快速实现(以74LS90为例)

理论可能有些枯燥,我们直接看一个最经典的现实例子:74LS90异步十进制计数器芯片。它的内部就是标准的二-五混合结构,并且引脚配置非常清晰。

4.1 74LS90引脚与功能配置

74LS90有14个引脚,关键引脚如下:

  • CP1 (Pin 14):二进制计数器(触发器A)的时钟输入。
  • CP2 (Pin 1):五进制计数器(触发器B, C, D)的时钟输入。
  • QA, QD, QC, QB (Pin 12, 11, 8, 9):输出引脚。注意顺序,QA是二进制输出,QD、QC、QB是五进制输出(QD是最高位)。
  • R0(1), R0(2) (Pin 2, 3):异步复位端(高电平有效)。当两者都为高电平时,计数器清零(QA~QD=0)。
  • R9(1), R9(2) (Pin 6, 7):异步置9端(高电平有效)。当两者都为高电平时,计数器置位为9(QA=1, QD=1, QC=0, QB=0)。

如何配置成一个标准的十进制计数器?

  1. 时钟连接:将外部时钟信号接到CP1 (Pin 14)。将QA (Pin 12) 输出连接到CP2 (Pin 1)。这就完成了二-五混合级联。
  2. 复位管理:将R0(1)和R0(2)接地(除非你需要手动清零)。将R9(1)和R9(2)接地(除非你需要手动置9)。
  3. 输出:从QA, QB, QC, QD引脚读取计数状态。它们组成的8421码就是当前的十进制数(注意:这里QD是最高位,对应8;QC对应4;QB对应2;QA对应1。但这是输出编码,内部逻辑仍是混合的)。

4.2 实操连接与测试步骤

  1. 准备材料:74LS90芯片一块,面包板,5V电源,LED灯4个(带限流电阻,如220Ω),时钟信号源(可以用555定时器构成的多谐振荡器,或者单片机I/O口模拟,频率建议在1-10Hz便于观察),杜邦线若干。
  2. 连接电源:将芯片的Vcc (Pin 5) 接+5V,GND (Pin 10) 接地。
  3. 配置模式:用杜邦线将Pin 12 (QA) 连接到 Pin 1 (CP2)。将Pin 2, 3, 6, 7 都接地。
  4. 接入时钟:将你的低频时钟信号源(如1Hz方波)接到 Pin 14 (CP1)。
  5. 添加显示:将QA, QB, QC, QD四个输出引脚分别通过一个220Ω电阻连接到一个LED的正极,LED负极接地。这样LED亮代表‘1’,灭代表‘0’。
  6. 上电测试:接通电源。你应该能看到4个LED按照0000(0), 0001(1), 0010(2)... 1001(9)的二进制顺序循环点亮。QA对应的LED闪烁频率应该是输入时钟的一半,QD对应的LED闪烁频率应该是输入时钟的十分之一。

实操心得:在面包板上插接74LS90时,务必注意芯片的缺口方向,别插反了。第一次测试时,时钟频率一定要低(1Hz左右),这样你才能用眼睛看清楚LED的计数过程,验证0-9的循环是否正确。如果LED显示乱跳,首先检查所有接地引脚(尤其是R0和R9)是否可靠接地,悬空的TTL输入端会感应噪声,导致意外复位或置位。

5. 常见问题、故障排查与进阶应用

5.1 调试过程中遇到的典型问题

即使按照图纸连接,也可能遇到问题。下面是一些常见故障和排查思路:

问题现象可能原因排查步骤
计数器不计数,输出全零或全高1. 电源未接通或电压不对。
2. 复位端(R0)或置位端(R9)被意外拉高。
3. 时钟信号有问题(幅度不足、频率过高)。
1. 用万用表测量芯片Vcc和GND间电压是否为稳定的4.75-5.25V。
2. 检查连接到R0(1)、R0(2)、R9(1)、R9(2)的导线是否确实接地,可用万用表测其对地电压应为0V。
3. 用示波器或逻辑分析仪查看CP1引脚是否有清晰的时钟波形。对于异步计数器,输入时钟频率不能超过其最大工作频率(74LS90约32MHz)。
计数序列错误(如跳数、不进位)1. 级联时钟连接错误(QA未接CP2)。
2. 输出负载过重(LED电流过大)。
3. 触发器时序问题(异步纹波导致冒险)。
1. 确认Pin 12 (QA) 和 Pin 1 (CP2) 已可靠连接。
2. 确保LED的限流电阻足够大(通常220Ω-1kΩ),或者先断开LED,用逻辑笔或示波器观察输出引脚波形是否正确。
3. 降低时钟频率。异步计数器在状态转换时,由于纹波效应,输出会出现短暂的毛刺或中间状态,频率过高可能导致后续电路误判。
只有二进制部分工作,五进制部分不动1. 五进制部分时钟输入(CP2)无信号。
2. 五进制部分内部反馈复位逻辑异常,导致其一直处于复位状态。
1. 用示波器检查CP2(Pin 1)是否有来自QA的时钟信号。
2. 检查芯片是否损坏。可以尝试将外部时钟直接接到CP2(Pin 1),同时将CP1(Pin 14)接地或接高,看五进制部分能否独立计数0-4。
显示到某个数字后卡住1. 反馈逻辑未能正确复位。
2. 在特定状态时,由于竞争冒险产生了尖峰脉冲,触发了异步复位/置位。
1. 仔细分析卡住的状态对应的输出编码,对照数据手册的状态图,检查是否是预期的状态转移点。
2. 在电源引脚附近增加一个0.1uF的瓷片电容去耦,可以减少电源噪声。在时钟信号线上串联一个小电阻(如22-100Ω)也可以减缓边沿,减少振铃和反射。

5.2 从异步到同步的设计思考

如果你需要更高的工作频率或更干净的输出波形,就需要设计同步的二-五混合计数器。这涉及到使用状态机设计方法:

  1. 列出状态转移表:定义5个状态(S0-S4)代表五进制部分的0-4,再加上二进制部分的0/1,实际上有10个状态组合。
  2. 选择触发器类型:通常选择D触发器或JK触发器。
  3. 推导激励方程:根据状态转移表,画出每个触发器下一个状态(或J,K输入)的卡诺图,进行化简,得到最简的逻辑表达式。
  4. 绘制电路图:根据激励方程,用逻辑门和触发器搭建电路。所有触发器的时钟端连接在一起,接主时钟CP。

同步设计更复杂,但性能优越。在现代FPGA/CPLD开发中,我们通常直接使用硬件描述语言(如Verilog)来描述十进制计数器行为,由综合工具自动生成最优电路,它可能会综合出同步的二进制或混合逻辑,但我们不必关心底层是“二-五混合”还是“标准8421”结构,这是抽象带来的便利。然而,理解底层的二-五混合结构,对于阅读老式原理图、进行底层时序分析或资源优化,仍有不可替代的价值。

5.3 扩展应用:分频器与时钟管理

二-五混合计数器天生就是一个灵活的分频器。除了得到10分频信号,你还可以:

  • 独立使用:将时钟接CP2,CP1接地,则QD输出是5分频信号。将时钟接CP1,CP2悬空(或接固定电平),则QA输出是2分频信号。
  • 级联成大模数计数器:将多个74LS90级联,可以构成100进制、1000进制等计数器。例如,将第一个90的QD(十分频输出)作为第二个90的CP1输入,就构成了100进制计数器。这在需要大范围计数的场合(如频率计)非常常见。
  • 生成非50%占空比的波形:通过从不同的触发器输出取信号,你可以得到各种占空比的波形。例如,从QA得到的是50%占空比的2分频波,从QD得到的是10%占空比(高电平一个时钟周期)的10分频波。这在某些特定时序控制中可能有用。

我个人在早期设计一个低速数据采集板的时序电路时,就曾用两片74HC390(双二-五混合计数器)构建了一个1000分频的电路,为ADC提供转换启动信号。它的好处是电路极其简洁,只用到了计数器芯片和少量电阻电容,无需编程,可靠性高。虽然在今天看来可以用一个小型CPLD或单片机的定时器轻松实现,但在那个追求极致成本和稳定性的场合,这种纯硬件的解决方案依然散发着独特的魅力。理解这些“老派”数字逻辑,就像掌握了一套电子世界的“内功”,让你在面对任何黑盒子时,都能多一份拆解和理解的底气。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/16 5:42:30

英文名性别预测:从特征工程到生产部署的完整实践

1. 项目概述:一个名字性别预测模型的完整落地路径 你有没有遇到过这样的场景:手头有一批用户注册数据,姓名字段齐全,但性别信息大量缺失;或者在做用户画像时,想快速补全基础人口属性,又不想花成…

作者头像 李华
网站建设 2026/6/16 5:40:33

从CTF实战解析SQL注入:Union攻击与MD5绕过防御

1. 项目概述:从一道CTF题看SQL注入的攻防博弈最近在复盘一些经典的网络安全挑战题,又遇到了“babysqli”这个老朋友。这名字起得挺有意思,“Baby”听起来人畜无害,好像是个入门级的SQL注入练习,但真上手去解&#xff0…

作者头像 李华
网站建设 2026/6/16 5:25:55

多媒体娱乐终端设计:从硬件选型到系统调优的全链路实践

1. 项目概述:从“盒子”到“中心”的进化几年前,我还在为一个客户调试客厅里的智能电视,他指着旁边堆着的游戏机、电视盒子、蓝光播放器,抱怨说:“遥控器都五六个了,每次想干点啥都得先搞清楚该按哪个&…

作者头像 李华
网站建设 2026/6/16 5:22:53

计算机毕业设计之jspKTV管理系统

随着KTV规模的不断扩大,人流数量的急剧增加,有关KTV的各种信息量也在不断成倍增长。面对庞大的信息量,就需要有KTV管理系统来提高包厢预订的效率。通过这样的系统,我们可以做到信息的规范管理和快速查询,从而减少了管理…

作者头像 李华
网站建设 2026/6/16 5:20:51

OpenClaw离线智能体实战:Windows/CentOS本地AI工作站全栈部署

1. 这不是“又一个本地AI教程”:为什么2026年离线智能体必须用OpenClaw打底你肯定见过太多标题党——“三分钟部署本地大模型”、“手机跑Qwen3不是梦”、“零基础搭建AI助手”。但现实是,90%的所谓“本地AI教程”在第二步就卡死:模型加载失败…

作者头像 李华
网站建设 2026/6/16 5:19:55

申论笔记整理归纳与结构|模板|范文

申论笔记整理归纳与结构|模板|范文资料全科都有申论笔记整理归纳 PDFhttps://tool.nineya.com/s/1jr3ck8t3 【语文真题】1. 下列句子中加点词的词类活用方式与其他三项不同的是( ) A. 春风又绿江南岸 B. 先破秦入咸阳者王之 C. 稍稍宾客其父 D. 渔人甚异…

作者头像 李华