
前言
最近用 74LS112 下降沿 JK 触发器搭建同步二进制计数器,原本目标是 3 位八进制计数器,但 Multisim 仿真实际现象为0、1、2、3 循环,只能计到 3,无法输出 4~7。本文结合电路图分析故障现象、原理推导、错误定位与修正方案,完整记录排错过程,适合数字电路仿真踩坑复盘。
使用器件
- 74LS112D:下降沿触发 JK 触发器,2 片共 3 个触发器
- 74LS00D:二输入与非门
- 74LS08N:二输入与门
- 1Hz 时钟源、5V 电源、DCD_HEX 数码管、示波器 XSC1
一、预期设计与实际仿真现象
✅预期目标:3 位同步八进制计数器
输出\(Q_2Q_1Q_0\),状态:000→001→010→011→100→101→110→111→000,计数 0‑7 循环。
❌实际仿真现象
数码管只在 0 →1 →2 →3 →0 循环,最大输出 3(二进制11),无法进入100(4)及以上状态。示波器观察:仅\(Q_0\)、\(Q_1\)正常翻转,最高位\(Q_2\)始终保持 0,不会置 1。
二、同步计数器理论激励方程回顾
3 位同步二进制计数器,所有触发器时钟接同一个 CLK。
- \(Q_0\)(最低位):每个时钟都翻转,\(J_0=K_0=1\)
- \(Q_1\):仅当\(Q_0=1\)时翻转,\(J_1=K_1=Q_0\)
- \(Q_2\):仅当\(Q_1=1\boldsymbol{且}Q_0=1\)才翻转,\(J_2=K_2=Q_1\cdot Q_0\)
关键:\(Q_2\)要翻转,必须输入与门输出\(Q_1\&Q_0=1\),送给\(J_2、K_2\)。 当计数到
011(3),下一个时钟下降沿,理论上\(Q_2\)应当翻转为 1,\(Q_1\)、\(Q_0\)清零,跳转到100(4)。现在电路到 3 之后直接回 0,说明**\(Q_2\)的 J、K 控制逻辑没有正确得到\(Q_1Q_0\)的与输出**。
三、电路图错误定位(对照你的 Multisim 截图)
- 最高位触发器 U1B(\(Q_2\))的 J/K 逻辑接线错误 74LS08 与非门(U6A)输入接线不对,没有真正接入\(Q_1\)和\(Q_0\),导致送给\(J_2、K_2\)始终为 0。
- \(J_2=K_2=0\)时,JK 触发器功能为保持,\(Q_2\)一直维持初始 0,永远不能变成 1。
- 此时只有\(Q_0、Q_1\)两位正常工作,电路退化成模 4(2 位)同步计数器,所以只跑 0‑1‑2‑3 循环。
- 其他潜在排查点
- 74LS112 异步置位\(\overline{PR}\)、异步清零\(\overline{CLR}\)虽然接 5V,异步功能关闭;
- 时钟 CLK 是全部并联,同步时钟本身没问题;
- 数码管接线只读到低两位有效输出,高位始终 0。
现象解释: 状态到
011时,\(Q_2\)的 J、K 为 0,保持 0;\(Q_1、Q_0\)满足翻转条件,时钟到来后\(Q_1Q_0\)清零,回到000,直接跳过100‑111,表现就是 0‑1‑2‑3 循环。
四、修正方案
- 修改 74LS08 与门 U6A 接线:把 U6A 两个输入,实实在在接到\(Q_1\)、\(Q_0\)的输出引脚。输出接到最高位触发器 U1B 的 J 端和 K 端。 修正后激励:\(J_2=K_2=Q_1 \& Q_0\)。
- 确认三个触发器输出\(Q_2、Q_1、Q_0\)全部接到 DCD_HEX 数码管的 BCD 输入口,不要漏接最高位。
- 重新运行仿真:状态即可完整循环
0‑1‑2‑3‑4‑5‑6‑7‑0。
五、仿真排坑总结
- 只计数到 3,优先怀疑最高位 J/K 控制逻辑输入,与门接线错误、虚接,导致高位无法翻转。
- 74LS112:\(J=K=0\)→保持;\(J=K=1\)→翻转;记住这个核心功能,快速判断故障。
- Multisim 仿真,肉眼看连线很容易看错,看似连上,实际节点没有对接在一起,是非常高频的仿真 bug。
- 排错技巧:可以用逻辑探针直接测与门输出,当\(Q_1=1、Q_0=1\),看与门输出是否变成高电平,快速定位组合逻辑故障。
六、拓展思考
- 同步计数器的核心就是高位 J、K 由低位状态做与逻辑控制;接线出错直接导致计数器位数降级。
- 对比异步计数器:异步计数器高位时钟来自前一级 Q 输出;同步计数器全部共用时钟,靠 J、K 逻辑控制翻转。
通过网盘分享的文件:仿真文件获取.zip 链接: https://pan.baidu.com/s/1V5zzxbpHc_fRqfGIzSdLfg?pwd=6666 提取码: 6666