news 2026/6/16 4:34:54

二-五混合进制计数器原理与应用:从74LS90到任意进制设计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
二-五混合进制计数器原理与应用:从74LS90到任意进制设计

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

最近在整理一些老项目的设计笔记,翻到了一个挺有意思的电路模块——二-五混合进制计数器。乍一听这个名字,可能很多刚接触数字电路的朋友会觉得有点懵:“二进制”和“五进制”我们都懂,但这俩怎么还能“混合”在一起?这玩意儿到底有什么用?是不是为了考试而生的“理论怪胎”?其实不然,这个看似冷门的组合,在实际的电子系统中,尤其是在一些经典的时序控制和分频应用里,扮演着非常巧妙且高效的角色。它完美地结合了二进制计数的高效和五进制计数的周期性特点,用一个集成芯片就能实现十进制计数,是理解计数器级联和任意进制计数器设计的一个绝佳范例。今天,我就结合自己当年调试和应用的经历,把这个“混合进制”计数器从原理到应用,再到实际搭建时容易踩的坑,给大家掰开揉碎了讲清楚。无论你是电子专业的学生想深化理解,还是爱好者想动手做个频率计或电子钟,这篇文章都能给你提供从理论到焊板子的完整参考。

2. 核心原理:为什么是“二”和“五”?

要理解二-五混合进制计数器,我们得先抛开“芯片”这个概念,回到计数器最本质的功能:状态循环。一个计数器,本质上就是一个在有限个状态之间按特定顺序循环的状态机。

2.1 进制的基础:模与循环

我们常说的二进制计数器,是逢二进一,它的状态循环是 0->1->0->1...,我们称其“模”为2。五进制计数器则是逢五进一,状态循环是 0->1->2->3->4->0...,模为5。那么,如何得到一个模为10的计数器(即十进制计数器)?最直接的想法是设计一个拥有10个独立状态的电路,从0000(0)计数到1001(9)后归零。这当然可以,但电路复杂度较高。

更巧妙的方法是分解:10 = 2 × 5。我们可以用两个计数器级联,一个负责模2计数,一个负责模5计数。让它们协同工作,整体上就能实现模10的循环。这就是“二-五混合进制”思想的来源:将一个十进制计数周期,分解为一个2分频环节和一个5分频环节的串联

2.2 经典载体:74LS90芯片剖析

在TTL和CMOS逻辑芯片家族中,74LS90(及其兼容系列如74HC90、CD4017? 不对,CD4017是十进制计数/分配器,原理不同)是二-五混合进制计数器最典型的代表。我们以它为例来拆解内部逻辑。

74LS90内部并非一个不可分割的整体,它实际上包含了四个独立的触发器(Flip-Flop),并通过内部连线构成了两个相对独立的计数器模块:

  1. 一个独立的模2计数器:由一个触发器构成。时钟输入端为CPA,输出端为QA。每来一个CPA脉冲,QA状态翻转一次。
  2. 一个独立的模5计数器:由另外三个触发器构成,接成了一个异步的五进制计数器。时钟输入端为CPB,输出端为QB,QC,QD。它的状态循环是 000 -> 001 -> 010 -> 011 -> 100 -> 000...

关键在于,这两个模块可以通过外部或内部的不同连接方式,组合成不同进制的计数器。芯片的数据手册通常会提供一张功能表,清晰地说明了如何通过连接QACPB,或者使用不同的复位端(R0(1),R0(2),R9(1),R9(2))来设置工作模式。

注意:这里容易混淆的是“异步”和“级联”。74LS90内部的模2和模5部分是独立的,且模5部分本身是异步计数器(触发器非同时翻转)。当我们将它们级联成十进制模式时,整体上看,时钟信号也是从第一级(模2)传递到第二级(模5),因此整个十进制计数器也是异步十进制计数器。这意味着它的各个输出位(QA,QB,QC,QD)在时钟沿到来时不是同时变化的,会有一个微小的传播延迟依次翻转,在高速应用或需要同步输出的场合需要注意。

2.3 混合进制的时序波形分析

理解原理最好的方式就是看波形。当我们把74LS90配置为最常见的8421码十进制模式(将CPA接外部时钟,QA输出接CPB输入)后,用示波器观察,会看到非常清晰的时序关系。

外部时钟CPA每输入一个脉冲,QA翻转一次(模2工作)。QA实际上是一个2分频的方波。QA的下降沿(或上升沿,取决于芯片的具体设计,通常74LS90是下降沿触发)作为模5计数器模块的时钟CPB。因此,模5计数器每计满5个状态,实际上对应的是QA完成了5次完整的周期(即10个外部时钟CPA脉冲)。

输出QD QC QB QA组成的4位二进制码,其权重分别是8、4、2、1,状态从0000(0) 顺序增加到1001(9),然后复位到0000QD是最高位,它在一个完整的十进制周期内只出现一次高电平(在计数值8和9时),这正好是一个10分频的方波。

为什么这样设计是有优势的?从制造角度看,将通用的2分频和5分频单元集成在一个芯片内,提供了极大的灵活性。用户可以通过简单的引脚连接,选择将其用作:

  • 一个独立的二分频器(只用CPAQA)。
  • 一个独立的五进制计数器(只用CPBQB, QC, QD)。
  • 一个8421码十进制计数器(最常用)。
  • 甚至可以通过复位端设置成其他模值(如六进制、九进制)。这种“积木化”的设计思想,提高了芯片的通用性和性价比。

3. 核心应用场景与电路设计

二-五混合进制计数器绝不仅仅是教科书上的例题,它在很多实际电路中都是核心部件。下面我结合几个亲手做过的项目,来说说它的典型用法。

3.1 场景一:数字时钟的秒位与分位

这是最经典的应用。一个标准的电子钟需要秒(0-59)、分(0-59)、时(0-23)的计数。其中,秒和分的个位都是十进制计数(0-9),十位是六进制计数(0-5)。

  • 个位计数:直接使用一片74LS90,配置为8421码十进制模式,完美实现0-9循环。时钟信号来自前级的1Hz秒脉冲或分脉冲。
  • 十位计数:同样使用一片74LS90,但需要将其改造为六进制计数器。如何实现?利用其复位端R0(1)R0(2)。当这两个引脚都为高电平时,计数器会异步清零(输出QD QC QB QA = 0000)。我们想让计数器在计到6(即QD QC QB QA = 0110)时清零。观察二进制0110,其中QC=1,QB=1。我们将QCQB的输出分别连接到R0(1)R0(2)。这样,当计数到6的瞬间,QCQB同时为高,立即产生复位信号,使计数器瞬间回到0。由于是异步复位,状态0110只是一个极其短暂的毛刺,稳定显示的状态是0-5。这就实现了六进制计数。

实操心得:在这个电路里,异步清零的“毛刺”问题需要注意。这个短暂的0110状态可能会引起后续译码器(如74LS47驱动数码管)的瞬间误显示,或者如果后续电路对这个状态敏感可能会出错。通常,在低速的时钟显示中这个毛刺时间极短,人眼无法察觉,可以忽略。但在要求严格的系统中,可能需要使用同步清零的计数器(如74LS160)或增加额外的同步逻辑。

3.2 场景二:简易频率计的分频链

制作一个简单的数字频率计,需要将被测信号通过一系列十分频器,得到不同量程的闸门信号。例如,用一个1MHz的基准晶体振荡器,通过多级十分频,可以得到100kHz、10kHz、1kHz、100Hz、10Hz、1Hz等标准时基信号。

这里,每一级十分频都可以用一片74LS90来实现。将前一级的QD(10分频输出) 连接到下一级的CPA时钟输入,就可以轻松构建一个分频系数为10^N的分频链。这种方案电路规整,设计简单,在早期的数字仪器中非常常见。

注意事项:在构建多级异步分频链时,时钟延迟会累积。对于高频信号,这个累积的延迟可能会导致各级计数器之间的相对时序错位,在读取并行输出值时可能读到错误的瞬态组合(即“亚稳态”问题)。对于频率计这类需要精确捕捉某一时刻计数值的应用,在最后一级计数器输出后,需要增加一级锁存器(如74LS373),在闸门信号结束时统一锁存所有计数器的值,确保读取的是稳定值。

3.3 场景三:任意进制计数器的设计模板

74LS90是学习“反馈清零法”和“反馈置数法”设计任意进制计数器的绝佳教学工具。通过巧妙地连接其复位端(R0,R9),可以设计出除10以外的任意模值计数器。

设计步骤(以反馈清零法为例):

  1. 确定模值M:比如要设计一个模7计数器(状态0-6)。
  2. 写出状态S_M的二进制码:7的二进制是0111(QD QC QB QA = 0 1 1 1)。
  3. 找出反馈逻辑:我们需要在状态0111出现的瞬间清零。74LS90的异步清零条件是R0(1)=1R0(2)=1。观察0111,其中QC=1,QB=1,QA=1。我们可以选择其中任意两个为1的输出端接到R0(1)R0(2)。例如,选择QCQB
  4. 连接电路:将输出端QCQB分别连接到R0(1)R0(2)。同时,必须将R9(1)R9(2)接低电平(通常接地),以禁用置9功能。
  5. 验证:计数器将从0000开始计数,经过0001,0010... 到达0110(6) 后,下一个时钟沿到来,会先进入0111(7),但这个状态立即使R0(1)R0(2)变为高电平,触发器被异步清零,状态瞬间回到0000。因此,稳定的循环状态是00000110,共7个状态。

避坑技巧:反馈清零法会产生清零毛刺。这个毛刺的宽度取决于触发器复位端的传输延迟。如果这个毛刺过窄,可能不足以可靠地清零所有触发器,导致电路工作不稳定。一个实用的技巧是在反馈回路中增加一个基本的RS锁存器或一个小的延时电路(如两个反相器串联),来展宽清零脉冲,提高可靠性。当然,对于学习或低速实验,直接连接通常也能工作。

4. 从零开始搭建与调试实录

理论讲得再多,不如动手做一遍。这里我以“用74LS90搭建一个带数码管显示的十进制计数器”为例,记录完整的实操流程和调试节点。

4.1 物料清单与电路连接

核心器件

  • 74LS90:二-五混合进制计数器芯片,一片。
  • 74LS47:BCD码到7段数码管译码器,一片(共阳极数码管)。(若使用共阴极数码管,则选用74LS48或CD4511)。
  • 一位7段共阳极数码管
  • 电阻:220Ω 限流电阻8个(每个段一个),10kΩ 上拉电阻若干(用于未使用的控制引脚,防止悬空)。
  • 时钟源:可以使用555定时器构成的多谐振荡器,或者直接使用函数信号发生器提供低频方波(如1Hz-10Hz便于观察)。
  • 面包板、杜邦线、电源(5V)

电路连接步骤

  1. 电源与地:首先,确保所有芯片的Vcc(16脚)接+5V,GND(8脚)接0V。这是最容易出错却最致命的一步,务必先查通。
  2. 配置74LS90为十进制模式
    • 时钟输入:将外部时钟信号接至CPA(14脚)。
    • 级联连接:将QA(12脚)输出连接到CPB(1脚)输入。这样,CPA是总时钟,QA作为内部模5计数器的时钟。
    • 复位端处理:将R0(1)(2脚)、R0(2)(3脚)、R9(1)(6脚)、R9(2)(7脚)全部通过10kΩ电阻下拉到地(GND)。这意味着我们始终禁止了清零和置9功能,让计数器自由循环。这是最常用的工作状态。
  3. 连接译码器74LS47
    • 将74LS90的BCD码输出QA(12脚),QB(9脚),QC(8脚),QD(11脚) 分别连接到74LS47的数据输入端A(7脚),B(1脚),C(2脚),D(6脚)。注意顺序对应。
    • 74LS47的灯测试 (LT,3脚)、消隐输入 (BI/RBO,4脚)、消隐输出 (RBI,5脚) 如果不使用,需要接高电平(Vcc)以避免意外消隐。通常将LTBI/RBO接Vcc,RBI悬空或接Vcc。
  4. 驱动数码管
    • 74LS47的输出端a(13脚) 到g(9脚) 是低电平有效。将它们通过220Ω的限流电阻,分别连接到共阳极数码管对应的段引脚(a-g)。
    • 数码管的公共阳极(COM)接+5V。

4.2 上电调试与问题排查

连接好电路后,上电。如果时钟信号是1Hz左右的慢速脉冲,你应该能看到数码管从0到9循环显示。

常见问题与排查实录

  1. 问题:数码管完全不亮。

    • 排查思路:电源 > 数码管 > 译码器 > 计数器。
    • 步骤
      • 用万用表测量所有芯片的Vcc和GND引脚电压,确认是否为稳定的5V。
      • 检查数码管公共阳极是否接5V。可以临时将COM脚直接短接到5V测试。
      • 检查限流电阻是否接好,段引脚线是否连通。
      • 测试74LS47:将LT(灯测试) 引脚暂时接地。如果数码管所有段全亮,说明74LS47输出级和数码管部分是好的。如果不亮,重点检查这部分连接和数码管本身。
      • 如果灯测试通过,问题可能在前端。测量74LS90的QA-QD输出,在时钟作用下是否在变化。如果无变化,检查时钟信号是否真的送到了CPA脚,检查复位端R0R9是否被意外置高(应全部为低电平)。
  2. 问题:数码管显示乱码,或者显示的数字不是0-9。

    • 排查思路:BCD码连接错误 > 译码器配置错误 > 计数器状态异常。
    • 步骤
      • 最可能的原因:BCD码线序接错。仔细核对QA->A,QB->B,QC->C,QD->D这四根线的连接,一根接错就会导致译码错误。这是新手最高频的错误点。
      • 检查74LS47的BI/RBOLT引脚,确保它们接在了正确的电平上(BI/RBOLT应接高电平以正常工作)。
      • 用逻辑分析仪或示波器观察74LS90的四个输出引脚波形,看其状态变化是否符合8421码十进制计数的规律(QA最频繁,QD最慢)。如果波形不对,检查QACPB的级联线是否接好。
  3. 问题:计数到某个数字(如3或7)会跳变或闪烁一下。

    • 排查思路:接触不良 > 电源噪声 > 异步清零毛刺影响。
    • 步骤
      • 首先按压和晃动相关芯片和连线,看是否是接触不良导致的间歇性故障。
      • 在电源引脚附近增加一个0.1uF的瓷片电容进行退耦,消除电源线上的噪声。
      • 如果问题固定在某个状态出现,且该状态涉及多个输出位同时变化(如从30011到40100QBQA都变),这可能是由于74LS90是异步计数器,各触发器翻转有先后顺序,在瞬态过程中产生了短暂的非法BCD码(如0010),被译码器译出,造成瞬间错误显示。这在低速显示中可以接受。如果必须消除,可以考虑使用同步计数器(如74LS160)或在74LS47输入端加小电容滤波(但可能影响最高工作频率)。

4.3 性能边界与扩展思考

当你成功点亮数码管并看到它规律计数后,可以尝试做一些扩展实验,加深理解:

  • 提高时钟频率:将时钟信号提高到几十kHz甚至几百kHz,观察数码管。你会发现它因为视觉暂留变成了一个“8”或者不规则的亮斑。这说明显示部分需要扫描或锁存才能适应高速计数。
  • 级联实验:用另一片74LS90和74LS47,搭建一个十位计数器。将个位计数器的QD(10分频输出) 作为十位计数器的CPA时钟。你就得到了一个0-99的两位数计数器。这是理解多位计数器级联原理的关键一步。
  • 改用反馈清零法:断开R0引脚的下拉电阻,尝试按照前面所述的方法,将其改接为一个六进制计数器,验证显示是否从0-5循环。

5. 深入探讨:同步与异步,以及现代替代方案

虽然74LS90这类异步计数器简单易用,但在复杂的数字系统中,它存在明显的短板,主要是速度可靠性问题。

5.1 异步计数器的固有缺陷

  1. 传播延迟累积:在异步计数器中,后级触发器的时钟来自前级的输出。当时钟频率较高时,每一级触发器的传输延迟(tpd)会累积。从第一个触发器翻转到最后一个触发器稳定输出,需要经过多个tpd的时间。这限制了整个计数器的最高工作频率。总延迟 ≈ n * tpd(n为级数)。
  2. 译码尖峰:由于各触发器翻转不同步,在状态转换过程中,输出端会出现短暂的、非目标状态的中间组合。这些“毛刺”如果被后续组合逻辑电路(如译码器)采样,就可能产生错误的输出,即“译码尖峰”。这在精密的控制系统中是致命的。
  3. 复位/置位难题:异步清零/置位信号同样需要传播时间,且如果各触发器对复位信号的响应速度有微小差异,也可能导致瞬间的错误状态。

5.2 同步计数器的优势

为了解决上述问题,同步计数器应运而生,如74LS160(十进制)、74LS161(二进制)。在同步计数器中,所有触发器的时钟端连接在一起,由同一个公共时钟脉冲驱动。每个触发器是否翻转,取决于其自身的输入逻辑(由当前状态通过组合逻辑计算出的次态方程决定)。所有触发器的状态更新是同时发生的(在时钟边沿的建立和保持时间窗口内)。

优势对比

特性异步计数器 (如74LS90)同步计数器 (如74LS160)
时钟连接级联,后级时钟来自前级输出所有触发器共用同一时钟
速度较低,受累积延迟限制高,仅受单级触发器延迟限制
输出毛刺多,存在译码尖峰少,输出几乎同步变化
设计复杂度简单,内部连接固定稍复杂,需要预置和使能逻辑
功耗较低(非全时钟驱动)较高(所有触发器同时钟)
典型应用低速分频、简单时序、教学演示高速计数、复杂状态机、需要同步输出的系统

在现代FPGA/CPLD开发中,我们使用硬件描述语言(如Verilog)描述计数器时,综合工具默认生成的基本上都是同步计数器,因为其可靠性远高于异步设计。

5.3 二-五混合思想在现代数字设计中的体现

尽管单独的74LS90芯片在高速系统中已不常用,但“将复杂分频分解为较小素数分频的级联”这一设计思想依然极具价值。例如,在锁相环(PLL)频率合成器中,需要产生一个非常特定的频率。我们通常会先通过一个高稳定度的晶体振荡器产生一个基准频率(如10MHz),然后通过一系列的可编程分频器(包括N分频、M分频等)来合成目标频率。这里的N、M分频器,其核心仍然是一个计数器。将一个大数的分频比N,分解为几个小素数分频器的乘积(如N=60=2×2×3×5),分别用计数器实现,再进行级联,仍然是常见的思路。只不过,现在的“计数器”是写在Verilog代码里的一段逻辑,而不是由离散的74系列芯片搭成。

回过头来看,二-五混合进制计数器就像数字电路世界里的一个“活化石”,它封装了一个巧妙而基础的数字逻辑设计思想。通过动手搭建和调试它,你能直观地理解时钟、触发器、状态、反馈这些核心概念,以及异步和同步设计哲学的根本区别。这些经验,对于你日后理解更复杂的时序逻辑,乃至进行现代的数字芯片或FPGA设计,都有着不可替代的奠基作用。下次当你看到“74LS90”这个型号时,希望你能会心一笑,想起它内部那个精妙的二与五的舞蹈。

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

2000-2024年县域社会保险与福利数据

数据介绍数据整理全国各县社会保险与福利数据,包括城镇居民基本医疗保险参保人数,事业保险人数,新农村社保合作医疗等参保人数等数据。数据来源县域数据库,部分缺失较多。数据名称:县域社会保险与福利数据数据年份&…

作者头像 李华
网站建设 2026/6/16 4:31:54

氧化铝单晶:从宝石到半导体与激光硬核材料的制备与应用

1. 项目概述:从实验室到产业,揭秘“红宝石”的硬核之路提到“corundum”,很多人第一反应是珠宝店里璀璨的红宝石或蓝宝石。没错,刚玉(Corundum)正是这些名贵宝石的矿物学名称。但如果你以为它的价值仅仅停留…

作者头像 李华
网站建设 2026/6/16 4:28:56

Transformer长文本处理实战:语义分块与加权合并技术

1. 项目概述:为什么长文本让Transformer“喘不过气”,而分块合并是眼下最务实的解法Transformer模型处理长文本时卡顿、OOM、效果断崖式下跌——这几乎是我过去三年在NLP工程落地中听到最多的一句抱怨。不是模型不行,是原始设计就带着“内存天…

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

新程Alpha认知模型:4B参数端侧AI实战指南

1. 项目概述:一场被低估的端侧AI范式转移“中国团队推出新程Alpha认知模型:4B参数比肩GPT-5.4可端侧部署成本降90%”——这个标题刚刷出来时,我正调试一台搭载国产NPU的边缘工控机,手边还摊着上个月刚测完的某国际大厂7B模型在RK3…

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

软考软件设计师备考全攻略:从核心能力到实战技巧

1. 项目概述:为什么“软考软件设计师”值得你投入?如果你在软件行业摸爬滚打了两三年,或者刚从学校毕业,正处在技术能力提升和职业发展的十字路口,那你大概率听说过“软考”。而“软件设计师”作为软考中级资格里最经典…

作者头像 李华