第 158 篇

考研数电·零基础讲义 第14讲|时序逻辑电路的分析方法

约 20 分钟 6640 字 华南师范大学数字电子技术考研数电零基础讲义

考研数电·零基础讲义 · 第 14 讲|时序逻辑电路的分析方法 学完本讲,拿到一张由触发器和门组成的同步时序电路图,你能按固定步骤写出驱动方程、状态方程、输出方程,列出状态转换表,画出状态转换图和时序图,说出电路的功能,并判断它能否自启动;遇到不能自启动的电路,还能说出修改思路。这正是 2026 回忆题第 7 题的完整题型。预计用时 120 分钟。

本讲地图

  • 时序电路的结构:组合电路 + 存储电路(触发器),存储电路的输出反馈回组合电路;用输出方程、驱动方程、状态方程三组方程描述。
  • 同步时序电路分析七步法:驱动方程 → 状态方程 → 输出方程 → 状态转换表 → 状态转换图 → 时序图 → 功能与自启动。
  • 三道完整例题:例 1 由 D 触发器构成、能自启动;例 2 由 D 触发器构成、不能自启动,并给出修改方法;例 3 带输入变量的米利型电路(序列检测)。所有状态序列都用 Python 逐拍模拟核对。
  • 华师怎么考:2026 回忆题第 7 题就是"D 触发器构成的时序电路分析:(1) 驱动(激励)方程、状态方程 (2) 状态转换表/状态转换图 (3) 功能?能否自启动?"——本讲最后给出答题模板。
  • 教材对应:阎石第六版 6.1 节、6.2.1、6.2.2 节;自启动的概念见 6.2.3 及 6.4.2 节。

前置知识

  • 五种触发器的特性方程,特别是 D 触发器Q∗=DQ^{*}=D⁠、JK 触发器Q∗=JQ‾+K‾QQ^{*}=J\overline{Q}+\overline{K}Q⁠,见第 13 讲(下)。
  • 边沿触发的动作特点(只在时钟沿按沿前一瞬间的输入动作),见第 13 讲(中)。
  • 组合电路的分析方法(从逻辑图写表达式),见第 08 讲;卡诺图化简与无关项,见第 04 讲(中)、(下)。

一、时序电路长什么样

1.1 大白话:下棋

组合电路像计算器上的"开平方"键:输入 9 就出 3,跟你以前按过什么没关系。

时序电路像下棋:同样是"走马",棋盘局面不同,结果完全不同。棋盘局面就是电路的状态,它记录了"过去发生过什么"。教材的定义:时序电路任一时刻的输出不仅取决于当时的输入,还取决于电路原来的状态。

1.2 结构:组合电路 + 存储电路 + 反馈

时序电路通常有两部分:

  • 存储电路:若干个触发器,它们的输出Q1,Q2,…Q_1,Q_2,\dots就是电路的状态;
  • 组合电路:一堆门,把输入XX和状态QQ组合起来,产生输出YY⁠,以及送给触发器输入端的信号(叫驱动信号或激励信号,比如 D 触发器的DD⁠、JK 触发器的JJ⁠、KK⁠)。

最关键的特征:触发器的输出要反馈回组合电路的输入端,和外部输入一起决定下一步。

1.3 三组方程

方程 含义 形式
输出方程 输出由什么决定 Y=F(X,Q)Y=F(X,Q)
驱动方程(激励方程) 每个触发器的输入端接的是什么 Di=G(X,Q)D_i=G(X,Q)或Ji,Ki=G(X,Q)J_i,K_i=G(X,Q)
状态方程 每个触发器的次态 Qi∗=H(X,Q)Q_i^{*}=H(X,Q)⁠,由驱动方程代入特性方程得到

有了这三组方程,电路的逻辑功能在理论上就完全确定了。但方程看不出"它到底在干嘛",所以还要列表、画图。

1.4 两种分类

  • 同步 / 异步:所有触发器接同一个时钟、同时翻转的叫同步时序电路;触发器时钟不统一的叫异步时序电路。本讲讲同步电路(考研主流),异步电路分析时要额外判断每个触发器"这一拍有没有时钟"。
  • 米利型(Mealy)/ 穆尔型(Moore):输出与输入XX有关的是米利型;输出只取决于状态的是穆尔型。注意:时钟 CLK 不算输入变量,它只是控制翻转时刻的操作信号。

二、同步时序电路分析七步法

先记住这张流程表,三道例题都按它走:

步骤 做什么 得到什么
0 看清电路:几个触发器、什么类型、什么沿触发、是否同步、有无输入XX⁠、输出是哪个 心里有数
1 从逻辑图写出每个触发器输入端的表达式 驱动方程
2 把驱动方程代入该触发器的特性方程 状态方程
3 从逻辑图写出输出的表达式 输出方程
4 把全部 2n2^n个状态(及各种输入)逐个代入状态方程和输出方程 状态转换表
5 圆圈表示状态、箭头表示转换,箭头旁标"输入/输出" 状态转换图
6 在一串时钟作用下画出各QQ和YY的波形 时序图
7 看循环规律说功能;检查无效状态能否回到有效循环 功能、能否自启动

几个以后天天用的名词:

  • 有效状态 / 有效循环:电路正常工作时反复经过的那些状态及其组成的循环;
  • 无效状态:nn个触发器共有2n2^n个状态,有效循环没用到的就是无效状态(比如上电瞬间、受干扰时可能出现);
  • 能自启动:电路处于任何一个无效状态时,在时钟作用下都能自动进入有效循环。只要有一个无效状态回不去(例如几个无效状态自己转成一个圈),就不能自启动。

⚠️ 第 4 步一定要把2n2^n个状态全部列出来。只从初态开始顺着算、算到回到初态就停,会漏掉无效状态,自启动就没法判断了。


三、例 1:由 D 触发器构成的同步电路(能自启动)

题:分析图 1 所示同步时序电路。三个触发器都是上升沿触发的 D 触发器,共用时钟 CLK。要求:(1) 写出驱动方程、状态方程和输出方程;(2) 列出状态转换表,画出状态转换图和时序图;(3) 说明电路功能,判断能否自启动。

例 1 的同步时序电路 DQC1FF1 DQC1FF2 DQC1FF3 Q1 Q2 Q3 Y ≥1=1& CLK

图 1:例 1 的同步时序电路(三个上升沿 D 触发器,一个或非门、一个异或门、一个与门,输出Y=Q3Y=Q_3⁠)

第 0 步:看清电路

  • 3 个上升沿 D 触发器,同一个 CLK → 同步电路;
  • 没有外部输入XX → 次态和输出只由现态决定,是穆尔型;
  • 门电路:FF1FF_1前面是或非门(输入Q1Q_1⁠、Q3Q_3⁠),FF2FF_2前面是异或门(输入Q1Q_1⁠、Q2Q_2⁠),FF3FF_3前面是与门(输入Q1Q_1⁠、Q2Q_2⁠);输出YY直接取自Q3Q_3⁠。

第 1 步:驱动方程

顺着导线读出每个DD端接的是什么:

D1=Q1+Q3‾=Q1‾ Q3‾,D2=Q1⊕Q2,D3=Q1Q2D_1=\overline{Q_1+Q_3}=\overline{Q_1}\,\overline{Q_3},\qquad D_2=Q_1\oplus Q_2,\qquad D_3=Q_1Q_2

(⁠D1D_1用了摩根定理把"或非"写成"非与非"的形式,见第 02 讲(下)。)

第 2 步:状态方程

D 触发器的特性方程是Q∗=DQ^{*}=D⁠,直接代入:

Q1∗=Q1‾ Q3‾,Q2∗=Q1⊕Q2,Q3∗=Q1Q2Q_1^{*}=\overline{Q_1}\,\overline{Q_3},\qquad Q_2^{*}=Q_1\oplus Q_2,\qquad Q_3^{*}=Q_1Q_2

D 触发器构成的电路,状态方程和驱动方程"长得一样",但意义不同:驱动方程说的是"D 端接了什么",状态方程说的是"下一拍 Q 变成什么"。答题时两组方程都要写出来。

第 3 步:输出方程

Y=Q3Y=Q_3

第 4 步:状态转换表

状态按Q3Q2Q1Q_3Q_2Q_1的顺序书写(⁠Q3Q_3为高位)。先详细算一行,比如现态Q3Q2Q1=011Q_3Q_2Q_1=011⁠,即Q1=1Q_1=1⁠、Q2=1Q_2=1⁠、Q3=0Q_3=0⁠:

  • Q1∗=Q1‾ Q3‾=1‾⋅0‾=0⋅1=0Q_1^{*}=\overline{Q_1}\,\overline{Q_3}=\overline{1}\cdot\overline{0}=0\cdot1=0
  • Q2∗=Q1⊕Q2=1⊕1=0Q_2^{*}=Q_1\oplus Q_2=1\oplus1=0
  • Q3∗=Q1Q2=1⋅1=1Q_3^{*}=Q_1Q_2=1\cdot1=1
  • Y=Q3=0Y=Q_3=0

所以011→100011\to100⁠,Y=0Y=0⁠。其余 7 行同样计算,8 个状态全部列出:

现态Q3Q2Q1Q_3Q_2Q_1 Q1∗Q_1^{*} Q2∗Q_2^{*} Q3∗Q_3^{*} 次态Q3∗Q2∗Q1∗Q_3^{*}Q_2^{*}Q_1^{*} YY
000 1 0 0 001 0
001 0 1 0 010 0
010 1 1 0 011 0
011 0 0 1 100 0
100 0 0 0 000 1
101 0 1 0 010 1
110 0 1 0 010 1
111 0 0 1 100 1

也可以写成"按时钟顺序"的形式,更直观:

CLK 顺序 Q3Q_3 Q2Q_2 Q1Q_1 YY
0 0 0 0 0
1 0 0 1 0
2 0 1 0 0
3 0 1 1 0
4 1 0 0 1
5 0 0 0 0

第 5 步:状态转换图

从表里读出箭头:000→001→010→011→100→000000\to001\to010\to011\to100\to000构成一个5 个状态的循环;另外101→010101\to010⁠、110→010110\to010⁠、111→100111\to100三个状态都直接跳进了循环。箭头旁标"/Y"(没有输入,斜线上方不写)。

例 1 与例 2 的状态转换图 例 1(能自启动) 000 001 010 011 100 101 110 111 /0 /0 /0 /0 /1 /1 /1 /1 例 2(原电路不能自启动) 修改后 010→100 无效循环 000 001 010 011 100 101 110 111 状态按 Q3Q2Q1 书写;“/0”“/1”是该状态下的输出 Y

图 2:左为例 1 的状态转换图(灰色为无效状态,都能进入有效循环);右为例 2 的状态转换图(红色两个状态构成无效循环,绿色虚线为修改后的去向)。橙色圆环沿有效循环跑动(动画循环播放)

第 6 步:时序图

从 000 开始,在每个 CLK 上升沿按状态表更新一次Q3Q2Q1Q_3Q_2Q_1⁠,画出各自的波形。画法要点:

  1. 先画 CLK,标出每个上升沿;
  2. 状态只在上升沿处跳变,两个上升沿之间保持;
  3. 穆尔型输出YY只取决于状态,所以和状态同时跳变。
例1的时序图 1 2 3 4 5 6 7 8 9 10 11 12 CLK Q1 Q2 Q3 Y=Q3 上方数字为第几个上升沿;每 5 个时钟 Y 出一个脉冲 → 五进制

图 3:例 1 从 000 开始、12 个时钟作用下的时序图(波形由 Python 逐拍模拟生成,扫描线动画循环播放)

第 7 步:功能与自启动

功能:有效循环000→001→010→011→100→000000\to001\to010\to011\to100\to000正好是二进制数 0、1、2、3、4 依次加 1,再回到 0,共 5 个状态;每 5 个时钟,YY输出一个高电平脉冲。所以这是一个同步五进制加法计数器,YY是进位输出。

自启动:无效状态 101、110、111 经过 1 个时钟分别进入 010、010、100,都落进了有效循环,所以能自启动。

验算:用 Python 对 8 个状态逐个模拟,有效循环长度为 5,所有无效状态都能进入循环(脚本 14-analysis.py)。


四、例 2:不能自启动的电路,以及怎么改

题:同步时序电路由 3 个上升沿 D 触发器构成,从逻辑图读出:D1D_1接Q3‾\overline{Q_3}⁠,D2D_2接Q1Q_1⁠,D3D_3接Q2Q_2⁠,输出Y=Q3Q2‾Y=Q_3\overline{Q_2}⁠。分析其功能,判断能否自启动;若不能,提出修改方案。

第 1~3 步:三组方程

驱动方程:

D1=Q3‾,D2=Q1,D3=Q2D_1=\overline{Q_3},\qquad D_2=Q_1,\qquad D_3=Q_2

状态方程(代入Q∗=DQ^{*}=D⁠):

Q1∗=Q3‾,Q2∗=Q1,Q3∗=Q2Q_1^{*}=\overline{Q_3},\qquad Q_2^{*}=Q_1,\qquad Q_3^{*}=Q_2

输出方程:

Y=Q3Q2‾Y=Q_3\overline{Q_2}

看结构:Q1→Q2→Q3Q_1\to Q_2\to Q_3依次传递,最后Q3‾\overline{Q_3}又送回D1D_1——这是一个"首尾反相相接"的移位结构(第 15 讲会知道它叫扭环形计数器)。

第 4 步:状态转换表(8 个状态全列)

现态Q3Q2Q1Q_3Q_2Q_1 次态Q3∗Q2∗Q1∗Q_3^{*}Q_2^{*}Q_1^{*} YY
000 001 0
001 011 0
010 101 0
011 111 0
100 000 1
101 010 1
110 100 0
111 110 0

算一行示范:现态010010(⁠Q1=0,Q2=1,Q3=0Q_1=0,Q_2=1,Q_3=0⁠):Q1∗=0‾=1Q_1^{*}=\overline{0}=1⁠,Q2∗=Q1=0Q_2^{*}=Q_1=0⁠,Q3∗=Q2=1Q_3^{*}=Q_2=1⁠,次态101101⁠。

第 5、7 步:状态图、功能、自启动

从 000 出发:000→001→011→111→110→100→000000\to001\to011\to111\to110\to100\to000⁠,6 个状态的循环,每次只有一位变化;在这个循环里只有 100 时Y=1Y=1⁠,每 6 个时钟输出一个脉冲。所以有效循环是一个六进制计数器(⁠YY为进位输出)。

剩下两个状态:010→101→010010\to101\to010⁠,它们自己转成一个圈(无效循环),永远回不到有效循环(见图 2 右)。所以电路不能自启动。一旦上电时落到 010 或 101,或者工作中被干扰打进去,计数器就"卡死"在错误的两状态循环里。

修改思路一:改反馈逻辑(推荐,最根本)

想法:有效循环里的转换一个都不能动,只改无效状态的去向,让它们能进入有效循环。

因为Q2∗=Q1Q_2^{*}=Q_1⁠、Q3∗=Q2Q_3^{*}=Q_2是移位关系,我们只改D1D_1⁠。把有效状态对D1D_1(也就是Q1∗Q_1^{*}⁠)的要求填进卡诺图(行Q3Q_3⁠,列Q2Q1Q_2Q_1⁠):

Q3Q_3 \ Q2Q1Q_2Q_1 00 01 11 10
0 1 1 1 0(010:指定)
1 0 ×(101) 0 0
  • 有效状态 000、001、011 的次态分别是 001、011、111,要求Q1∗=1Q_1^{*}=1⁠;111、110、100 的次态分别是 110、100、000,要求Q1∗=0Q_1^{*}=0⁠。这 6 格不许改。
  • 无效状态 010:原来D1=1D_1=1使它去 101;现在指定D1=0D_1=0,那么次态为Q3∗Q2∗Q1∗=Q2 Q1 0=100Q_3^{*}Q_2^{*}Q_1^{*}=Q_2\,Q_1\,0=100⁠,正好是有效状态!
  • 无效状态 101:暂时当无关项 ×。

化简:圈Q3=0Q_3=0行的 00、01 两格得Q3‾ Q2‾\overline{Q_3}\,\overline{Q_2}⁠,圈 01、11 两格得Q3‾Q1\overline{Q_3}Q_1⁠:

D1=Q3‾ Q2‾+Q3‾Q1=Q3‾ (Q2‾+Q1)D_1=\overline{Q_3}\,\overline{Q_2}+\overline{Q_3}Q_1=\overline{Q_3}\,(\overline{Q_2}+Q_1)

检查(必须做!):×(101)在化简中被圈在外面,即取D1=0D_1=0⁠,于是101→010→100101\to010\to100⁠,也进入了有效循环。6 个有效状态的去向一个没变。所以修改后能自启动。

现态 原来的次态 修改后的次态
010 101 100
101 010 010(再下一拍到 100)
其余 6 个有效状态 不变 不变

验算:Python 对修改后的电路逐状态模拟,有效循环仍是 000→001→011→111→110→100→000,010、101 都能进入有效循环(14-analysis.py);sympy 按"010 取 0、101 无关"化简D1D_1⁠,结果相同。

修改思路二:开机预置

利用触发器的异步置零端(⁠RD‾\overline{R_D}⁠),在电源接通时给一个清零脉冲,把电路强行置成有效状态 000。这样开机一定从有效循环开始。

缺点:它只管"开机那一下"。工作中如果被干扰打进 010 或 101,电路照样卡死。所以题目问"如何使电路能自启动"时,首选思路一(修改逻辑设计),思路二可以作为补充。


五、例 3:带输入变量的米利型电路

题:同步时序电路由两个上升沿 D 触发器构成,输入为XX(每个时钟周期送入一位串行数据),读图得:

D1=X Q1‾ Q2‾,D2=X (Q1+Q2),Y=XQ2D_1=X\,\overline{Q_1}\,\overline{Q_2},\qquad D_2=X\,(Q_1+Q_2),\qquad Y=XQ_2

分析电路功能,判断能否自启动。

第 1~3 步

驱动方程即上式;状态方程:

Q1∗=X Q1‾ Q2‾,Q2∗=X (Q1+Q2)Q_1^{*}=X\,\overline{Q_1}\,\overline{Q_2},\qquad Q_2^{*}=X\,(Q_1+Q_2)

输出方程Y=XQ2Y=XQ_2——输出和输入XX直接有关,是米利型电路。

第 4 步:状态转换表

有输入时,状态转换表要对"每个现态 × 每个输入"都算。常用二维表:行是现态Q2Q1Q_2Q_1⁠,列是输入XX⁠,格子里写"次态Q2∗Q1∗Q_2^{*}Q_1^{*} / 输出YY":

现态Q2Q1Q_2Q_1 X=0X=0 X=1X=1
00 00 / 0 01 / 0
01 00 / 0 10 / 0
10 00 / 0 10 / 1
11 00 / 0 10 / 1

示范一格:现态 01(⁠Q1=1,Q2=0Q_1=1,Q_2=0⁠)、X=1X=1⁠:Q1∗=1⋅0⋅1=0Q_1^{*}=1\cdot0\cdot1=0⁠,Q2∗=1⋅(1+0)=1Q_2^{*}=1\cdot(1+0)=1⁠,Y=1⋅0=0Y=1\cdot0=0⁠,填"10 / 0"。

第 5 步:状态图(文字版)

  • 00:X=0X=0回 00(输出 0),X=1X=1去 01(输出 0);
  • 01:X=0X=0回 00(输出 0),X=1X=1去 10(输出 0);
  • 10:X=0X=0回 00(输出 0),X=1X=1留在 10(输出 1);
  • 11:X=0X=0去 00,X=1X=1去 10(输出 1)。

画图时箭头旁写"X/YX/Y",如"1/0""1/1"。

第 6 步:给一串输入模拟(相当于时序图的表格版)

设初态 00,输入序列X=0,1,1,1,1,0,1,1,0,1,1,1X=0,1,1,1,1,0,1,1,0,1,1,1⁠:

第几拍 1 2 3 4 5 6 7 8 9 10 11 12
XX 0 1 1 1 1 0 1 1 0 1 1 1
现态Q2Q1Q_2Q_1 00 00 01 10 10 10 00 01 10 00 01 10
Y=XQ2Y=XQ_2 0 0 0 1 1 0 0 0 0 0 0 1

(米利型输出YY是"本拍的现态 + 本拍的XX"算出来的,在时钟沿到来之前读取。)

第 7 步:功能与自启动

状态的含义:00 = "前面没有连续的 1",01 = "已经连续收到 1 个 1",10 = "已经连续收到 2 个或更多 1"。只要X=0X=0就回到 00。

功能:当输入连续出现 3 个或 3 个以上的 1 时,从第 3 个 1 起输出Y=1Y=1——这是一个**"111"序列检测器**(可重叠检测)。上表第 4、5、12 拍正是这样。

自启动:11 是无效状态,X=0X=0时去 00,X=1X=1时去 10,无论输入是什么都进入有效状态,所以能自启动。

验算:Python 按方程逐拍模拟上述输入序列,YY在第 4、5、12 拍为 1(14-analysis.py)。


六、怎么一眼看出"功能"

分析题第 (3) 问常让人卡壳。几条经验:

  1. 数有效循环有几个状态:MM个状态的循环,基本就是"MM进制计数器"或"MM分频器"。
  2. 看状态是不是按二进制数递增/递减:递增叫加法计数器,递减叫减法计数器;如果每次只变一位(如例 2),可能是格雷码式计数或扭环形计数器。
  3. 看输出YY:每循环一周出一个脉冲,通常是进位(或借位)输出。
  4. 看结构:Q1→Q2→Q3Q_1\to Q_2\to Q_3依次传递的是移位寄存器型电路(第 15 讲)。
  5. 有输入XX时:看XX取不同值时循环是否不同(如X=0X=0加法、X=1X=1减法,叫可控计数器),或者看输出在什么输入序列下为 1(序列检测器)。
  6. 描述功能要完整:说清"几进制、加法还是减法、同步还是异步、YY是什么、能否自启动"。

七、真题怎么考:2026 回忆题第 7 题的答题模板

2026 回忆题第 7 题:时序电路分析(D 触发器构成):(1) 驱动(激励)方程、状态方程 (2) 状态转换表/状态转换图 (3) 功能?能否自启动?

拿到图后,按下面的模板写,步骤分一分不丢:

  1. 驱动方程:D1=⋯D_1=\cdots⁠,D2=⋯D_2=\cdots⁠,D3=⋯D_3=\cdots(写清每个 D 端接的逻辑式,有门的要化成与或式)。
  2. 状态方程:由 D 触发器特性方程Q∗=DQ^{*}=D得Q1∗=⋯Q_1^{*}=\cdots⁠,Q2∗=⋯Q_2^{*}=\cdots⁠,Q3∗=⋯Q_3^{*}=\cdots⁠。如果有输出,再写输出方程 Y=⋯Y=\cdots⁠。
  3. 状态转换表:2n2^n个现态全部列出(有输入时每个输入值都要列),写出次态和输出。
  4. 状态转换图:画出有效循环和所有无效状态的去向,箭头旁标"输入/输出"。
  5. 功能:"该电路是同步MM进制(加法/减法)计数器,YY为进位输出"之类。
  6. 自启动:写一句判断依据——"无效状态 ×××、××× 在时钟作用下均能进入有效循环,故电路能自启动",或"无效状态 ××× 与 ××× 构成无效循环,不能进入有效循环,故电路不能自启动"。若题目追问,再给修改方案。

八、易错点汇总 ⚠️

  • ⚠️ 状态表漏行:只算有效循环、不算无效状态,自启动就判断不了。nn个触发器必须列满2n2^n行。
  • ⚠️ "同时更新":同一拍里所有触发器都用现态计算次态,算完再一起换成新状态;不能用刚算出来的Q1∗Q_1^{*}去算Q2∗Q_2^{*}⁠。
  • ⚠️ 状态位的顺序:Q3Q2Q1Q_3Q_2Q_1还是Q1Q2Q3Q_1Q_2Q_3⁠,开头就要写清并一直保持;功能判断(是不是二进制递增)依赖这个顺序。
  • ⚠️ JK 电路别忘代特性方程:D 触发器Q∗=DQ^{*}=D很省事,JK 触发器要代入Q∗=JQ‾+K‾QQ^{*}=J\overline{Q}+\overline{K}Q再化简(见练习 2)。
  • ⚠️ CLK 不是输入变量:没有XX的电路是穆尔型,状态转换图箭头上方不写字。
  • ⚠️ 自启动判断看"最终"能否进入:无效状态可以经过几步才进入有效循环(如例 2 修改后 101→010→100),也算能自启动。
  • ⚠️ 修改电路后要复查:改反馈逻辑时,有效循环的转换不能被改坏,无关项最终取了什么值也要代回去检查。

速记卡

项目 要点
时序电路特征 组合电路 + 触发器,触发器输出反馈回去;输出取决于输入和原状态
三组方程 输出方程Y=F(X,Q)Y=F(X,Q)⁠;驱动方程D/J/K=G(X,Q)D/J/K=G(X,Q)⁠;状态方程 = 驱动方程代入特性方程
七步法 驱动 → 状态 → 输出 → 状态表(列满2n2^n⁠)→ 状态图 → 时序图 → 功能与自启动
D 触发器电路 Qi∗=DiQ_i^{*}=D_i⁠,状态方程与驱动方程同式但含义不同
穆尔 / 米利 输出只看状态 / 输出还看输入XX
自启动 所有无效状态都能在时钟作用下进入有效循环
不能自启动的标志 无效状态自成循环(或停在自身)
修改方法 ① 改反馈逻辑:卡诺图中给无效状态指定能进入有效循环的次态,有效转换不变;② 开机用异步置零预置(只管开机)
例 1 D1=Q1‾ Q3‾D_1=\overline{Q_1}\,\overline{Q_3}⁠,D2=Q1⊕Q2D_2=Q_1\oplus Q_2⁠,D3=Q1Q2D_3=Q_1Q_2⁠:同步五进制加法计数器,能自启动
例 2 D1=Q3‾D_1=\overline{Q_3}⁠,D2=Q1D_2=Q_1⁠,D3=Q2D_3=Q_2⁠:六进制,010↔101 无效循环,不能自启动;改D1=Q3‾(Q2‾+Q1)D_1=\overline{Q_3}(\overline{Q_2}+Q_1)后能自启动
例 3 D1=XQ1‾ Q2‾D_1=X\overline{Q_1}\,\overline{Q_2}⁠,D2=X(Q1+Q2)D_2=X(Q_1+Q_2)⁠,Y=XQ2Y=XQ_2⁠:连续三个及以上 1 检测器

自测练习

1. 两个上升沿 D 触发器构成同步电路,D1=Q2‾D_1=\overline{Q_2}⁠,D2=Q1D_2=Q_1⁠。写出状态方程,列出状态转换表(状态写作Q2Q1Q_2Q_1⁠),说明功能,判断能否自启动。

答案与提示

Q1∗=Q2‾Q_1^{*}=\overline{Q_2}⁠,Q2∗=Q1Q_2^{*}=Q_1⁠。状态表:00→01,01→11,11→10,10→00。4 个状态构成一个循环 00→01→11→10→00,每次只变一位,是四进制计数器(格雷码顺序)。没有无效状态,能自启动。(Python 核对。)

2. 两个下降沿 JK 触发器构成同步电路,J1=K1=1J_1=K_1=1⁠,J2=K2=Q1J_2=K_2=Q_1⁠,输出Y=Q1Q2Y=Q_1Q_2⁠。写出状态方程,列出状态转换表,说明功能。

答案与提示

代入Q∗=JQ‾+K‾QQ^{*}=J\overline{Q}+\overline{K}Q⁠:Q1∗=Q1‾Q_1^{*}=\overline{Q_1}⁠,Q2∗=Q1Q2‾+Q1‾Q2=Q1⊕Q2Q_2^{*}=Q_1\overline{Q_2}+\overline{Q_1}Q_2=Q_1\oplus Q_2⁠。状态表(⁠Q2Q1Q_2Q_1⁠):00→01(Y=0),01→10(Y=0),10→11(Y=0),11→00(Y=1)。是同步两位二进制(四进制)加法计数器,YY为进位输出;4 个状态全部有效,能自启动。

3.(2026 回忆题第 7 题同类型)三个上升沿 D 触发器构成同步电路:D1=Q2‾ Q3‾D_1=\overline{Q_2}\,\overline{Q_3}⁠,D2=Q1D_2=Q_1⁠,D3=Q2D_3=Q_2⁠,Y=Q3Q2‾Y=Q_3\overline{Q_2}⁠。(1) 写出驱动方程和状态方程;(2) 列出状态转换表,画出状态转换图;(3) 说明功能,判断能否自启动。

答案与提示

(1) 驱动方程如题;状态方程Q1∗=Q2‾ Q3‾Q_1^{*}=\overline{Q_2}\,\overline{Q_3}⁠,Q2∗=Q1Q_2^{*}=Q_1⁠,Q3∗=Q2Q_3^{*}=Q_2⁠;输出Y=Q3Q2‾Y=Q_3\overline{Q_2}⁠。

(2) 状态表(⁠Q3Q2Q1Q_3Q_2Q_1 → 次态 / YY⁠):000→001/0,001→011/0,010→100/0,011→110/0,100→000/1,101→010/1,110→100/0,111→110/0。

(3) 有效循环 000→001→011→110→100→000,共 5 个状态,每循环一次YY输出一个脉冲(在 100 时),是同步五进制计数器。无效状态 010→100、101→010→100、111→110,都能进入有效循环,能自启动。(Python 逐状态模拟核对。)

4. 三个上升沿 D 触发器:D1=Q1‾D_1=\overline{Q_1}⁠,D2=Q1⊕Q2D_2=Q_1\oplus Q_2⁠,D3=Q3⊕(Q1Q2)D_3=Q_3\oplus(Q_1Q_2)⁠,Y=Q1Q2Q3Y=Q_1Q_2Q_3⁠。说明功能。

答案与提示

状态按Q3Q2Q1Q_3Q_2Q_1依次 000→001→010→011→100→101→110→111→000,是同步三位二进制(八进制)加法计数器,YY在 111 时为 1,是进位输出。8 个状态都是有效状态,能自启动。

5. 三个上升沿 D 触发器:D1=Q3D_1=Q_3⁠,D2=Q1D_2=Q_1⁠,D3=Q2D_3=Q_2⁠,初态Q3Q2Q1=001Q_3Q_2Q_1=001⁠。写出有效循环,判断能否自启动。

答案与提示

Q1∗=Q3Q_1^{*}=Q_3⁠、Q2∗=Q1Q_2^{*}=Q_1⁠、Q3∗=Q2Q_3^{*}=Q_2⁠,数据循环移位。有效循环 001→010→100→001(3 个状态,三进制环形计数器)。无效状态中 000、111 各自停在原地,011→110→101→011 构成另一个循环,都回不到有效循环,不能自启动。

6. 两个上升沿 D 触发器:D1=Q1‾ Q2‾D_1=\overline{Q_1}\,\overline{Q_2}⁠,D2=Q1D_2=Q_1⁠,Y=Q2Y=Q_2⁠。说明功能,判断能否自启动。

答案与提示

状态表(⁠Q2Q1Q_2Q_1⁠):00→01,01→10,10→00,11→10。有效循环 00→01→10→00,三进制计数器,YY在 10 时为 1。无效状态 11 一拍后进入 10,能自启动。

7. 例 3 的电路,初态 00,输入XX依次为 1、1、0、1、1、1、1、0,求每一拍的现态和输出YY⁠。

答案与提示

现态依次 00、01、10、00、01、10、10、10;Y=XQ2Y=XQ_2依次 0、0、0、0、0、1、1、0。第 6、7 拍分别是连续的第 3、第 4 个 1,输出 1;第 8 拍X=0X=0⁠,输出 0。(Python 核对。)


下一讲预告

第 15 讲:时序电路最简单的"成品"——寄存器和移位寄存器,看数据怎样在触发器之间一拍一拍地挪动,认识双向移位寄存器 74HC194,并预告环形、扭环形计数器。

👉 点击进入下一讲:第15讲|寄存器与移位寄存器

评论

还没有评论。 来写第一条。

留下一条评论

选填,不会公开

纯文本,链接会自动识别。