第 153 篇
考研数电·零基础讲义 第13讲(下)|触发器按逻辑功能分类:SR、JK、D、T、T'
考研数电·零基础讲义 · 第 13 讲(下)|触发器按逻辑功能分类:SR、JK、D、T、T' 学完本讲,你能写出五种触发器的特性表、特性方程、状态转换图和驱动表,能看懂"下降沿 JK"这类波形题,并会用"特性方程对比法"把一种触发器改接成另一种。特性方程是下一讲时序电路分析的"计算公式",务必背熟。预计用时 100 分钟。
本讲地图
- 逻辑功能 ≠ 触发方式:前两讲按"什么时候动"(电平、脉冲、边沿)分类;本讲按"动成什么样"(SR、JK、D、T、T')分类,两者互不决定。
- 四件描述工具:特性表、特性方程、状态转换图、驱动表(激励表)。
- 五种触发器:SR(,)、JK()、D()、T()、T'()。
- 相互转换:写出目标方程 → 凑成已有触发器方程的样子 → 对比得到接法。
- 华师怎么考:2026 回忆题第 7 题要求写"驱动(激励)方程、状态方程",状态方程就是把驱动方程代入特性方程得到的;特性方程写错,后面全错。转换接法、画波形也是常见小题。
- 教材对应:阎石第六版 5.3.4 节。
前置知识
- 边沿触发、脉冲触发的动作特点,见第 13 讲(中);SR 锁存器的约束条件,见第 13 讲(上)。
- 卡诺图化简与无关项,见第 04 讲(中)、(下)。
- 异或运算,见第 02 讲(上)。
一、两个维度:触发方式和逻辑功能
1.1 大白话:发车时间和去哪儿
把触发器想成公交车:
- 触发方式回答"什么时候发车":电平触发是"门开着随时上下",边沿触发是"整点准时发一班",脉冲触发是"高电平时上客、下降沿关门开走"。
- 逻辑功能回答"发车以后开到哪儿":给定输入和现态,次态是什么。
两件事是独立的:同一条线路(同样的逻辑功能)可以用不同的发车方式;同样整点发车(同样的触发方式)也可以开不同线路。教材原话:"触发器的触发方式和逻辑功能之间并无固定的对应关系。" 比如 D 锁存器(电平触发)和 CMOS 边沿 D 触发器都属于"D 触发器";边沿触发既能做成 D 型,也能做成 JK 型。
1.2 本讲的约定
本讲只关心逻辑功能,所以下面的特性表都不写 CLK 一栏,意思是"当有效时钟到来时,次态与输入、现态的关系"。没有有效时钟时,任何触发器都保持不变。
还要注意:教材定义"SR 触发器"等是指受时钟控制的触发器;第 13 讲(上)的 SR 锁存器不受时钟控制,不属于这里的 SR 触发器。
二、描述逻辑功能的四件工具
| 工具 | 是什么 | 用途 |
|---|---|---|
| 特性表 | 列出所有"输入 + 现态 → 次态"的真值表 | 直观,查表画波形 |
| 特性方程 | 把特性表写成的逻辑式 | 能参加运算,时序电路分析必用 |
| 状态转换图 | 两个圆圈 0、1,箭头表示转换,箭头旁写条件 | 一眼看出功能 |
| 驱动表(激励表) | 反过来问:"要从变到,输入该给什么?" | 时序电路设计时用(第 17 讲) |
教材特别指出:特性表直观,但不能用来做逻辑运算;分析和设计时序电路时必须用特性方程。
三、SR 触发器
3.1 特性表
凡是在时钟作用下逻辑功能符合下表的,不论触发方式如何,都叫 SR 触发器:
| 功能 | ||||
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 保持 |
| 0 | 0 | 1 | 1 | 保持 |
| 0 | 1 | 0 | 0 | 置 0 |
| 0 | 1 | 1 | 0 | 置 0 |
| 1 | 0 | 0 | 1 | 置 1 |
| 1 | 0 | 1 | 1 | 置 1 |
| 1 | 1 | 0 | 不定 | 禁止 |
| 1 | 1 | 1 | 不定 | 禁止 |
第 13 讲(上)的电平触发 SR 触发器、第 13 讲(中)的主从 SR 触发器都属于这一类。
3.2 推导特性方程(一步一步)
第 1 步:写出的行。 有、、三行,写成最小项之和:
第 2 步:先用公式合并后两项。 ,所以。
第 3 步:利用约束条件化简。 的两行(最小项、)不允许出现,可以当作无关项。画卡诺图(行是,列是,按格雷码 00、01、11、10 排):
| \ | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 0 | 0 | 0 | × | 1 |
| 1 | 1 | 0 | × | 1 |
- 圈 1:右边两列(、)共 4 格,借用两个 ×,得到;
- 圈 2:行的、两格(首尾相邻),得到。
于是得到 SR 触发器的特性方程:
用 sympy 的 SOPform 把、设为无关项化简,结果正是(验算脚本 13-flipflops.py)。
3.3 状态转换图与驱动表
状态转换图怎么画:触发器只有 0、1 两个状态,所以画两个圆圈;每个圆圈要引出两条箭头(一条指向自己、一条指向另一个状态),一共 4 条箭头,对应特性表里"现态 → 次态"的 4 种组合。每条箭头旁写上"让这种转换发生的输入条件"。条件从特性表"反着读"——
- :即可(任意);
- :必须、;
- :必须、;
- :即可(任意)。
驱动表(表示取 0 取 1 都行):
| 0 → 0 | 0 | × |
| 0 → 1 | 1 | 0 |
| 1 → 0 | 0 | 1 |
| 1 → 1 | × | 0 |
四、JK 触发器
4.1 特性表
JK 触发器把 SR 的"禁止"那两行改成了"翻转":
| 功能 | ||||
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 保持 |
| 0 | 0 | 1 | 1 | 保持 |
| 0 | 1 | 0 | 0 | 置 0 |
| 0 | 1 | 1 | 0 | 置 0 |
| 1 | 0 | 0 | 1 | 置 1 |
| 1 | 0 | 1 | 1 | 置 1 |
| 1 | 1 | 0 | 1 | 翻转 |
| 1 | 1 | 1 | 0 | 翻转 |
口诀:"00 保持,01 置 0,10 置 1,11 翻转"(顺序)。J 像 S(置 1),K 像 R(置 0)。
4.2 推导特性方程
的行:、、、。卡诺图(行,列):
| \ | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 0 | 0 | 0 | 1 | 1 |
| 1 | 1 | 0 | 0 | 1 |
- 圈 1:行的、,得;
- 圈 2:行的、,得。
JK 触发器的特性方程:
记法:"J 管 0 变 1,K 管 1 变 0"——现态为 0 时,看是否为 1 决定要不要变 1;现态为 1 时,看是否为 0 决定能不能留在 1。没有约束条件。
逐行验算一遍(拿到任何特性方程都建议这样做,30 秒就能避免背错):
| 特性表 | ||||||
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 | 保持 0 ✓ |
| 0 | 0 | 1 | 0 | 1 | 1 | 保持 1 ✓ |
| 0 | 1 | 0 | 0 | 0 | 0 | 置 0 ✓ |
| 0 | 1 | 1 | 0 | 0 | 0 | 置 0 ✓ |
| 1 | 0 | 0 | 1 | 0 | 1 | 置 1 ✓ |
| 1 | 0 | 1 | 0 | 1 | 1 | 置 1 ✓ |
| 1 | 1 | 0 | 1 | 0 | 1 | 翻转 ✓ |
| 1 | 1 | 1 | 0 | 0 | 0 | 翻转 ✓ |
为什么这个式子"长得像"特性表?可以这样理解:要等于 1,只有两种可能——原来是 0、并且喊"变 1"();或者原来是 1、并且没有喊"变 0"()。把这两句话用"或"连起来,就是特性方程。SR 的方程也能这样读:"要么喊置 1,要么原来是 1 而没喊置 0"。
4.3 状态转换图与驱动表
- :(任意);:(任意);
- :(任意);:(任意)。
| 0 → 0 | 0 | × |
| 0 → 1 | 1 | × |
| 1 → 0 | × | 1 |
| 1 → 1 | × | 0 |
JK 的驱动表里 × 最多,设计电路时最省门,这是 JK 触发器受欢迎的原因之一。
驱动表怎么用?举个小例子。 假如我们希望某个 JK 触发器在连续 3 个时钟里走出的轨迹,每一步该给什么输入?
| 第几步 | 要求的转换 | 说明 | ||
|---|---|---|---|---|
| 1 | 0 → 1 | 1 | × | 原来是 0,想变 1,只要;给几都行(是置 1,是翻转,结果都是 1) |
| 2 | 1 → 1 | × | 0 | 原来是 1,想留在 1,只要;给几都行(保持或置 1) |
| 3 | 1 → 0 | × | 1 | 原来是 1,想变 0,只要;给几都行(置 0 或翻转) |
"×"不是"不知道",而是"给 0 给 1 都满足要求"。设计时可以把它当作卡诺图里的无关项,挑对化简最有利的值——第 17 讲设计同步时序电路时就是这么做的。
五、T 触发器和 T' 触发器
5.1 T 触发器
大白话:T 是 Toggle(拨动开关)。时每来一个时钟就翻一次,时保持。
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
特性方程:
也就是"和异或"。观察 JK 的特性表,令正好得到这张表,所以把 JK 触发器的 J、K 连在一起当 T 端就是 T 触发器。正因为如此,集成电路产品中通常没有专门的 T 触发器。
驱动表:不变则,改变则,即。
5.2 T' 触发器
把 T 触发器的 T 端固定接高电平(),就成了 T' 触发器(读作"T 撇"):
每来一个时钟必然翻转一次。它的输出频率是时钟的一半,所以常用来做二分频和计数器的每一位(第 16 讲会用到)。
六、D 触发器
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
大白话:照相机,时钟来时把拍下来存着。D 锁存器、CMOS 边沿 D 触发器在逻辑功能上都属于 D 触发器。D 触发器的驱动表最简单:要让次态是几,就给几()。它在 CMOS 集成电路里最常见,2026 回忆题第 7 题就是用 D 触发器构成的时序电路。
图 1:SR、JK、T、D 四种触发器的状态转换图(箭头旁为转换条件,未写出的输入取任意值)
6.1 五种触发器怎么选(一句话理解各自的"性格")
- D:最老实,"给什么存什么"。存数据、做寄存器和移位寄存器(第 15 讲)首选它;CMOS 集成电路里最常见。
- JK:功能最全,保持、置 0、置 1、翻转样样都会,驱动表 × 多,手工设计时常能省门;还能直接当 SR、T 用。
- T / T':专管"翻不翻"。做计数器、分频器最顺手,但一般没有专门的芯片,用 JK()或 D()改接得到。
- SR:历史最久、有约束,现在多作为内部结构(锁存器、主从结构)出现,单独使用较少。
考试里最常见的是 D 和 JK:分析题给你电路,你要能立刻写出它们的特性方程;设计题让你选触发器,D 最省事、JK 最省门。
七、例题 1:下降沿 JK 触发器画波形
题:下降沿触发的 JK 触发器(边沿触发),初态,CLK、、波形如图 2 前三行,画出。
图 2:下降沿 JK 触发器例题波形,虚线为下降沿(扫描线动画循环播放)
解:这是边沿触发器,所以只看每个下降沿到达前一瞬间的、,用特性方程(或口诀)计算:
| 下降沿 | 现态 | 动作 | |||
|---|---|---|---|---|---|
| ① | 0 | 1 | 0 | 置 1 | 1 |
| ② | 1 | 0 | 0 | 保持 | 1 |
| ③ | 1 | 1 | 1 | 翻转 | 0 |
| ④ | 0 | 1 | 1 | 翻转 | 1 |
答:在①~④依次变为 1、1、0、1。图中第 1 个 CLK 高电平期间有个短脉冲,第 2 个低电平期间变成了 1——对边沿触发器都没有影响。(Python 逐时隙模拟一致。)
对比上一讲的主从 JK:如果这是脉冲触发的 JK,就必须考虑高电平期间的全部变化。所以做题第一步永远是看清触发方式,第二步才是用逻辑功能计算。
7.1 例题 1 补充:T 触发器的计数作用
题:上升沿 T 触发器初态,6 个上升沿到达时依次为 1、1、0、1、0、0,写出的序列。若一直为 1 呢?
解:,翻转、保持:
| 上升沿 | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|
| 1 | 1 | 0 | 1 | 0 | 0 | |
| 1 | 0 | 0 | 1 | 1 | 1 |
若恒为 1(即 T' 触发器),依次为 1、0、1、0、1、0:每两个时钟完成一个周期,频率减半。把几个这样的触发器串起来,就能数时钟个数——这正是第 16 讲计数器的基本思路。(两种情况都用 Python 核对。)
八、触发器之间的相互转换
8.1 为什么要转换
手头只有 JK 触发器,题目却要 D 触发器;或者芯片里只有 D 触发器,要做一个 T 触发器——这时就要"改接":在已有触发器的输入端加一点门电路,让整体的特性方程变成目标触发器的方程。
8.2 通用方法:特性方程对比法
- 写出目标触发器的特性方程;
- 把它变形,凑成已有触发器特性方程的形式(比如 JK 的形式);
- 对比系数,得到已有触发器每个输入端该接什么;
- 画出电路,最好再用特性表逐行验证。
8.3 用 JK 触发器构成其他触发器
① JK → D:目标。用"配项"把它凑成 JK 的样子:
与对比:,,即。接法:直接接 J,经反相器接 K。
② JK → T:目标,直接对比得。
③ JK → T':目标,得。
④ JK → SR:目标。先把配项:,于是
由约束:时必有,所以。得,对比得、——JK 触发器直接就能当 SR 触发器用。
8.4 用 D 触发器构成其他触发器
D 触发器的方程是,所以目标方程右边是什么,就让等于什么:
- D → JK:(需要几个门把反馈回来);
- D → T:(一个异或门);
- D → T':(把接回,就是第 13 讲(中)说的二分频)。
8.5 其他组合
- SR → JK:目标,已有。取、:代入得 ✓,而且,约束自动满足。——这其实就是第 13 讲(中)主从 JK 的构造思路。
- SR → D:、(第 13 讲(上)的 D 锁存器)。
- T → D:要等于,则(因为)。
图 3:三种常用转换接法——JK 当 D 用、D 当 T 用、JK 当 T' 用
8.6 转换关系速查表
| 已有 \ 目标 | D | T | T' | JK | SR |
|---|---|---|---|---|---|
| JK | — | ||||
| D | — | ||||
| SR | — | ||||
| T | — | — |
表中每一格都用 Python 对所有输入组合和两个现态做了穷举核对(SR 作为"已有"时同时核对了)。
为什么 JK 能代替 SR,SR 却不能代替 JK?因为 JK 的特性表包含了 SR 的全部合法行(SR 不用的 11 输入,JK 定义为翻转,不影响 SR 的用法);反过来 SR 的 11 输入是禁止的,实现不了 JK 的"翻转"——除非像上面那样外加门电路反馈。
8.7 例题 2:判断接法的功能
题:JK 触发器接成、,问它实现什么功能?
解:代入特性方程:
每来一个时钟翻转一次,是 T' 触发器。验证:时,置 1;时,翻转为 0。✓
8.8 接完以后怎么自查
转换题写出接法后,最稳妥的检查方法是列表逐行代入。以"JK 当 D 用(、)"为例:
| JK 动作 | 目标 | |||||
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 1 | 置 0 | 0 | 0 ✓ |
| 0 | 1 | 0 | 1 | 置 0 | 0 | 0 ✓ |
| 1 | 0 | 1 | 0 | 置 1 | 1 | 1 ✓ |
| 1 | 1 | 1 | 0 | 置 1 | 1 | 1 ✓ |
四行全对,说明接法正确。考试时间紧可以只在草稿纸上过一遍,但这一步能抓住绝大多数"凑项凑错"的问题。
8.9 易错点 ⚠️
- ⚠️ 特性方程中的是现态,是次态,不能混;写成也是同一个意思。
- ⚠️ SR 的特性方程必须带约束条件 ,否则化简结果在时会给出"1"的假象。
- ⚠️ T 的方程是,不是;翻转。
- ⚠️ 转换时不能只对比一部分:必须先配项成,再与逐项对比。
九、特性方程的第一次实战:把"接线"代进方程
9.1 大白话
实际电路里,触发器的输入端往往不是接外部信号,而是接到别的触发器的输出上(或经过几个门)。这时只要把"输入端接的是什么"代进特性方程,就能算出每个触发器下一拍会变成什么。这就是第 14 讲"时序电路分析"的核心一步,这里先热个身。
9.2 例题 3
题:两个下降沿 JK 触发器、共用一个时钟,接法为,。设初态,求连续 4 个时钟后的状态变化。
解:
第 1 步:写出每个触发器输入端的式子(下一讲叫"驱动方程"):,。
第 2 步:代入 JK 特性方程(下一讲叫"状态方程"):
第 3 步:从初态开始一拍一拍算(注意每一拍都用现态代入,算完再整体更新):
| 时钟 | 现态 | 次态 | ||
|---|---|---|---|---|
| 1 | 00 | 1 | 0 | 01 |
| 2 | 01 | 0 | 1 | 10 |
| 3 | 10 | 1 | 1 | 11 |
| 4 | 11 | 0 | 0 | 00 |
状态按 00→01→10→11→00 循环,正好是二进制数 0、1、2、3 递增——这是一个两位二进制加法计数器(Python 逐拍模拟一致)。
关键提醒:同一个时钟沿到来时,所有触发器同时按各自的现态计算次态。不能先算出再拿新的去算。这个"同时更新"的规矩,下一讲会反复用到。
速记卡
| 类型 | 特性方程 | 口诀 / 功能 | 驱动表要点 |
|---|---|---|---|
| SR | , | 00 保持,01 置 0,10 置 1,11 禁止 | 0→1:S=1,R=0;1→0:S=0,R=1 |
| JK | 00 保持,01 置 0,10 置 1,11 翻转 | 0→0:J=0;0→1:J=1;1→0:K=1;1→1:K=0 | |
| D | 照抄 D | ||
| T | T=1 翻转,T=0 保持 | ||
| T' | 每个时钟翻转(二分频) | 无输入 |
| 转换 | 接法 |
|---|---|
| JK→D / T / T' / SR | / / / |
| D→T / T' / JK | / / |
| 通用方法 | 写目标方程 → 凑成已有方程的形式 → 对比系数 → 验证 |
自测练习
1. 默写 SR、JK、D、T、T' 五种触发器的特性方程。
答案与提示
SR:,;JK:;D:;T:;T':。
2. 边沿 JK 触发器初态,连续 4 个有效时钟沿到达时依次为 11、10、00、01,写出每次之后的。
答案与提示
11 翻转 → 1;10 置 1 → 1;00 保持 → 1;01 置 0 → 0。即 1、1、1、0(Python 核对)。
3. 上升沿 D 触发器的输入接成,初态,6 个上升沿时依次为 0、1、1、1、0、1,写出的序列,并说明这个电路相当于什么触发器。
答案与提示
,相当于以为输入的 T 触发器。依次为 0、1、0、1、1、0(翻转,保持;Python 核对)。
4. JK 触发器接成、,它实现什么功能?
答案与提示
,是 T' 触发器(每个时钟翻转)。
5. 用一个 D 触发器和若干门实现 T 触发器,写出的表达式并说明用什么门。
答案与提示
令,用一个异或门,输入接和,输出接。逐行验证:时保持,时翻转。
6. 用 JK 触发器实现 D 触发器,写出推导过程。
答案与提示
,与对比得、:D 接 J,经非门接 K。
7. 用 SR 触发器加门电路实现 JK 触发器,、应怎样接?说明为什么约束条件自动满足。
答案与提示
、。代入得。因为,约束条件恒满足。
8.(华师简答题风格)为什么从逻辑功能上看可以用 JK 触发器代替 SR 触发器,而不能用 SR 触发器直接代替 JK 触发器?
答案与提示
JK 触发器在、、时的功能与 SR 触发器在、、时完全相同,而 SR 触发器不允许使用,所以 JK 可以覆盖 SR 的全部用法(、)。JK 在时要求翻转,SR 触发器在时是禁止输入、次态不定,无法直接实现这一功能。
下一讲预告
第 14 讲:拿着本讲的特性方程,学习时序逻辑电路的完整分析步骤——驱动方程、状态方程、状态转换表、状态图、时序图、功能和自启动判断,并做两道与 2026 回忆题第 7 题同类型的 D 触发器电路分析。
👉 点击进入下一讲:第14讲|时序逻辑电路的分析方法
评论
还没有评论。 来写第一条。