【数字逻辑】 74HC74转JK触发器+74HC112做二分频+74HC161设计10进制计数器(附接线图)

数字逻辑时序实验实战:74HC74转JK触发器+74HC112做二分频+74HC161设计10进制计数器(附接线图+避坑指南)

刚上手时序器件实验时,我对着74HC74和74HC112一脸懵------明明都是触发器,D触发器和JK触发器到底咋转换?计数器74HC161的清零、置数端接错一次,结果计数全乱,波形图根本看不懂。后来才发现,时序器件的核心就是"抓时钟边沿+控控制端",比如D触发器靠时钟上升沿变状态,JK触发器靠J/K组合实现翻转/保持,跟着步骤拆,其实比组合电路还简单。今天就把实验三的解题思路拆成新手友好版,从器件功能到接线实操,再到波形验证,帮你轻松搞定时序实验。

一、实验先理清:核心是啥?要解决啥问题?

时序电路和组合电路最大的区别是"有记忆功能",实验围绕3个核心任务展开,先明确目标再动手:

1. 实验核心任务

  • 74HC74(双D触发器):先测试D触发器功能,再通过逻辑门把它改成JK触发器;
  • 74HC112(双JK触发器) :测试JK触发器功能,再用它做二分频器(输入时钟2次,输出1次);

  • 74HC161(4位同步二进制计数器) :测试计数器功能,再设计10进制计数器(从0计到9循环)。

2. 关键器件通俗解释(新手必记)

器件 通俗功能 核心控制端(别接错!)
74HC74 双D触发器:D是输入,时钟上升沿时Q=D CLK(上升沿有效,引脚3/11)、CLR(清零,低电平有效,引脚1/10)、PRE(置1,低电平有效,引脚4/13)
74HC112 双JK触发器:J/K控状态(保持/置1/置0/翻转) CLK(下降沿有效,引脚3/11)、CLR(清零,低电平有效,引脚1/10)、PRE(置1,低电平有效,引脚4/13)
74HC161 4位同步计数器:能从0计到15,可清零/置数 CLK(上升沿计数)、CR(异步清零,低电平有效,引脚1)、LOAD(同步置数,低电平有效,引脚9)、CEP/CET(使能,高电平有效,引脚7/10)

二、任务1:74HC74(D触发器)的测试与JK触发器转换

D触发器功能简单(Q跟着D变),但JK触发器功能更全,这一步的核心是"用逻辑门把D触发器的输入D,改成JK触发器的控制逻辑"。

1. 先测试74HC74的D触发器功能(确保芯片没坏)

接线步骤(以其中一个D触发器为例)
  1. 电源:VCC(引脚14)接5V,GND(引脚7)接电源地;
  2. 控制端:CLR(引脚1)、PRE(引脚4)接VCC(默认不清零、不置1,让触发器工作);
  3. 输入输出:D端(引脚2)接高低电平开关,CLK端(引脚3)接脉冲发生器,Q端(引脚5)、¬Q端(引脚6)接LED。
功能验证(看LED变化)
  • 给CLK一个上升沿(脉冲发生器按一下):若D=1,Q亮(1);若D=0,Q灭(0),说明D触发器功能正常。

2. D触发器转JK触发器(核心:推导D的逻辑表达式)

JK触发器的特性是:J=1、K=0时Q=1;J=0、K=1时Q=0;J=K=1时Q翻转;J=K=0时Q保持。

要让D触发器实现JK功能,需满足 D = J·¬Qⁿ + ¬K·Qⁿ(Qⁿ是触发器当前状态,从¬Q端取)。

接线步骤(在测试电路基础上加逻辑门)
  1. 保留之前的电源、CLK、CLR、PRE接线;
  2. 加2个与门、1个或门、1个非门(或用与非门组合):
    • 与门1输入:J、¬Q(74HC74的引脚6);
    • 与门2输入:¬K、Q(74HC74的引脚5);
    • 或门输入:与门1输出、与门2输出;
    • 或门输出接74HC74的D端(引脚2);
  3. J、K端接高低电平开关,Q和¬Q接LED。
功能验证
  • J=1、K=0:给CLK上升沿,Q=1(LED亮);
  • J=0、K=1:给CLK上升沿,Q=0(LED灭);
  • J=K=1:给CLK上升沿,Q翻转(亮变灭/灭变亮);
  • 符合JK触发器特性,转换成功。

三、任务2:74HC112(JK触发器)的测试与二分频器设计

"二分频"是时序电路的基础应用,简单说就是"输入时钟2个周期,输出1个周期",比如输入100Hz时钟,输出50Hz,核心用JK触发器的"翻转功能"实现。

1. 测试74HC112的JK触发器功能

接线步骤(注意:74HC112是下降沿触发!)
  1. 电源:VCC(引脚14)接5V,GND(引脚7)接GND;
  2. 控制端:CLR(引脚1)、PRE(引脚4)接VCC;J(引脚2)、K(引脚6)接VCC(让JK=1,触发器处于翻转状态);
  3. 输入输出:CLK(引脚3)接脉冲发生器,Q端(引脚5)接LED和示波器(看波形)。
功能验证
  • 给CLK连续脉冲:每按2次脉冲,Q翻转1次(比如第一次按Q亮,第二次按Q灭),说明JK触发器翻转功能正常。

2. 用74HC112做二分频器(核心:JK=1,靠时钟边沿翻转)

原理

当JK=1时,JK触发器每接收到一个时钟边沿(74HC112是下降沿)就翻转一次,所以输入2个时钟周期,输出1个周期,实现"二分频"。

接线步骤(比测试电路多接示波器)
  1. 保留测试电路的电源、J=K=1、CLR=PRE=VCC;
  2. CLK端接函数发生器(输出方波,比如1kHz),Q端接示波器通道1,CLK端接示波器通道2(对比波形)。
波形观察
  • 示波器上:通道2(CLK)的2个方波周期,通道1(Q)只有1个方波周期,说明二分频成功(例:CLK是1kHz,Q是500Hz)。

四、任务3:74HC161(计数器)的测试与10进制计数器设计

74HC161默认是16进制计数器(0-15),要改成10进制(0-9),最常用"异步清零法"------计数到10(1010)时,让清零端CR变低电平,瞬间清零回0,循环计数。

1. 先测试74HC161的16进制计数功能

接线步骤
  1. 电源:VCC(引脚16)接5V,GND(引脚8)接GND;
  2. 控制端:CR(引脚1)接VCC(不清零)、LOAD(引脚9)接VCC(不置数)、CEP(引脚7)、CET(引脚10)接VCC(使能计数);
  3. 输入输出:CLK(引脚2)接脉冲发生器,Q3-Q0(引脚15-12)接4个LED(分别对应8、4、2、1,显示计数状态)。
功能验证
  • 按脉冲发生器:LED从0000(0)→0001(1)→...→1111(15)→0000(0)循环,说明16进制计数正常。

2. 设计10进制计数器(异步清零法,简单易实现)

核心思路
  • 10进制计数范围是0-9(二进制0000-1001),当计数到10(1010)时,让CR=0(清零),所以需要把Q3(8)和Q1(2)通过与非门接CR(因为1010时Q3=1、Q1=1,与非后为0,触发清零)。
接线步骤(在16进制基础上改)
  1. 保留电源、CLK、CEP=CET=VCC;
  2. 加1个2输入与非门:输入接Q3(引脚15)、Q1(引脚13),输出接CR(引脚1);
  3. Q3-Q0接LED,CLK接脉冲发生器。
功能验证
  • 按脉冲发生器:LED从0000(0)→0001(1)→...→1001(9)→0000(0)循环(不会到1010),说明10进制计数成功;
  • 用示波器看Q0(最低位)波形:每10个CLK周期,Q0完成1个循环,进一步验证。

五、避坑指南

  1. 触发器时钟边沿接反:74HC74是上升沿触发(CLK从低变高时变状态),74HC112是下降沿触发(CLK从高变低时变状态),接错会导致状态不变或乱变;
  2. 74HC161使能端忘记接高电平:CEP和CET必须接VCC(高电平),否则计数器不计数,只会保持初始状态;
  3. 异步清零时与非门接错引脚:10进制计数器要监测1010(Q3=1、Q1=1),别接成Q2或Q0,否则会在错误状态清零(比如计到6就清零)。

六、实验总结:时序电路的核心思路

  1. 触发器(D/JK):关键看"时钟边沿"和"控制端(J/K/D、CLR/PRE)",先保证基础功能正常,再做转换/应用;
  2. 计数器(74HC161):改进制的核心是"找到要清零/置数的状态",异步清零简单(状态到就清零),同步置数精准(时钟触发后再置数),新手优先选异步清零;
  3. 波形观察:时序实验一定要用示波器,看输入输出的时序关系,比只看LED更直观。
相关推荐
fangzhanpeng1684 天前
快速掌握C#语言基础知识点(1.基础数据类型)
开发语言·c#·1024程序员节
无己心6 天前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
u01030552712 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u01030552712 天前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝14 天前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u01030552714 天前
Java图像处理实战指南
人工智能·1024程序员节
u01030552714 天前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u01030552717 天前
Java实用类应用精讲
人工智能·1024程序员节
u01030552717 天前
Java I/O核心操作实战
人工智能·1024程序员节
u01030552718 天前
ArrayList操作详解与实战应用
人工智能·1024程序员节