74LS90和74LS161计数器实验:从零开始搭建5/6进制电路(附详细接线图)

📅 发布时间:2026/7/7 11:08:01 👁️ 浏览次数:
74LS90和74LS161计数器实验:从零开始搭建5/6进制电路(附详细接线图)
从零到一用经典74系列芯片亲手搭建5/6进制计数器还记得第一次在面包板上点亮LED看着它随着脉冲有节奏地闪烁时的那种兴奋吗对于电子工程和数字电路的初学者来说计数器实验往往是叩开时序逻辑大门的第一块砖。它不像组合逻辑那样“直来直去”而是引入了“状态”和“时间”的概念电路的行为开始有了记忆和节奏。今天我们就抛开枯燥的理论推导完全从一个实践者的角度手把手带你用两片经典的74系列芯片——74LS90和74LS161从零开始搭建出5进制和6进制计数器。我会把重点放在那些教科书上不会细讲但实际操作中一定会遇到的细节上比如如何看懂芯片引脚图避免接反如何用万用表快速排查故障以及两种经典设计方法反馈复位法和预置法背后的设计思路与实战权衡。无论你是正在上数字电路实验课的学生还是对硬件感兴趣的DIY爱好者这篇文章都将是一份详尽的“实验室笔记”。1. 实验前的准备认识我们的“积木”在开始搭建任何电路之前彻底理解你手中的每一个元件是成功的第一步。盲目接线不仅效率低下更容易损坏宝贵的芯片。1.1 核心芯片74LS90与74LS161深度解析74LS90是一颗非常经典的异步十进制计数器。说它“异步”是因为其内部的两个计数器模块一个二进制一个五进制的时钟并非完全同步这带来了设计上的一些灵活性也带来了一些时序上的注意事项。它最吸引人的特点是可以通过不同的引脚连接方式轻松配置成二、五、六、十等多种进制堪称计数器中的“瑞士军刀”。它的引脚功能需要特别关注时钟输入端CP0和CP1。CP0驱动内部的二进制计数器Q_A输出CP1驱动内部的五进制计数器Q_D, Q_C, Q_B输出。要实现十进制计数需要将 Q_A 连接到CP1。复位端R0(1)和R0(2)是高电平有效的复位引脚当两者同时为高时计数器清零Q_D~Q_A 0000。R9(1)和R9(2)则是置9端同时为高时输出为10019。输出端Q_A 是最低位LSBQ_D 是最高位MSB。这一点在连接显示器件时绝对不能搞错。相比之下74LS161是一颗同步4位二进制计数器。“同步”意味着所有触发器在同一个时钟上升沿同时动作输出信号稳定几乎没有毛刺在需要精确时序的系统中更受青睐。它的功能也强大得多引脚/功能符号作用描述有效电平异步清零CLR立即将输出 QD~QA 清零不受时钟控制低电平时钟输入CLK上升沿触发计数、预置或保持上升沿并行数据输入A,B,C,D预置数时将数据加载到相应触发器-预置使能LOAD使能并行加载功能低电平计数使能ENP,ENT两者同时为高时芯片才在时钟上升沿计数高电平行波进位输出RCO当计数到最大值1111且ENT1时输出高电平用于级联高电平注意74LS161的CLR是异步清零只要它变低输出立即清零这是一个非常“强硬”的控制信号。而LOAD是同步预置需要等待下一个时钟上升沿到来时才生效。1.2 工具与物料清单除了芯片以下物品缺一不可。我强烈建议你按照这个清单在实验前逐一核对面包板至少一块中号面包板确保电源和地线分布条连接可靠。直流稳压电源提供5V电压。务必在通电前用万用表确认电压值过压会瞬间烧毁所有74LS芯片。万用表用于测量电压、通断是调试电路时最得力的助手。逻辑电平开关用于手动产生高5V、低0V电平信号控制复位、预置等引脚。单脉冲发生器替代手动开关产生干净的时钟脉冲。如果没有可以用一个逻辑开关配合一个防抖电路如施密特触发器来模拟。LED与限流电阻用于显示输出状态。每个输出引脚接一个LED阳极串一个220Ω-1kΩ的电阻后接5V阴极接芯片输出引脚。当输出为低电平时LED点亮。杜邦线准备足够多、不同颜色的线。一个良好的习惯是电源用红色地用黑色或蓝色信号线用其他颜色。这能极大减少接线错误。2. 实战一用反馈复位法构建6进制计数器74LS90反馈复位法的核心思想非常直观让计数器正常计数一旦它数到我们不需要的那个状态比如6就立即产生一个信号强行将计数器“拉回”起始状态0。这种方法设计简单但需要注意复位信号的“毛刺”问题。2.1 设计思路与状态分析我们要设计一个6进制计数器即计数序列为0 - 1 - 2 - 3 - 4 - 5 - (回到0)。 用二进制表示0: 00001: 00012: 00103: 00114: 01005: 01016: 0110 无效状态用于触发复位我们的目标是当计数器计到0110十进制6这个状态时利用这个状态的特征Q_C1, Q_B1, Q_A0产生一个高电平信号同时送到74LS90的R0(1)和R0(2)引脚使其立即复位为0000。由于74LS90是异步复位这个复位动作是瞬间完成的因此0110状态实际上只是一个极其短暂的“过渡态”在输出端几乎观察不到。2.2 详细接线步骤与原理图下面我们来一步步接线。我们假设使用CP0作为时钟输入并将 Q_A 连接到CP1使芯片先作为十进制计数器工作然后再通过反馈对其进行“改造”。基础连接将芯片的Vcc(引脚16) 接 5VGND(引脚8) 接电源地。将CP1(引脚1) 与Q_A(引脚12) 用导线短接。这是配置74LS90为8421码十进制计数器的关键一步。将R0(1)(引脚2) 和R0(2)(引脚3) 通过一个10kΩ的上拉电阻连接到 5V确保它们常态为高不影响计数。同时将R9(1)和R9(2)(引脚6, 7) 直接接地禁用置9功能。构建反馈复位网络我们需要一个电路当且仅当Q_C1,Q_B1,Q_A0时输出高电平。观察这三个条件Q_C和Q_B需要为1Q_A需要为0即非1。这正好可以用一个与门和一个非门来实现。由于我们手头可能没有单独的逻辑门芯片这里展示一个更通用、更清晰的方案也适用于理解逻辑使用一个三输入与门但其中一个输入来自Q_A经过一个非门或使用一个与非门搭配适当的连接实现同样功能。简化实战接法对于74LS90Q_A是二进制计数位。在60110这个状态Q_D0Q_C1Q_B1Q_A0。我们可以发现Q_C和Q_B同时为1是特征。一个取巧且稳定的方法是将Q_C(引脚8) 和Q_B(引脚9) 直接分别连接到R0(1)和R0(2)。为什么可以因为当计数到50101时Q_C0,Q_B0复位端无效。下一个时钟沿到来计数器试图变为60110此时Q_C和Q_B几乎同时变为高电平瞬间满足两个复位端均为高的条件计数器立即被清零。清零后Q_C和Q_B又变回低电平复位信号消失。这个过程非常快。重要提示这种直接将输出接到复位端的做法依赖于74LS90内部复位门的响应速度。在实际中完全可行也是教材中常见的方法。但你要理解在Q_C和Q_B从低变高的瞬间可能存在一个极短的竞争冒险导致复位信号有毛刺。对于更高要求的电路可以在Q_C和Q_B与复位端之间加入一个基本的RS锁存器来消除毛刺保证复位信号的宽度。连接时钟与显示将外部时钟信号单脉冲发生器连接到CP0(引脚14)。将Q_D,Q_C,Q_B,Q_A(引脚11, 8, 9, 12) 分别通过220Ω限流电阻连接到LED的阴极LED阳极接5V。完成后的核心连接逻辑如下图所示此处以文字描述示意5V | 10kΩ | ----- R0(1) (Pin 2) | 10kΩ | ----- R0(2) (Pin 3) | GND (通过上拉电阻提供默认高电平) 时钟脉冲 ------- CP0 (Pin 14) Q_A (Pin 12) ---- CP1 (Pin 1) // 构成十进制计数模式 // 反馈回路核心 Q_C (Pin 8) ---------------------- R0(1) (Pin 2) Q_B (Pin 9) ---------------------- R0(2) (Pin 3) // 输出显示 Q_D (Pin 11) ---[220Ω]---||--- 5V Q_C (Pin 8) ---[220Ω]---||--- 5V Q_B (Pin 9) ---[220Ω]---||--- 5V Q_A (Pin 12) ---[220Ω]---||--- 5V2.3 上电调试与故障排查接通电源前再次目视检查所有连线特别是电源和地线是否接反、接错。现象观察手动发送单脉冲观察LED显示的二进制数。它应该依次显示0000 - 0001 - 0010 - 0011 - 0100 - 0101 - (瞬间闪烁) - 0000。你会发现计到50101之后下一个脉冲到来时LED会快速闪动一下然后归零那个闪动就是短暂的“0110”状态。常见问题1计数器不计数一直显示0000。排查首先检查R0(1)和R0(2)的电压。如果它们被意外地永久拉高比如上拉电阻接成了直接接5V或者反馈线接错导致常高计数器会一直处于复位状态。用万用表测量这两个引脚对地电压在计数到5之前它们应该是低电平接近0V。常见问题2计数器变成了5进制数到4就归零。排查这很可能是因为反馈信号接错了。你可能只将Q_B接入了复位端而Q_C没有接入或接触不良。当计数到40100时下一个状态是50101此时Q_B从0变1如果只有Q_B连接到了R0(2)而R0(1)通过上拉电阻为高那么Q_B变高的瞬间就满足了两个复位端均为高的条件导致在状态50101时就复位了。确保Q_C和Q_B都可靠地连接到了对应的复位引脚。3. 实战二用反馈复位法构建5进制计数器74LS161现在我们来挑战同步计数器74LS161。用反馈复位法设计5进制计数器思路类似但具体操作有所不同因为74LS161的复位(CLR)是低电平有效且是异步的。3.1 设计思路识别无效状态并产生清零信号5进制序列0 - 1 - 2 - 3 - 4 - (回到0)。 二进制序列0000 - 0001 - 0010 - 0011 - 0100 - (回到0000)。 我们需要在计数器到达0101十进制5时将其清零。注意74LS161的CLR是低电平有效所以我们需要在状态5时产生一个低电平脉冲。状态50101的特征是Q_C1,Q_A1(Q_D0,Q_B0)。我们可以用一个与非门NAND来检测这个状态当Q_C1且Q_A1时与非门输出低电平。这个低电平正好连接到CLR引脚。3.2 接线详解与门电路的应用这里我们假设使用一个74LS00四2输入与非门芯片来构成反馈逻辑。74LS161基础配置Vcc(16) 接 5VGND(8) 接地。将计数使能端ENP(7) 和ENT(10) 接高电平5V使芯片始终处于允许计数模式。将预置使能端LOAD(9) 接高电平5V禁用预置功能。异步清零端CLR(1)先通过一个10kΩ电阻上拉到5V使其常态为高无效等待反馈信号的控制。数据输入端A,B,C,D(3,4,5,6) 可以悬空因为我们不使用预置功能。构建反馈清零电路取74LS00中的一个与非门。将其两个输入端分别连接到74LS161的Q_C(引脚2) 和Q_A(引脚14)。该与非门的输出端连接到74LS161的CLR(引脚1)。这个连接实现了以下逻辑当Q_C和Q_A同时为高电平时即状态0101与非门输出低电平触发清零。连接时钟与显示时钟信号接CLK(引脚2)。输出Q_D,Q_C,Q_B,Q_A(引脚11, 12, 13, 14) 接LED显示接法同前。关键逻辑的伪代码描述// 反馈复位逻辑 assign nCLR !(Q_C Q_A); // 使用一个与非门当Q_C和Q_A都为1时输出0 // 芯片连接 CLK external_clock; ENP 1‘b1; ENT 1’b1; LOAD 1‘b1; CLR nCLR; // 受反馈逻辑控制3.3 同步清零与异步清零的思考你可能会问既然状态50101是一个无效的过渡态我们能否设计成在状态40100的下一个时钟边沿直接清零而不经过状态5这就是同步清零的思路。但74LS161本身没有同步清零引脚。我们可以利用其**同步预置(LOAD)**功能来实现类似效果这也就是我们接下来要讲的预置法。反馈复位法异步清零的优点是电路简单缺点是会在输出端产生一个极窄的毛刺状态5在高速或对输出稳定性要求极高的场合可能有问题。4. 实战三用预置法构建5进制计数器74LS161预置法是更优雅、更可靠的方法。它不再依赖“计数到非法状态再复位”而是在计数器达到某个特定状态时利用这个状态产生一个加载信号在下一个时钟沿到来时将预先设置好的数据比如0000并行加载进计数器。由于加载动作与时钟同步输出完全没有毛刺。4.1 预置法原理从任意起点开始计数我们以设计一个从0011 计数到 0111的5进制计数器为例。序列为0011 - 0100 - 0101 - 0110 - 0111 - (回到0011)。 这里起始状态预置数是0011终止状态检测状态是0111。当计数器计到0111时我们产生一个低电平信号给LOAD那么在下一个时钟上升沿芯片就会将A,B,C,D引脚上的数据0011重新加载进去从而实现循环。4.2 两种经典序列的实现对比案例A实现0000~0100的5进制计数预置数D0, C0, B0, A0(即接地)。检测状态0100十进制4。特征Q_C1其他为0。反馈逻辑需要一个电路在Q_C1且Q_B0且Q_A0时输出低电平。这可以用一个与非门实现LOAD !(Q_C !Q_B !Q_A)。由于74LS00是与非门我们需要先将Q_B和Q_A反相用另外两个与非门接成非门再和Q_C进行三输入与非。或者更简单地因为Q_D始终为0我们可以检测Q_C1且Q_D0即!Q_D1LOAD !(Q_C !Q_D)。用一个与非门和一个非门即可。案例B实现0011~0111的5进制计数更通用预置数设置将D0, C0, B1, A1分别接对应的电平B和A接5VD和C接地。检测状态0111十进制7。特征Q_C1,Q_B1,Q_A1。反馈逻辑当Q_C,Q_B,Q_A同时为1时产生低电平加载信号。LOAD !(Q_C Q_B Q_A)。这需要一个三输入与非门。如果没有可以用两个二输入与非门组合实现。下面给出案例B的详细接线步骤芯片基础连接Vcc,GND,ENP,ENT接法同前。CLR接高电平5V确保不复位。设置预置数D(引脚11) 接低电平GND。C(引脚12) 接低电平GND。B(引脚13) 接高电平5V。A(引脚14) 接高电平5V。这样当LOAD有效时加载的数据就是0011。构建反馈加载电路使用74LS00中的两个与非门构成一个三输入与非逻辑。第一种接法将Q_C和Q_B接入第一个与非门其输出与Q_A接入第二个与非门第二个与非门的输出接LOAD。逻辑是LOAD !( !(Q_C Q_B) Q_A )。当Q_C,Q_B,Q_A全为1时!(Q_C Q_B)为0再与Q_A(1) 与非后输出为1取反后等等这里逻辑需要仔细推导。更稳妥的接法是使用一个三输入与非门芯片如74LS10或者采用如下可靠接法推荐接法使用两个与非门门1输入 Q_C, Q_B 输出 中间信号M !(Q_C Q_B) 门2输入 M, Q_A 输出 !(M Q_A) !( !(Q_C Q_B) Q_A )当 Q_C, Q_B, Q_A 全为1时M0那么!(0 1) !0 1。但我们需要低电平有效的LOAD信号。所以这个输出需要再经过一个非门反相。如果我们没有非门可以巧妙地利用LOAD是低电平有效这一点将门2的输出直接接LOAD那么当输出为1时LOAD1无效当输出为0时LOAD0有效。那么什么时候门2输出为0当M Q_A 1时即M1且Q_A1。M1意味着!(Q_C Q_B)1即Q_C Q_B 0。这显然不是我们想要的全1条件。此路不通。正确且简单的方案如果只有二输入与非门最直接的方法是先用三个与非门分别接成非门将Q_C,Q_B,Q_A反相然后将三个反相后的信号接入一个三输入与非门用两个与非门组合实现三输入其输出就是低电平有效的LOAD信号。但这需要多个门电路。实战简化对于教学实验如果芯片有限一个近似的办法是检测Q_C和Q_B同时为高即状态011x当x1时就是0111。这样电路只接Q_C和Q_B到与非门输出接LOAD。这样当计数器到达0110或0111时都会触发加载。由于0110是序列中的正常状态下一个时钟沿会变成0111在变成0111的瞬间LOAD已经有效会在同一个时钟沿加载0011吗不会因为LOAD是在状态0111时变为有效的而加载发生在下一个时钟上升沿。所以计数器会短暂显示0111然后下一个脉冲加载0011。这实现了功能但循环中包含了0111状态。如果严格要求序列止于0110此法则不适用。提示预置法设计的关键在于准确识别“终止状态”并确保反馈逻辑能唯一地检测到这个状态。在资源有限的情况下可能需要权衡逻辑的精确性与电路的复杂性。4.3 调试技巧用单步时钟观察状态跳变预置法的调试比复位法更需耐心。建议使用单脉冲时钟每给一个脉冲记录下输出LED显示的状态。预期现象案例B上电后输出可能是随机值。给第一个时钟脉冲它应该加载预置数0011LED显示0011。继续给脉冲状态应依次变为0100 - 0101 - 0110 - 0111 - (此时LOAD灯应亮起或可用万用表测到低电平) - 下一个脉冲 - 回到0011。如果状态跳变不正常首先用万用表测量LOAD引脚在计数器到达0111状态时的电压确认是否为低电平。然后检查预置数A,B,C,D的接线是否牢固电平是否正确。最后检查反馈逻辑门的连接和电源。通过这三个实验你应该能深刻体会到反馈复位法的“简单粗暴”和预置法的“精准同步”之间的区别。在实际的数字系统设计中预置法因其无毛刺、可靠性高的优点而更受青睐尤其是在需要与其他同步电路协同工作的场合。而反馈复位法则在那些对成本极其敏感、且对输出毛刺不敏感的应用中仍有其价值。亲手搭建、调试、观察直到LED按照你设计的节奏闪烁这种成就感正是硬件实验的魅力所在。下次当你需要设计一个分频器、序列发生器或者任何带有状态循环的电路时不妨想想今天用过的这两种方法它们是你数字电路工具箱里最基础也最强大的两把扳手。