tags: [数电]
type: note
source_type: reconstructed
created: 2026-08-15
updated: 2026-08-18
aliases: [时序逻辑, 计数器, 寄存器, 状态机, 移位寄存器]
时序逻辑电路与状态机
[!note] 对象层
学完这篇,你能判断:
- 时序逻辑 vs 组合逻辑(记忆元件存在与否);
- 同步时序 vs 异步时序(时钟是否共用一个);
- 计数器芯片(74LS160/161/90)如何级联实现任意进制;
- 从状态图/状态表读懂一个状态机在干什么(序列检测器)。
用生活理解:时序电路 = 组合电路 + 记忆。它像"计步器"——每走一步(时钟沿)才更新一次,当前状态取决于历史。状态机则是"有剧本的机器人":每收到一个输入,按剧本(状态图)从当前状态跳到下一个状态。计数器是"自动加一"的状态机,寄存器是"排队存档"的状态机。
一、一句话本质
时序逻辑电路包含存储元件(触发器),输出是"当前输入 + 历史状态"的函数;按结构分同步/异步,按模型分米利(输出看输入)/摩尔(输出只看状态);分析工具是状态表/状态图/时序图。
二、速查表(公式与结论)
2.1 同步 vs 异步
| 维度 |
同步时序 |
异步时序 |
| 时钟 |
所有触发器共用同一个 CLK |
触发器各用各的时钟(前级输出驱动后级) |
| 速度/可靠性 |
状态同时更新,无累积时延,可靠 |
存在级间延迟(行波),速度慢、易毛刺 |
| 工程选择 |
默认首选 |
仅简单场合(如 74LS90 内部) |
2.2 米利(Mealy)vs 摩尔(Moore)
| 模型 |
输出依赖 |
特点 |
| 米利 |
当前状态 + 当前输入 |
响应快,但输入变化立即影响输出(可能有毛刺) |
| 摩尔 |
仅当前状态 |
输出稳定一个时钟周期,与输入无关,更可靠 |
2.3 常用计数器芯片
| 芯片 |
功能 |
级联/注意 |
| 74LS160 |
同步十进制计数器(0~9) |
进位输出 RCO |
| 74LS161 |
同步四位二进制计数器(0~15) |
可预置数(同步置数) |
| 74LS90 |
异步二-五-十进制计数器 |
内部两段,B 接 A 组成十进制 |
| 74LS194 |
四位双向移位寄存器 |
左移/右移/并行置数/保持 |
2.4 任意进制计数器的两种构成法
- 清零法(异步):计数到 N 时用译码电路立刻清零 → 从 0 到 N−1 循环,但清零有毛刺;
- 置数法(同步):计数到 N−1 时下一个时钟预置初值(如 0)→ 无毛刺,工程首选。
例:用 74LS161 构成 0~9 十进制:计数到 1001(9) 时"同步置 0"(LOAD'=0)。
2.5 同步时序电路分析步骤
- 写激励方程(各触发器输入表达式);
- 代入特性方程 → 状态方程;
- 列状态表 → 画状态图;
- 画时序图(波形)验证。
三、判别规则
- 时序 vs 组合:含触发器/锁存器/反馈 = 时序;纯门电路 = 组合。
- 同步 vs 异步:所有 CLK 引脚连同一网络 → 同步;连到别的触发器输出 → 异步。
- 进制判定:看"模"——计数器循环的状态数(0~14 循环 = 模 15)。
- 清零 vs 置数:清零法是"到 N 立即归零"(可能闪一下 N);置数法是"在 N−1 时预置"(不出现 N)→ 判别电路里到底用哪个。
四、易混对比
| 易混点 A |
易混点 B |
关键区别 |
| 同步计数 |
异步计数 |
同步所有位同一时钟同时翻转;异步前级进位驱动后级(行波) |
| 计数器 |
寄存器 |
计数器按模循环递增/递减;寄存器只存不移(移位寄存器另说) |
| 移位寄存器 |
计数器 |
移位寄存器把数据逐位移入移出(串行);计数器产生序列(计数) |
| 米利输出 |
摩尔输出 |
米利=状态+输入;摩尔=只状态。时序图上摩尔输出变化只在状态转移后 |
五、典型例题(先想再翻)
- 分析:两个 74LS161 级联,进位 RCO 接高位 ENP,构成多少进制?
> 答:16×16 = 256 进制(两片级联相乘)。
- 设计:用 74LS161 构成 12 进制计数器。
> 答:同步置数法:Q3Q2Q1Q0=1011(11) 时 LOAD'=0,预置 0000 → 0~11 循环。清零法:计数到 1100(12) 时清零(会出现 12 的毛刺)。
- 陷阱题:同学说"异步清零法没有毛刺,因为清零瞬间就完成了"。
> 答:错。异步清零存在竞争(清零信号与时钟竞争),可能产生毛刺或漏计;工程上优先用同步置数法。
六、完整知识点
6.1 寄存器与移位寄存器
- 74LS194:4 位双向移位,S1S0 控制模式(00 保持/01 右移/10 左移/11 并行置数);
- 应用:串并转换(UART 就是移位寄存器)、乘法器移位累加、键盘扫描。
6.2 计数器的"使能-进位"链
级联关键:低位的 RCO(进位输出)→ 高位的 ENP/ENT(使能)。ENP 高、ENT 高且计满 15 时 RCO 才输出一个时钟周期的高 → 高位同步加 1。
6.3 状态机(FSM)设计入门
- 定义状态(用格雷码/独热码编码);
- 画状态转移图(每个状态:输入条件 → 下一状态/输出);
- 写状态表 → 用 D 触发器 + 组合逻辑实现;
- 现代工程:用 Verilog/VHDL 描述,EDA 工具综合——概念完全一致,只是实现语言变了。
6.4 序列检测器(经典例子)
检测"101"序列:需要 4 个状态(S0 无输入、S1 收到 1、S2 收到 10、S3 收到 101 输出 1 并回退)。它能体现状态机"如何用有限状态记住无限序列",是面试与课程设计常客。
6.5 分频器(工程高频应用)
T 触发器=二分频;多个分频器级联 → 任意分频。STM32 时钟树(PLL、分频)原理相同——一个晶振 8MHz,内部分频到 72MHz 主频再分频给外设。
6.6 寄存器 = 多个 D 触发器并联(Digital 动手,尚硅谷补充)
D 触发器只能存 1 bit;要存多位就多个 D 触发器并联、共享同一个时钟——这就是寄存器。

- 4bit 寄存器:D0
D3 并行输入,时钟上升沿一起存入 Q0Q3,可再添加 en 使能信号控制"何时写";
- 直接用"组件→存储器"里的寄存器即可(不必再画触发器阵列);
- PC 计数器(程序计数器)= 寄存器 + 加法器:加法器把寄存器输出 +1 再写回寄存器,每个时钟上升沿自动加 1 → 这正是 [[10-从零搭建计算机(上)-组成与算力|数电 10]] 里 CPU 逐条取指令的地址来源(详见 [[11-从零搭建计算机(下)-控制与指令|数电 11]])。
结论:本课"寄存器是排队存档的状态机"落地到电路就是"一组共享时钟的 D 触发器";移位寄存器则让数据在 D 触发器间"传递"(串并转换、UART 的地基)。
七、与 PCB 画图的关联
- 晶振 → 分频 → 时钟树:看 STM32 原理图上的时钟引脚(OSC_IN/OSC_OUT)与外部晶振电路(对应 [[PCB学习笔记/09-项目实战-51单片机核心板|PCB 笔记 09]])。
- 复位电路/上电时序:计数器与复位芯片保证芯片按序启动。
- 数码管动态扫描(计数器+选择器)是 51 核心板典型电路。
- 看门狗、定时器 → 计数器概念([[PCB学习笔记/09-项目实战-51单片机核心板|PCB 笔记 09]] 与 STM32 学习笔记 Watchdog)。
来源:阎石《数字电子技术基础》第 5 章(时序逻辑电路)、第 6 章(中规模时序电路);尚硅谷《从零搭建计算机》第 1.3.6 节(寄存器)