数字电子技术基础
两周通关大合集
你只学过邱关源《电路》的前三章(电路模型与定律、电阻电路等效变换、电阻电路一般分析)——这已经足够了。这份教程会把每一步都踩在你已有的地基上,凡是需要"第 4 章以后"或"模电"的知识,都会用醒目的 超纲·必补 标出来,并现场补讲。
READING GUIDE三种标记怎么读
这门课真正的难点不是逻辑本身,而是它默认你会"半导体"和"电容充放电"。所以本教程用三色标签把知识分层,你永远不会在毫无准备时被超纲内容打懵。
KCL/KVL、参考方向、电功率、电阻串并联与分压分流、理想电压源/电流源、受控源、结点电压法、网孔电流法、Y–Δ 变换、电源等效变换。看到绿色标记,说明这里只是"换个马甲"考你已会的东西。
主要是四类:① 电容、电感与 RC 一阶暂态(《电路》第 6、7 章);② PN 结、二极管、三极管、MOS 管(模拟电子技术);③ 戴维南定理与叠加定理(《电路》第 4 章);④ 逻辑代数的运算规则(数学新课,但和集合论很像)。遇到橙色块,请务必读完再往下走,它们是本课程的地基。
Q–M 列表化简法、触发器内部时序参数细节、Verilog/FPGA、存储器容量扩展的工程细节、双积分 ADC 的积分推导等。第一遍可以跳过,第二遍或做课设时再回来。
标记红色的段落是历年卷面出现率最高的题型:卡诺图化简、用 74LS138/151 实现逻辑函数、触发器波形画法、同步时序分析、任意进制计数器、555 三公式。这些地方请务必动笔,不要只看。
A'表示 A 的非(等价于 A、¬A、NOT A);A·B简写AB;A+B是逻辑或。Q*或Qn+1表示触发器的次态,Q或Qn表示现态。- 数字下标
2/8/16表示进制,如(1011)2;0x前缀表示十六进制。 - 低电平有效的信号名后面加一撇或上划线,如
Y0'、R'D(复位端)。 - 电压:
VCC(TTL 电源)、VDD(CMOS 电源)、VOH/VOL(输出高/低电平)。
YOUR BASE你的起点盘点:电路前三章能换来什么
别小看这三章。数字电路里 80% 的"器件内部电路"分析,考的正是结点电压法 + KCL + 分压。下面这张表就是你已有的武器清单。
| 你已经会的(电路前三章) | 在数字电路里的用武之地 |
|---|---|
| KCL / KVL | 分析二极管门、TTL 与非门内部各管的工作点;解释 CMOS 门静态电流为什么几乎为 0 |
| 电压、电流参考方向 | 判断门电路是"灌电流"还是"拉电流",算扇出时不会把方向搞反 |
| 电功率 p = ui | 计算门电路功耗、功耗延迟积;判断器件是吸收还是输出功率 |
| 电阻串联分压 / 并联分流 | 555 内部三个 5 kΩ 分压出 1/3 VCC 与 2/3 VCC;权电阻 DAC;上拉电阻设计 |
| 理想电压源 / 电流源 | 把逻辑门输出等效成"理想源 + 内阻",理解为什么带不动太多负载 |
| 受控源(VCVS/VCCS/CCVS/CCCS) | 三极管、MOS 管的本质就是受控源;"开关"只是受控源的极端工作点 |
| 结点电压法 | 快速求门电路内部节点电压,判断某管饱和还是截止 |
| 网孔 / 回路电流法 | 多电源门电路的电流分配(用得少,但 TTL 输出级分析用得上) |
| 电源等效变换、Y–Δ | 把复杂偏置网络化简成一个等效源,套用你熟的公式 |
⚠️ 你还没学、但这门课默认你会的东西
下面四项是"挂科高发区"。本教程会在用到它们的第一时间现场补讲,你不需要提前自学,但心里要有数:
| 缺口 | 出处 | 在本课程哪里会突然出现 |
|---|---|---|
| 电容与 RC 一阶暂态 | 《电路》第 6、7 章 | 555 定时器的 tw=1.1RC、多谐振荡周期、门电路传输延迟、消抖电路 —— 不补这个,第 12 章完全看不懂 |
| PN 结 / 二极管 / 三极管 / MOS 管 | 模拟电子技术 | 第 4、5 章整个门电路章节;TTL 与 CMOS 的电气特性 —— 这是最大的一块超纲 |
| 戴维南定理、叠加定理 | 《电路》第 4 章 | 求门电路带负载后的实际输出电平、上拉电阻取值范围 —— 本教程只给结论并标注 |
| 逻辑代数运算规则 | 本课程第 2 章 | 不算超纲,但和初中代数"长得像、规则不同",极易凭直觉写错(如 A+A=?) |
数字电路是"用模拟电路搭出来的逻辑"。你现在的水平:逻辑部分完全能学(只需要初中数学 + 新符号);器件部分需要补一点半导体常识。所以本教程把这两条线分开走——先学"纯逻辑"(第 1–3 章、第 6–11 章),再回来补"器件物理"(第 4–5 章)。这样你不会在第 4 章卡住就放弃整门课。
ROADMAP两周学习地图:四个阶段
14 天不是平均用力。第 1 周打地基 + 拿下组合逻辑(占分 35%),第 2 周主攻时序(占分 40%)+ 收尾(占分 25%)。
阶段一 · 数学地基(第 1–3 天)
数制与码制 → 逻辑代数公式与规则 → 卡诺图化简。这三天决定你后面所有题的"化简速度"。目标:任意 4 变量函数 60 秒内化简完。
阶段二 · 器件与组合逻辑(第 4–7 天)
半导体开关(超纲补)→ CMOS/TTL 门电路参数 → 组合逻辑分析与设计 → 常用 MSI 器件(138/151/283/148/85)。目标:能用 138 和 151 实现任意函数。
阶段三 · 时序世界(第 8–12 天)
触发器 → 时序分析 → 时序设计 → 计数器与寄存器。这是全课程最难也最爱考的部分,务必留足 5 天。
阶段四 · 收口(第 13–14 天)
555 与脉冲电路(含 RC 超纲补)→ 存储器与 AD/DA(选学)→ 速查表 + 模拟卷 + 错题回炉。
数制 → 逻辑代数 → 卡诺图 → 组合逻辑 → 触发器 → 时序逻辑 → 计数器/寄存器
旁支:半导体器件 → 门电路(只影响"器件题",不影响"逻辑题");RC 暂态 → 555/脉冲。
CONTENTS章节目录 · 点击卡片直接跳转
15 章 + 附录。每张卡片标注了建议用时、难度和是否含超纲内容,方便你按状态挑着学。
数制与码制
二进制/八进制/十六进制互转、补码、8421BCD、格雷码。所有计算的起点。
逻辑代数基础
三种基本运算、20 条公式、三大规则、最小项与标准式。逻辑题的"乘法口诀"。
逻辑函数化简与卡诺图
公式法 + 卡诺图法 + 无关项。考场最省时间的一章,必须练到条件反射。
高频门电路(上):半导体开关
PN 结、二极管门、三极管饱和/截止、MOS 管开关模型。全套超纲补讲。
超纲门电路(下):CMOS 与 TTL
CMOS 反相器/与非门、TTL 与非门、电压传输特性、噪声容限、扇出、三态与 OC 门。
超纲组合逻辑:分析与设计
五步分析法、四步设计法、与非-与非实现、竞争冒险。设计题的标准模板。
高频常用组合逻辑器件
74LS138 译码器、74LS151 数据选择器、74LS283 加法器、74LS148 优先编码器、74LS85 比较器。
高频触发器
SR 锁存器 → 门控 → 主从 → 边沿触发;D/JK/T 特性方程与波形画法。
高频时序逻辑电路分析
驱动方程→状态方程→状态表→状态图→时序图,五步一条龙,含完整例题。
高频时序逻辑电路设计
状态图→编码→状态表→驱动方程(JK/D)→自启动检查。全课程最难的一道大题。
高频计数器与寄存器
74LS161/160/290、任意进制(反馈清零 vs 反馈置数)、74LS194、环形与扭环计数器。
高频555 定时器与脉冲电路
RC 暂态补讲、555 内部结构、施密特触发器、单稳态、多谐振荡器三大公式。
超纲+高频存储器与可编程逻辑
ROM/RAM 结构与容量计算、存储器扩展、用 ROM 实现组合逻辑、PLD/FPGA 速览。
选学数模与模数转换
权电阻/R-2R DAC、采样定理、量化误差、并行/逐次逼近/双积分 ADC。
选学总复习 · 速查 · 模拟卷
一页纸公式表、芯片引脚速查、30 道模拟卷(含答案)、错题回炉清单。
必看附录:符号 · FAQ · 资源
逻辑符号对照(国标/IEC)、常见疑问 20 问、进阶学习路线。
14-DAY PLAN14 天打卡计划(每天 90–120 分钟)
勾选左边的方框可以记录进度,会自动保存在你的浏览器里(刷新不丢)。学完一天就勾一天,看着进度条涨最提神。
| 天 | 主题(点击跳章) | 当天任务(做完才算完成) | 完成 |
|---|---|---|---|
| D1 | 数制与码制 | 完成 3 组进制互转各 5 题;写出 −25 的 8 位补码;默写 8421BCD 与格雷码前 8 个 | |
| D2 | 逻辑代数基础 | 默写 10 条常用公式;用真值表验证德摩根;把 3 个表达式化成最小项之和 | |
| D3 | 卡诺图化简 | 做 6 道 4 变量卡诺图(含 2 道无关项);限时每题 90 秒 | |
| D4 | 半导体开关 | 画二极管与门/或门并标电平;算一次三极管饱和临界 RB;说清 NMOS/PMOS 何时导通 | |
| D5 | CMOS 与 TTL | 背下 4 个电平参数;算 2 组噪声容限与扇出;解释 CMOS 静态功耗为何≈0 | |
| D6 | 组合逻辑分析/设计 | 独立完成 1 道分析题 + 1 道"三人表决器"设计题(写到与非门级) | |
| D7 | 常用组合器件 | 用 138 实现 1 个三变量函数;用 151 实现 1 个四变量函数;画全加器进位链 | |
| D8 | 触发器(一) | 画 SR 锁存器两个门电路;说清"空翻"成因;写出 SR/D 特性方程 | |
| D9 | 触发器(二) | 默写 D/JK/T 特性方程;画 6 个 CP 周期的主从 JK 波形;区分电平/边沿符号 | |
| D10 | 时序电路分析 | 完整做 1 道同步时序分析(五步全写);补画时序图 | |
| D11 | 时序电路设计 | 设计 1 个 3 状态序列检测器(用 JK);检查自启动 | |
| D12 | 计数器与寄存器 | 用 161 设计 mod 6 与 mod 12 各一;画 194 环形计数器状态表 | |
| D13 | 555 + 存储器 | 背 3 个 555 公式;算 R=10k,C=10μF 的单稳态时间;算 1 个存储器容量 | |
| D14 | AD/DA + 模拟卷 | 闭卷做模拟卷;对答案;把错的题号抄进错题清单并回看对应章 |
优先级排序:第 3 章(卡诺图)→ 第 6 章(组合设计)→ 第 8 章(触发器)→ 第 9 章(时序分析)→ 第 11 章(计数器)→ 第 12 章(555)。第 4、5、13、14 章可以只看"结论与公式",放弃内部电路推导。第 10 章(时序设计)若时间紧,掌握"状态图→状态表"这一步即可拿步骤分。
HOW TO STUDY高效学习法与 5 个致命误区
- 第一遍(10 分钟):只看本章的"学完你能做到"和标题,知道要打哪个怪。
- 第二遍(40 分钟):逐段读,遇到例题先盖住答案自己算,算完再对照。橙色超纲框必须读完。
- 第三遍(15 分钟):合上页面,用白纸默写本章公式/步骤,做自测题,错题标红。
A+A=2A?错,是 A。这里没有系数,只有 0 和 1。A·A=A、A+A'=1、A·A'=0。把这三条刻进脑子,能救你 20 分。
时序题(第 8–11 章)必须动笔画波形和状态图。看懂别人的状态图和能自己画出来,中间差着一整个考试。
4 变量以上,公式法极易漏项。卡诺图是"图形化的穷举",慢一点但几乎不会错。第 3 章务必练熟。
74LS138 的输出 Y0' 是"低电平有效",意思是被选中时输出 0V。很多题就错在把"选中 = 输出 1"当成默认。看到撇号先问一句:低有效还是高有效?
第 4、5 章内部电路推导是"理解用"的,考试更爱考参数计算(噪声容限、扇出、功耗)和结论(CMOS 不能悬空输入、TTL 不能线与、OC 门要上拉)。抓大放小。
数制与码制:给"高低电平"起名字
数字电路只认两种状态:高电平和低电平。我们把它记成 1 和 0。于是所有信息——数字、字母、汉字、一张照片——最后都变成一串 0 和 1。这一章就是学"怎么把人类的信息翻译成 0/1,再翻译回来"。
你学过的电阻、电压源都是模拟量:电压可以连续地取 0~5 V 之间任意值。而数字电路里我们故意只取两档:0~0.8 V 算"低",2.4~5 V 算"高",中间地带是"禁区"。这就像你家里的电灯开关——要么开要么关,不像调光灯那样连续可调。故意浪费掉中间状态,换来的是极强的抗干扰能力:哪怕电压因为干扰漂了一点,只要还在"高"的范围内,读出来还是 1,信息不会错。
1.1 常用数制:都是"位权"游戏
任何进制都只有一个秘密:每一位的"权重"是基数的整数次幂。十进制你熟,是因为你有十根手指;计算机用二进制,是因为电路只有"通/断"两态。
| 数制 | 基数 | 可用数字 | 例子 | 展开成十进制 |
|---|---|---|---|---|
| 十进制 DEC | 10 | 0–9 | (395)10 | 3×102+9×101+5×100 |
| 二进制 BIN | 2 | 0,1 | (1011)2 | 1×8+0×4+1×2+1×1 = 11 |
| 八进制 OCT | 8 | 0–7 | (27)8 | 2×8+7 = 23 |
| 十六进制 HEX | 16 | 0–9,A–F | (2F)16 | 2×16+15 = 47 |
假设你要记一串 32 位的二进制:1011 1101 0010 1110 1010 0101 0011 1100。眼睛会花。
但把它每 4 位一组读成十六进制:B D 2 E A 5 3 C —— 8 个字符搞定。
原因很简单:24 = 16,1 位十六进制刚好等于 4 位二进制,不多不少。同理 1 位八进制 = 3 位二进制。所以十六进制是二进制的"压缩包",不是另一种数学。
1.2 进制互转:四条路线
① 任意进制 → 十进制:按位权展开相加
例:(1101.101)2 = 8+4+0+1 + 0.5+0+0.125 = (13.625)10。
② 十进制 → 任意进制:整数"除基取余,倒着读";小数"乘基取整,顺着读"
43 ÷ 2 = 21 余 1(最低位)
21 ÷ 2 = 10 余 1
10 ÷ 2 = 5 余 0
5 ÷ 2 = 2 余 1
2 ÷ 2 = 1 余 0
1 ÷ 2 = 0 余 1(最高位)
从下往上读:(43)10 = (101011)2。验算:32+8+2+1 = 43 ✔
0.625×2 = 1.25 → 取整 1,余 0.25
0.25×2 = 0.5 → 取整 0,余 0.5
0.5×2 = 1.0 → 取整 1,余 0
从上往下读:0.101。验算:0.5+0.125 = 0.625 ✔
注意:小数不一定能除尽(如 0.1),此时按精度要求取够位数即可。
③ 二进制 ↔ 八进制 / 十六进制:分组法(最快)
- 二 → 八:以小数点为界,向左向右每 3 位一组,不足补 0。
- 二 → 十六:每 4 位一组。反过来就是一位拆成 3 位或 4 位。
例:(1011010.11)2 → 补零成 001 011 010 . 110 → (132.6)8;
按 4 位:0101 1010 . 1100 → (5A.C)16。
正确做法是借道二进制:八 → 二(每位拆 3 位)→ 十六(重新每 4 位分组)。直接按"除 16 取余"当然也对,但慢且容易错。
1.3 二进制算术运算与补码 超纲·必补
数字电路里做减法很麻烦(要额外电路),所以工程师发明了用加法代替减法的办法——补码。你高中可能只学过"负数加个负号",而计算机里负数是一串 0/1。
现在是 3 点,你想把表拨到 12 点。有两种拨法:
① 倒拨 3 小时:3 − 3 = 12(模 12 意义下);
② 正拨 9 小时:3 + 9 = 12(模 12 意义下)。
对表来说这两种操作完全等价!于是 "−3" 就可以用 "+9" 来代替,而 9 = 12 − 3,就叫 "−3 在模 12 下的补码"。
计算机同理:8 位二进制的"模"是 28 = 256,所以 −25 可以用 256 − 25 = 231 来代替。减法器就这样被省掉了。
| 名称 | 正数 | 负数(以 8 位、−25 为例) | 说明 |
|---|---|---|---|
| 原码 | 符号位 0 + 数值 | 1 0011001(最高位 1 表示负) | 最直观,但有 +0 和 −0 两个零,加减运算不方便 |
| 反码 | 同原码 | 1 1100110(数值位取反) | 过渡形式 |
| 补码 | 同原码 | 1 1100111(反码 +1) | 实际使用;0 只有一种表示 |
25 = 0001 1001 → 取反 1110 0110 → 加 1 → 1110 0111。
验算:256 − 25 = 231 = 1110 0111 ✔
再验证 25 + (−25):0001 1001 + 1110 0111 = 1 0000 0000,丢掉最高位的进位(模 256)得 0000 0000 = 0 ✔ 减法成功了!
8 位补码要扩成 16 位时,正数左边补 0,负数左边补 1(符号扩展)。例如 1110 0111 → 1111 1111 1110 0111。
溢出判断:两个同号数相加,结果符号变了,就是溢出。例如 100 + 100 在 8 位补码下得 −56,是错的。数字电路的加法器本身不会报错,溢出要靠额外电路检测,这也是后面学 74LS283 时的一个话题。
1.4 常用编码:0/1 怎么表示"非数字"
编码就是"用 0/1 串给事物编号"的规则。同一组 4 位二进制,用不同规则解读,含义完全不同——这是初学者最容易混的地方。
① BCD 码(二–十进制码)
用 4 位二进制表示 1 位十进制数。最常用的是 8421BCD:4 位的权分别是 8、4、2、1,和普通二进制一模一样。区别在于:8421BCD 只用 0000–1001 这 10 个码,1010–1111 是"非法码"。
十进制 25:
• 二进制:(25)10 = 110012(5 位)
• 8421BCD:2 → 0010,5 → 0101,拼起来 0010 0101(8 位)
为什么数码管、电子表爱用 BCD?因为要"一位一位显示"。要让数码管显示 2 和 5,直接拿 4 位一组去驱动译码器最方便,不需要先算 25 的二进制。代价是浪费存储:100 个十进制数用 BCD 要 8 位,用二进制只要 7 位。
| 十进制 | 8421BCD | 5421BCD | 2421BCD | 余 3 码 | 余 3 循环码 |
|---|---|---|---|---|---|
| 0 | 0000 | 0000 | 0000 | 0011 | 0010 |
| 1 | 0001 | 0001 | 0001 | 0100 | 0110 |
| 2 | 0010 | 0010 | 0010 | 0101 | 0111 |
| 3 | 0011 | 0011 | 0011 | 0110 | 0101 |
| 4 | 0100 | 0100 | 0100 | 0111 | 0100 |
| 5 | 0101 | 1000 | 1011 | 1000 | 1100 |
| 6 | 0110 | 1001 | 1100 | 1001 | 1101 |
| 7 | 0111 | 1010 | 1101 | 1010 | 1111 |
| 8 | 1000 | 1011 | 1110 | 1011 | 1110 |
| 9 | 1001 | 1100 | 1111 | 1100 | 1010 |
💡 记忆:余 3 码 = 8421BCD + 0011(每个码加 3);2421BCD 是"自补码",0↔9、1↔8…的码正好互为按位取反;余 3 循环码相邻码只差 1 位,适合避免译码毛刺。
② 格雷码(Gray Code)
特点:任意相邻两个码只有 1 位不同。这在硬件里极其重要——如果用普通二进制计数,0111 → 1000 要同时翻 4 位,实际电路中 4 位不可能绝对同时翻转,中间会短暂出现 1111 之类的"假状态",引发毛刺。格雷码每次只翻 1 位,从根上避免。
| 十进制 | 4 位格雷码 | 十进制 | 4 位格雷码 |
|---|---|---|---|
| 0 | 0000 | 8 | 1100 |
| 1 | 0001 | 9 | 1101 |
| 2 | 0011 | 10 | 1111 |
| 3 | 0010 | 11 | 1110 |
| 4 | 0110 | 12 | 1010 |
| 5 | 0111 | 13 | 1011 |
| 6 | 0101 | 14 | 1001 |
| 7 | 0100 | 15 | 1000 |
从最高位开始:格雷码最高位 = 二进制最高位;之后每一位 = 二进制本位与左边一位的异或。
例:二进制 1011 → g3=1,g2=1⊕0=1,g1=0⊕1=1,g0=1⊕1=0 → 1110(对应十进制 11 ✔)
③ ASCII 与校验码
ASCII:7 位二进制表示 128 个字符。记住三个锚点即可:'0' = 0x30 = 48,'A' = 0x41 = 65,'a' = 0x61 = 97。数字字符的码值连续,字母也连续,所以 '7' = 48+7 = 55。
奇偶校验码:在数据后加 1 位校验位,使"1 的个数"为奇数(奇校验)或偶数(偶校验)。接收方数一遍 1 的个数就能发现奇数个位出错。注意:只能检错,不能纠错;偶数个位同时出错时无能为力。
- 进制互转:整数除基取余倒读、小数乘基取整顺读;八/十六进制用 3 位/4 位分组。
- 负数补码 = 取反加一;n 位补码范围
−2n−1 ~ 2n−1−1。 - 8421BCD 的 6 个非法码:1010–1111。
- 格雷码相邻只差 1 位;二进制→格雷码用"异或链"。
- 余 3 码 = 8421 + 0011;2421 是自补码。
🧪 本章自测
1. (1101.01)2 等于十进制多少?
8+4+0+1+0+0.25 = 13.25。
2. (0.375)10 转成二进制是多少?
0.375×2=0.75 取 0;0.75×2=1.5 取 1;0.5×2=1.0 取 1 → 0.011(验算 0.25+0.125=0.375 ✔)。
3. 写出 −37 的 8 位补码,并用加法验证 37+(−37)=0。
37 = 0010 0101 → 取反 1101 1010 → 加 1 = 1101 1011。
0010 0101 + 1101 1011 = 1 0000 0000,舍去进位得 0000 0000 ✔
4. 十进制的 87 用 8421BCD 表示是多少位?和它的二进制表示比谁长?
BCD:1000 0111(8 位);二进制:87 = 1010111(7 位)。BCD 更长——因为它用 4 位只存了 0–9 十个值,编码效率低。
5. 3 位格雷码序列写出来,并说明它为什么能防毛刺。
000, 001, 011, 010, 110, 111, 101, 100。每次只变 1 位,所以不存在"多位同时翻转的中间态",不会出现普通二进制 011→100 时短暂冒出的 111 这类错误码。
逻辑代数基础:只有 0 和 1 的新代数
逻辑代数(布尔代数)是 19 世纪数学家布尔发明的,比电子计算机早了一百年。它的规则和普通代数长得像、算得不一样:这里没有 2,没有负数,没有小数,只有 0 和 1;加法是"或",乘法是"与"。
2.1 三种基本运算:与、或、非
| 运算 | 符号 | 口诀 | 生活原型 | 真值表 |
|---|---|---|---|---|
| 与 AND | Y = A·B(常写 AB) | 全 1 才 1,有 0 则 0 | 双钥匙保险箱:两把钥匙都插才能开 | 00→0, 01→0, 10→0, 11→1 |
| 或 OR | Y = A+B | 有 1 则 1,全 0 才 0 | 房间两盏开关并联控制一盏灯:按任一个都亮 | 00→0, 01→1, 10→1, 11→1 |
| 非 NOT | Y = A' | 取反 | 单刀双掷开关:这边通那边断 | 0→1, 1→0 |
由它们组合出四个常用复合运算:
| 名称 | 表达式 | 读法 | 什么时候输出 1 |
|---|---|---|---|
| 与非 NAND | Y=(AB)' | "A 与 B 再取反" | 只要有一个 0 就输出 1(最常用!) |
| 或非 NOR | Y=(A+B)' | "A 或 B 再取反" | 全 0 才输出 1 |
| 异或 XOR | Y=A⊕B=AB'+A'B | "相异为 1" | 两个输入不同时为 1 |
| 同或 XNOR | Y=A⊙B=AB+A'B' | "相同为 1" | 两个输入相同时为 1(= 异或的非) |
楼梯上下各一个开关控制同一盏灯。初始状态灯灭;你在楼下按一下灯亮,上楼再按一下灯灭。设两个开关状态为 A、B,灯为 Y,你会发现:只有两个开关状态不同时灯才亮——正是异或。
这也解释了为什么异或叫"模 2 加法":1+1 = 0(不进位)。后面学加法器时,半加器的"和"就是异或。
2.2 20 条基本公式:只要记 6 组
书上会列一大串,其实都是下面 6 组推出来的。左边是"与形式",右边是"或形式"——这就是对偶(下面会讲)。
| 组别 | 与形式 | 或形式 | 直觉解释 |
|---|---|---|---|
| 0–1 律 | A·0 = 0 | A+1 = 1 | 与 0 相与必 0;或上 1 必 1 |
| 自等律 | A·1 = A | A+0 = A | 1 和 0 是"单位元" |
| 重叠律 | A·A = A | A+A = A | 没有系数!写 A+A=2A 直接零分 |
| 互补律 | A·A' = 0 | A+A' = 1 | 非此即彼,没有中间态 |
| 交换/结合 | AB=BA,(AB)C=A(BC) | A+B=B+A,(A+B)+C=A+(B+C) | 和普通代数一样 |
| 分配律 | A(B+C)=AB+AC | A+BC=(A+B)(A+C) | 第二个是普通代数没有的! |
| 吸收律 | A·(A+B)=A;AB+AB'=A | A+AB=A;(A+B)(A+B')=A | 小项被大项"吃掉" |
| 摩根律 | (AB)' = A'+B' | (A+B)' = A'·B' | 断开长杠,符号翻转 |
| 还原律 | (A')' = A | 非两次回到原样 | |
| 冗余律 | AB + A'C + BC = AB + A'C | BC 是"多余项"(共识项),可删 | |
| 常用变形 | A + A'B = A + B;A' + AB = A' + B | 考试出现率极高 | |
(A+B)' = A'·B' 读作:"不是(A 或 B)" 等于 "非 A 且非 B"。
生活化:"今天不是(下雨或刮风)",等价于 "今天既不下雨,也不刮风"。
操作口诀:长杠断开,中间符号取反,每项自己加撇。连用两次就回到原式,可用于"化简带长非号的式子"。
三个必须掌握的规则
| 规则 | 内容 | 用途 / 陷阱 |
|---|---|---|
| 代入规则 | 任何等式中的同一个变量,可以用同一个逻辑函数整体替换,等式仍成立。 | 把公式"升级"成更复杂的形式。注意必须整体加括号替换。 |
| 反演规则 | 求 Y':把 Y 中所有 ·↔+、0↔1、原变量↔反变量,并保持原运算顺序。 | 陷阱:不属于单个变量上的长非号要保留不变,不能一起翻。 |
| 对偶规则 | 求 YD:只把 ·↔+、0↔1,变量不动,保持运算顺序。 | 若 Y1=Y2,则 Y1D=Y2D。公式表可以"背一半用一半"。 |
按规则:· ↔ +,变量取反,但括号里的运算顺序保持:
Y' = (A' + B·C') · D
检验:先算 (B'+C) 整体取反得 B·C',再与 A 的或取反得 A'+(B·C'),最后 +D' 取反成 ·D ✔
2.3 逻辑函数的五种表示法
同一个逻辑关系可以用五种方式描述,考试会让你在它们之间来回翻译:
- 真值表:把输入的所有组合列出来,最笨但最可靠。
- 逻辑表达式:
Y = AB + A'C,便于化简和计算。 - 逻辑图:用门电路符号连起来,对应硬件。
- 波形图:输入随时间变化,输出怎么跟着变,对应示波器。
- 卡诺图:图形化的真值表,下一章的主角。
2.4 最小项与标准与或式 高频
最小项:n 个变量的"与项",其中每个变量都以原变量或反变量的形式出现且只出现一次。n 个变量共有 2n 个最小项。
把 A、B、C 想成三个投票人(1 = 赞成,0 = 反对)。m5 = AB'C 的意思是"只有 A 赞成、B 反对、C 赞成这一种投票结果,它才等于 1,其余 7 种组合它都是 0"。
所以最小项像"指纹"——唯一对应一组输入。而 Σm(1,3,5) 就是"把 1、3、5 这三种情况'或'起来",即"只要出现这三种情况之一,输出就是 1"。
| A B C | 最小项 | 编号 | A B C | 最小项 | 编号 |
|---|---|---|---|---|---|
| 0 0 0 | A'B'C' | m0 | 1 0 0 | AB'C' | m4 |
| 0 0 1 | A'B'C | m1 | 1 0 1 | AB'C | m5 |
| 0 1 0 | A'BC' | m2 | 1 1 0 | ABC' | m6 |
| 0 1 1 | A'BC | m3 | 1 1 1 | ABC | m7 |
编号规则:把最小项中原变量记 1、反变量记 0,得到一个二进制数,它的十进制值就是下标。例:AB'C → 101 → 5 → m5。
- 找出真值表中所有 Y = 1 的行;
- 每行写一个最小项(该行取值为 1 的写原变量,为 0 的写反变量);
- 把它们或起来,记作
Y = Σm(编号…)。
反过来,从 Σm 写标准或与式:Y = ΠM(其余编号),其中 Mi 是最大项,规则与最小项相反(取值为 0 写原变量)。
三个人 A、B、C 投票,两人及以上赞成则提案通过(Y=1)。真值表里 Y=1 的行是 011、101、110、111,即 m3、m5、m6、m7:
Y = Σm(3,5,6,7) = A'BC + AB'C + ABC' + ABC
标准式写完了,但它不是最简的。下一章我们会把它化简成 Y = AB + AC + BC——三个二输入与门加一个三输入或门就够了,比 4 个三输入与门省得多。这就是化简的意义:用更少的门,做同样的事。
A+A=2A✘(应为 A);A·A=2A✘(应为 A)。- 分配律
A+BC=(A+B)(A+C)在普通代数里不成立,这里成立;但A(B+C)=AB+AC两种代数都成立。 - 反演规则里,长非号(不属于单个变量的)保持不变。求
(A+B)'的反函数时,别写成(A'+B')'。 - 最小项编号:原变量=1,反变量=0;最大项编号正好相反。
- 写
Σm后不要漏项,也不要把 Y=0 的行写进去。
🧪 本章自测
1. 化简 Y = A + A'B
Y = A + B。推导:A + A'B = (A+A')(A+B) = 1·(A+B) = A+B。这是考试出现率最高的变形,直接背结论。
2. 化简 Y = AB + A'C + BC
Y = AB + A'C。因为 BC 是冗余项:AB+A'C+BC = AB+A'C+BC(A+A') = AB+A'C+ABC+A'BC = AB(1+C)+A'C(1+B) = AB+A'C。
3. 验证 (A+B)' = A'B'(用真值表)
A B | A+B | (A+B)' | A'B'
0 0 | 0 | 1 | 1
0 1 | 1 | 0 | 0
1 0 | 1 | 0 | 0
1 1 | 1 | 0 | 0
两列完全相同 ✔
4. 写出 Y = AB' + C 的最小项之和形式(三变量)
AB' 展开为 AB'(C+C') = AB'C + AB'C' = m5+m4;C 展开为 (A+A')(B+B')C = m1+m3+m5+m7。合并:Y = Σm(1,3,4,5,7)。
5. 求 Y = (A + B'C)' 的最简与或式
先用摩根:Y = A' · (B'C)' = A'(B + C') = A'B + A'C'。看到长非号,第一反应就是拆摩根。
逻辑函数化简与卡诺图:把"能用"变成"最省"
上一章结尾我们得到 Y = A'BC + AB'C + ABC' + ABC(三人表决器)。它逻辑上没错,但要 4 个三输入与门 + 1 个四输入或门。而 Y = AB + AC + BC 只要 3 个二输入与门 + 1 个三输入或门。同样的功能,芯片面积、功耗、成本、延迟全都降下来了——这就是化简的全部动机。
你在《电路》里做过"等效变换":几个电阻能合并成一个,因为对外表现一样。化简逻辑函数也是"等效变换":如果某个变量在某个局部无论取 0 还是 1,输出都不变,那它就可以被消掉。
例:AB + AB' = A(B+B') = A·1 = A。B 在这里是"无关变量",被消掉了。卡诺图就是把"哪些格子能合并"这件事画成图形,让你一眼看出来。
3.1 公式法化简:五个套路
| 方法 | 依据 | 例子 |
|---|---|---|
| 并项法 | AB+AB'=A | ABC + ABC' = AB |
| 吸收法 | A+AB=A | A + ABC = A(小项被大项吸收) |
| 消因子法 | A+A'B=A+B | AB' + B = A + B;A + A'B = A + B |
| 消项法 | AB+A'C+BC = AB+A'C | AB + A'C + BCD = AB + A'C |
| 配项法 | 利用 A+A'=1 乘进去再拆 | AB + B'C + AC = AB + B'C + AC(B+B') = AB+B'C+ABC+AB'C = AB+B'C |
公式法没有固定步骤,全凭经验猜"该往哪个方向凑"。3 个变量时还行,4 个变量以上极易漏项、且无法确认是否已最简。所以考试的标准做法是:卡诺图为主,公式法为辅(卡诺图圈完后,用公式法检查一遍)。
3.2 卡诺图:把真值表排成"相邻就合并"的格子 高频
卡诺图的构造只有一条规矩:格子的排列必须让"逻辑相邻"变成"几何相邻"。所谓逻辑相邻,就是两个最小项只有一个变量不同。满足这个条件的排列,正是格雷码——所以卡诺图的行列标号永远是 00, 01, 11, 10,而不是 00, 01, 10, 11。
把 16 个最小项想成 16 户人家,住在一个 4×4 的小区里。只要两户人家挨着(有公共边),他们的门牌号就只有一位不同,于是他们可以"合并成一户",省掉那个不同的变量。
所以化简 = 用尽量大的矩形把 1 圈起来,圈越大,省掉的变量越多(圈住 2 个格子省 1 个变量,4 个省 2 个,8 个省 3 个)。
小区是"环形"的:最左边和最右边也是邻居,最上面和最下面也是邻居,四个角互相都是邻居——这就是"可以卷起来"的甜甜圈(环面)。初学者最容易漏掉的就是跨边界合并。
① 两变量卡诺图
| A \ B | 0 | 1 |
|---|---|---|
| 0 | m0 | m1 |
| 1 | m2 | m3 |
② 三变量卡诺图(行 = A,列 = BC)
| A \ BC | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 0 | m0 | m1 | m3 | m2 |
| 1 | m4 | m5 | m7 | m6 |
③ 四变量卡诺图(行 = AB,列 = CD)—— 考试主战场
| AB \ CD | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 00 | m0 | m1 | m3 | m2 |
| 01 | m4 | m5 | m7 | m6 |
| 11 | m12 | m13 | m15 | m14 |
| 10 | m8 | m9 | m11 | m10 |
- 只能圈 2k 个 1:1、2、4、8、16 个,不能圈 3、5、6、7 个。
- 圈必须是矩形(含正方形),并且圈内格子互相连通(可以跨边界卷起来)。
- 圈越大越好,圈数越少越好:先找 8 格圈,再 4 格,最后 2 格;能圈大就不圈小。
- 每个 1 至少要进一个圈,圈与圈可以重叠(重叠的格子被用了两次,不违规)。
补充:允许把"已经圈过的 1"再圈进另一个更大的圈;不允许圈 0(除非是无关项 d)。
✏️ 例 3-1(三变量):三人表决器
Y = Σm(3,5,6,7),填表:
| A \ BC | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 0 | 0 | 0 | 1 | 0 |
| 1 | 0 | 1 | 1 | 1 |
| 圈住的最小项 | 哪两个变量在变 | 保留的变量 | 得到的项 |
|---|---|---|---|
| m3(011), m7(111) | A 变(0→1) | B=1, C=1 | BC |
| m5(101), m7(111) | B 变(0→1) | A=1, C=1 | AC |
| m6(110), m7(111) | C 变(0→1) | A=1, B=1 | AB |
所以 Y = AB + AC + BC。注意 m7 被三个圈共用——完全合法,而且这就是最优解(m3 只可能和 m7 合并,m5 只可能和 m7 合并,三个圈都是"必需"的)。
圈住 2k 个格子 → 消去 k 个变量,剩下 n−k 个变量。
保留谁?看圈内所有格子的共同点:哪个变量始终为 1,就保留原变量;始终为 0,就保留反变量;有 0 有 1,就消掉。
例:四角 m0(0000)、m2(0010)、m8(1000)、m10(1010):A 有 0 有 1 → 消;B 全是 0 → 保留 B';C 有 0 有 1 → 消;D 全是 0 → 保留 D'。结果 B'D'。
✏️ 例 3-2(四变量):含跨边界与四角合并
Y(A,B,C,D) = Σm(0,1,2,3,5,7,8,10,13,15)
| AB \ CD | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 00 | 1 | 1 | 1 | 1 |
| 01 | 0 | 1 | 1 | 0 |
| 11 | 0 | 1 | 1 | 0 |
| 10 | 1 | 0 | 0 | 1 |
| 圈 | 包含的最小项 | 共同点 | 结果 |
|---|---|---|---|
| ① 第一整行 | 0,1,2,3 | A=0, B=0 | A'B' |
| ② 中间 2×2 | 5,7,13,15 | B=1, D=1 | BD |
| ③ 四个角 | 0,2,8,10 | B=0, D=0 | B'D' |
Y = A'B' + BD + B'D'。检查每个 1 都至少被圈一次:m0、m2 被圈了两次(合法),m1、m3 只在①,m5、m7、m13、m15 只在②,m8、m10 只在③。三个圈缺一不可,已是最简。
- 漏掉跨边界:只看"肉眼挨着"的格子,忘了左右卷、上下卷、四角连。例 3-2 的③就是全跨边界。
- 圈了 6 个格子:6 不是 2 的幂,必然错。宁可拆成 4+2 两个圈。
- 明明能圈 4 个,却圈了 2 个:结果项里多留了一个本可消掉的变量,不是最简式,会被扣分。
3.3 无关项:可以"耍赖"的格子 高频
有些输入组合在现实中永远不会出现(比如用 4 位 BCD 表示十进制数时,1010–1111 不会出现)。这些组合对应的输出取 0 还是取 1 都无所谓,叫无关项(也叫约束项、任意项),记作 d 或 ×。
用法:圈组时把 d 当 1 用(如果能把圈变大);不需要时当 0 用(不圈它)。但绝不能把 0 当 1 圈进去。
✏️ 例 3-3:BCD 码"输入 ≥ 5"检测器
输入 A B C D 是 8421BCD 码(只出现 0000–1001),要求输入数值 ≥ 5 时 Y=1。
真值表:5、6、7、8、9 时 Y=1;0–4 时 Y=0;1010–1111 是无关项。
| AB \ CD | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 00 | 0 | 0 | 0 | 0 |
| 01 | 0 | 1 | 1 | 1 |
| 11 | × | × | × | × |
| 10 | 1 | 1 | × | × |
| 圈 | 用到的 1 与 × | 结果 |
|---|---|---|
| 第 3 整行 | m8, m9, 及 m11, m10(×) | AB' |
| 中间 2×2(列 01、11;行 01、11) | m5, m7 及 m13, m15(×) | BD |
| 右侧 2×2(列 11、10;行 01、11) | m6, m7 及 m14, m15(×) | BC |
Y = AB' + BC + BD。
对比:如果不用无关项,m5 只能和 m7 合并,得到 A'BD 之类的三项,项更长、门更多。无关项的价值就在这里:它把"不可能的输入"变成免费的合并资源。
圈 1 得到与或式(Y = Σ积项),用与非门实现最省。
圈 0 得到 Y' 的与或式,再整体取反(摩根),就得到 或与式 Y = Π和项,用或非门实现最省。
什么时候选哪个?看题给的是与非门还是或非门。如果没指定,一般选圈 1(项数通常更少)。例:Y = Σm(0,1,2,3,4,5,6,7,8,9) 圈 1 要好几个圈,圈 0 只剩 6 个 0,可能更省。
3.4 从最简式到电路:与非门实现 高频
实际芯片里与非门最便宜、最快(CMOS 与非门比或非门快,TTL 与非门是标准品),所以设计题常要求"全部用与非门实现"。方法只有一步:两次取反。
画图时:第一级用三个二输入与非门算出 (AB)'、(AC)'、(BC)';第二级用一个三输入与非门把它们合起来。注意:任何与或式都能这样直接变成与非-与非式,不需要额外变换——这是考试送分点。
若要求全用或非门:先把 Y 圈 0 得 Y' 的最简与或式,再对 Y' 整体取反并用摩根,得到"或非-或非"结构。与或 → 与非-与非;或与 → 或非-或非,一一对应。
3.5 五变量卡诺图与 Q–M 法 超纲·拓展
五变量(A B C D E)用两张 4×4 图:一张 E=0,一张 E=1。两张图对应位置的格子是相邻的(只差 E 一位),所以可以跨图合并。六变量则要四张。变量再多人眼就扛不住了,实际工程用 Q–M 列表法或计算机工具(如 Espresso 算法)。
Q–M 法三步:① 把所有最小项按"1 的个数"分组;② 相邻组逐对合并,消去不同位,打勾标记"已合并";③ 没被打勾的项就是"质蕴含项",再挑最少的覆盖全部最小项。过程繁琐但绝对完备,不会漏解——这也是它只适合编程的原因。
🧪 本章自测
1. 用卡诺图化简 Y = Σm(0,1,4,5,8,9,12,13)
所有 1 集中在 CD = 00、01 两列(即 C=0),共 8 个格子,圈成一个 8 格大圈 → Y = C'。
这是"整两列"的典型:圈 8 个消 3 个变量,只剩 C。
2. 化简 Y = Σm(0,2,8,10)(四变量)
正是四个角,圈一个 4 格圈。共同点 B=0、D=0 → Y = B'D'。
如果你只圈出 B'C'D' 或类似的三变量项,说明没看出四角相邻。
3. 化简 Y = Σm(1,5,9,13,3,7,11,15)
先别急着圈,先看规律:这 8 个编号全是奇数(1,3,5,7,9,11,13,15)。写成二进制,最低位 D 全是 1;其余 8 个偶数项 D 全是 0。
所以这 8 个 1 正好占满 D=1 的全部格子,圈成 2 个 8 格圈(左半、右半)→ Y = D,A、B、C 全被消掉。
启示:动手前先扫一眼"1 的分布有没有规律",能省一半时间。
4. 用与非门实现 Y = A'B + AB'
这是异或,不能再化简。Y = ((A'B)' · (AB)')',用 2 个与非门产生 (A'B)'、(AB)',再加 1 个二输入与非门合成。共 3 个与非门(A' 可用输入直接取反,或用与非门接成反相器)。
5. 无关项在化简时"想用就用、不想用就不用",这句话对吗?
对,但有个前提:无关项只能"帮助变大圈",不能成为必须覆盖的对象。也就是说:一个 d 可以不圈;但如果圈它能让两个圈合并成一个大圈、减少项数,就应该圈。判断标准始终是"最终表达式最简"。
门电路(上):半导体是怎么变成"开关"的
但你不必学完整的模电——你只需要一个视角:把半导体器件当成"受电压控制的开关"。放大倍数、小信号模型、频率响应这些统统跳过。数字电路永远只让器件待在两个极端:全开(饱和/导通)或全关(截止),中间地带是禁区。这就是数字电路比模拟电路"好教"的原因。
本章与电路前三章的关系:所有计算仍然是 KVL + KCL + 欧姆定律 + 分压。你在第一章学的受控源,在这里会第一次见到"实体"——三极管的 IC=βIB 就是一个电流控制电流源(CCCS)。
4.1 为什么非得用半导体?
最早的计算机用继电器(电磁铁吸合)做开关,一秒只能动作几十次。后来用电子管,速度快了但发热巨大、寿命短。1947 年晶体管发明,才让"用电压控制电流"的开关既快又小又省电。
想象一根粗水管(集电极—发射极),中间有个阀门。你不用手去拧阀门,而是用另一根细水管(基极)的水流去推阀门:细管里流一点点水,就能让粗管里通过大量水,而且细流是粗流的 1/β。
更妙的是:细管完全没水 → 阀门全关(截止);细管水足够大 → 阀门全开(饱和)。数字电路只用这两种状态,所以三极管在数字电路里就是一个"电控开关"。
4.2 PN 结与二极管 超纲·必补
① 半导体是怎么"导电"的
- 本征半导体(纯硅):原子排成晶体,价电子被共价键锁住。温度升高时少量电子挣脱,留下"空位"叫空穴。所以纯硅导电性很差,且随温度变化。
- N 型半导体:掺入五价元素(磷),多出自由电子 → 多子是电子。
- P 型半导体:掺入三价元素(硼),多出空穴 → 多子是空穴。
类比:N 型像"多了一批闲散工人(电子)",P 型像"多了一批空岗位(空穴)"。
② PN 结:把 P 和 N 贴在一起会发生什么
接触瞬间,P 区的空穴往 N 区扩散,N 区的电子往 P 区扩散,在交界处留下不能移动的离子,形成空间电荷区(耗尽层),并产生一个内建电场,方向阻止扩散。最终扩散与漂移达到动态平衡,结上有一个约 0.7 V(硅) 的势垒。
| 加什么电压 | 耗尽层 | 结果 | 等效 |
|---|---|---|---|
| 正向偏置:P 接高电位、N 接低电位 | 变窄 | 电流可以大量流过(正向导通) | 一个 0.7 V 的电压源(硅管) |
| 反向偏置:P 接低、N 接高 | 变宽 | 只有极小的反向饱和电流(μA 级) | 开路 |
一句话:二极管 = 只允许电流从阳极流向阴极的单向阀。正偏导通时两端压降近似恒为 0.7 V(硅管),反偏截止时相当于断开。
- 假设二极管导通,用它替换成 0.7 V 电压源;
- 用 KVL / 分压算出电流;
- 验证:算出的电流必须
I > 0(真的从阳极流向阴极)。若I < 0,说明假设错,二极管其实截止,重算。
假设导通:I = (5 − 0.7)/1k = 4.3 mA > 0 ✔ 假设成立,所以 I = 4.3 mA,二极管两端电压 0.7 V。
如果你算出来是 −0.2 mA,那说明二极管根本没导通,此时 I = 0,二极管两端电压由外电路决定(可能高达 5 V),但不能超过反向击穿电压。
4.3 二极管门电路:最早的"逻辑门"
二极管与门
| A | B | 哪只二极管导通 | Y | 逻辑 |
|---|---|---|---|---|
| 0 V | 0 V | D1、D2 都导通(并联分流) | 0.7 V | 0 |
| 0 V | 5 V | 只有 D1 导通,D2 反偏截止 | 0.7 V | 0 |
| 5 V | 0 V | 只有 D2 导通 | 0.7 V | 0 |
| 5 V | 5 V | 都截止(阳极只有 5 V,阴极也 5 V) | 5 V | 1 |
全高才高 → 与门。
二极管或门
任一输入为 5 V,对应二极管导通,Y ≈ 5 − 0.7 = 4.3 V(高);两个都 0 V,二极管都截止,Y = 0 V(低)。有高则高 → 或门。
- 电平偏移:输出低不是 0 V 而是 0.7 V,输出高不是 5 V 而是 4.3 V。多级串联后,电平越偏越远,几级之后就认不出来了。
- 带负载能力差:输出端接下级时,电流会通过电阻灌入前级;前级必须能"吸收"这股电流,否则电平被拉跑。
所以二极管门只在极简单的场合用。现代门电路用三极管或 MOS 管做"有源"开关,能把电平重新拉满(0 V / 5 V)——这叫"整形"或"再生"。
4.4 三极管开关 超纲·必补
三极管(BJT)是"三明治"结构:N-P-N 或 P-N-P,引出三个电极——基极 B(中间的薄层)、集电极 C、发射极 E。它有两个 PN 结:发射结(B–E)、集电结(B–C)。
三极管的核心关系是 IC = β IB(β 约 20~200)。集电极电流受基极电流控制——这正是《电路》第 1 章的 CCCS(电流控制电流源)!
再加上 IE = IB + IC(KCL,在管子上用一次),就是一个完整的"受控源 + 节点"模型。你现在可以用节点电压法分析一个晶体管电路了。
三个工作区:数字电路只认两个
| 工作区 | 条件 | 电流关系 | 管压降 VCE | 等效 |
|---|---|---|---|---|
| 截止区 | 发射结反偏或零偏(VBE < 0.5 V) | IB≈0,IC≈0 | ≈ VCC(很高) | 开关断开 |
| 放大区 | 发射结正偏、集电结反偏 | IC=βIB | 随 IC 变,可能停在中间 | 受控源(数字电路中禁止停留) |
| 饱和区 | 两个结都正偏(IB 足够大) | IC < βIB(受外电路限制) | VCE(sat) ≈ 0.2~0.3 V | 开关闭合 |
三极管反相器(Not 门)
| Vi | T 的状态 | Y | 逻辑 |
|---|---|---|---|
| 0 V(低) | 截止(IB=0) | Y = VCC = 5 V(高) | 输入 0 → 输出 1 |
| 5 V(高) | 饱和(IB 足够大) | Y = VCE(sat) ≈ 0.3 V(低) | 输入 1 → 输出 0 |
先求饱和时的集电极电流(用 KVL):
ICS = (VCC − VCE(sat))/RC = (5 − 0.3)/1k = 4.7 mA
再求需要的基极电流:IBS = ICS/β = 4.7 mA/50 = 94 μA
最后由输入回路定电阻:Rb ≤ (Vi − VBE)/IBS = (5 − 0.7)/94μ ≈ 45.7 kΩ
所以 Rb 取 45 kΩ 以下(工程上取 10~20 kΩ,留足余量,因为 β 会随温度变)。
IB = (5−0.7)/100k = 43 μA,如果管子还在放大区,IC = βIB = 2.15 mA,那么
VCE = 5 − 2.15mA × 1k = 2.85 V。
这个 2.85 V 既不算高电平(应 >2.4 V,勉强)也不算低电平(应 <0.4 V),是一个"半死不活"的中间值。后级门电路可能判成 1,也可能判成 0,甚至可能工作在放大区发热烧掉。
结论:数字电路中的开关管必须被"驱动到饱和",绝不能停在放大区。这也是为什么门电路内部要精心设计电阻值。
4.5 MOS 管:现代芯片的主角 超纲·必补
三极管靠电流驱动(要持续吃基极电流,费电)。MOS 管(场效应管)靠电压驱动,栅极下面是一层极薄的二氧化硅绝缘层,正常工作时栅极几乎不取电流,输入电阻高达 1010~1015 Ω。
栅极(G)像一块"带电的板子",隔着一层绝缘膜靠近沟道。你在栅极上施加电压,靠静电感应把半导体表面的载流子"吸"过来,形成一条导电沟道——就像用磁铁隔着纸吸铁粉,板子本身不接触、不消耗电流。
电压够大 → 沟道形成 → 源漏导通(开);电压不够 → 沟道消失 → 断开(关)。
| 类型 | 导通条件 | 截止条件 | 在 CMOS 里的角色 |
|---|---|---|---|
| NMOS(N 沟道) | VGS > VTN(栅极比源极高出阈值,约 1~2 V) | VGS < VTN | 做下拉开关(把输出拉到地) |
| PMOS(P 沟道) | VGS < VTP(VTP 为负,即栅极比源极低足够多) | VGS > VTP | 做上拉开关(把输出拉到电源) |
记号:VGS = VG − VS。NMOS 的源极通常接地,所以 VGS=VG;PMOS 的源极通常接 VDD,所以 VGS = VG − VDD(负数)。
NMOS:栅极给 1 就开(1 通 0 断)。
PMOS:栅极给 0 就开(0 通 1 断)。
于是把两只管子一上一下串起来、栅极接同一个输入,就得到 CMOS 反相器:输入 0 时 PMOS 开(输出接电源=1),输入 1 时 NMOS 开(输出接地=0)。而且任何时刻只有一只管子导通,另一只截止 → 静态电流几乎为零。下一章细讲。
4.6 逻辑电平与正/负逻辑
"高电平"和"逻辑 1"不是天生绑定的,需要人为约定:
- 正逻辑:高电平 = 1,低电平 = 0(本教程默认)。
- 负逻辑:高电平 = 0,低电平 = 1。
同一个物理电路,按正逻辑看是"全高出高"→ 与门;按负逻辑看,把高低反过来读,就变成"全低出低"→ 或门。
数学上这正是德摩根律:Y = AB,取反后 Y' = A' + B'。所以"与"和"或"是相对的,取决于你怎么定义 1。
考试常问:"某门电路正逻辑是与门,负逻辑是什么门?" → 答:或门(与非 ↔ 或非同理)。
- 二极管门电路分析:判断哪只管子导通,算输出电平(含 0.7 V 偏移)。
- 三极管三个工作区的条件与等效;饱和条件
IB ≥ ICS/β及临界 Rb 计算。 - NMOS/PMOS 的导通条件(
VGS与阈值比较)。 - 正/负逻辑的换算(与↔或、与非↔或非)。
🧪 本章自测
1. 硅二极管正偏时两端电压是多少?反偏时相当于什么?
正偏导通压降约 0.7 V(锗管约 0.3 V),相当于一个 0.7 V 的理想电压源。反偏时只有 μA 级反向饱和电流,相当于开路(但不能超过反向击穿电压,否则会击穿)。
2. 二极管与门输出低电平时为什么不是 0 V?
因为低电平输入经二极管把输出节点钳位在"输入低电平 + 0.7 V"。若输入低电平是 0 V,输出就是 0.7 V。这就是电平偏移,级联后误差累积,是二极管门被淘汰的主因。
3. VCC=5 V,RC=2 kΩ,β=100,VBE=0.7 V。要把三极管驱动到饱和,IB 至少多少?若 Vi=3.3 V,Rb 最大取多少?
ICS=(5−0.3)/2k=2.35 mA;IBS=2.35m/100=23.5 μA;
Rb ≤ (3.3−0.7)/23.5μ ≈ 110 kΩ。
实际取 33~47 kΩ,因为 β 会随温度和批次变化,必须留 2~3 倍余量。
4. NMOS 的 VTN=2 V,栅极接 5 V、源极接地,它导通吗?如果栅极接 0 V 呢?
VGS=5−0=5 V > 2 V → 导通。VGS=0 < 2 V → 截止。
5. 某电路正逻辑下是与门,负逻辑下是什么?
或门。因为负逻辑把高低电平互换,相当于对所有输入输出取反:(AB)' = A'+B',取反后的运算变成了"或"。
门电路(下):CMOS 与 TTL 的真实性能
上一章的二极管、三极管、MOS 管,这一章要拼成真正的集成电路。你只需要记住两族的名字:CMOS(互补 MOS,今天 99% 的芯片都是它)和 TTL(晶体管-晶体管逻辑,老式但考试常考)。
5.1 CMOS 反相器:两只管子就能实现"非"
| Vi | PMOS(VGS=Vi−VDD) | NMOS(VGS=Vi) | Y | 有无静态电流 |
|---|---|---|---|---|
| 0 V(逻辑 0) | 导通(VGS=−5 V < VTP) | 截止(0 < VTN) | VDD = 1 | 无(只有漏电流 nA 级) |
| 5 V(逻辑 1) | 截止(VGS=0 > VTP) | 导通 | 0 V = 0 | 无 |
| 2.5 V(中间) | 微导通 | 微导通 | ≈VDD/2(不定) | 有!两管同时导通,大电流 |
上面一只 PMOS、下面一只 NMOS,像跷跷板的两端,永远一端翘起一端落地:
• 输入低 → 上管开(输出被"抬"到 VDD),下管关;
• 输入高 → 下管开(输出被"拽"到地),上管关。
关键在于:两只管子绝不会同时"使劲",所以电源到地之间没有直通电流 → 静态功耗几乎为零(只有纳米级漏电)。这就是手机能用一天的物理基础。
但只要输入停在 VDD/2 附近,两只管子就同时半开,电源直接"短路"到地——这叫"贯通电流",是 CMOS 的大忌。所以 CMOS 输入信号必须陡峭,绝不能长时间停在中间电平。
电压传输特性(VTC)
把 Vi 从 0 慢慢升到 VDD,输出跟着变,得到一条曲线:
- Vi 从 0 到约 0.3VDD:输出保持高(VOH≈VDD);
- 中间一小段(约 0.3~0.7VDD):输出急剧下降,转折点 VT ≈ VDD/2;
- Vi > 0.7VDD:输出稳定在低(VOL≈0)。
曲线越陡,抗干扰能力越强。CMOS 的曲线非常陡,所以噪声容限接近 0.3VDD,远大于 TTL 的 0.4 V。
5.2 CMOS 与非门 / 或非门的"造门公式"
CMOS 门电路的结构有严格的对偶规律,记住这一条就能画出任何门:
NMOS:串联 = 与,并联 = 或 · PMOS:串联 = 或,并联 = 与 两组网络永远"互补":同一输入组合下,必然恰好一组导通
先问:"输出什么时候是 0?"
• 与非门 Y=(AB)':A、B 都为 1 时 Y=0 → 下拉网络要"A 与 B"→ NMOS 串联;剩下部分自动对偶 → PMOS 并联。
• 或非门 Y=(A+B)':A 或 B 为 1 时 Y=0 → 下拉网络要"A 或 B"→ NMOS 并联;PMOS 串联。
这就是"NMOS 串与并或、PMOS 反过来"的来历。
看结构:与非门的 PMOS 是并联,或非门的 PMOS 是串联。PMOS 本身的导通电阻就比 NMOS 大(空穴迁移率低),几个串联起来电阻更大,输出上升沿变慢。
所以同等工艺下,与非门比或非门快、面积小。这也是为什么"全用与非门实现"不只是理论偏好,而是硬件现实。
5.3 CMOS 传输门(模拟开关)
把一只 NMOS 和一只 PMOS 并联,栅极分别接互补的控制信号 C 和 C',就得到传输门:C=1 时导通(双向都能传),C=0 时高阻。
为什么必须一 N 一 P 并联?因为单只 NMOS 传高电平时,源极电位升高会使 VGS 减小,传到 VDD−VTN 就传不动了(阈值损失);单只 PMOS 传低电平也有同样问题。并联后互补,0 和 1 都能完整传递。
传输门是 CMOS 的"独门绝技",用它可以做数据选择器、锁存器、DAC 开关阵列——TTL 做不了。
5.4 CMOS 使用注意(考试爱考"为什么")
| 注意点 | 原因 | 后果 |
|---|---|---|
| 不用的输入端不能悬空 | 输入阻抗极高(1010 Ω 以上),悬空时电位由漏电和干扰决定,可能停在 VDD/2 | 两管同时导通 → 功耗剧增、发热、逻辑乱跳。必须接 VDD 或地 |
| 输出不能直接接电源或地 | 输出低时上管已关,若外部强行拉高,会烧毁管子 | 器件损坏 |
| 注意防静电(ESD) | 栅极绝缘层极薄(纳米级),几十伏静电就能击穿 | 栅极永久击穿。取用时要接地、用防静电袋 |
| 电源电压范围宽 | 4000 系列 3~18 V,74HC 系列 2~6 V | 灵活性好,但电平要匹配 |
| 多余输入的处理 | 与门多余端接高、或门多余端接低 | 不能悬空,也不能随便接 |
5.5 TTL 与非门:老将出马
TTL 的输入级用了一只多发射极三极管——一个基极、多个发射极,相当于把多个三极管的基极和集电极并联,发射极分别接各输入。它能同时完成"与"和"放大"两件事。
| 输入 | T1 状态 | T2 | T4(下拉) | T3(上拉) | Y |
|---|---|---|---|---|---|
| 任一为低(0.3 V) | 饱和导通(电流从 VCC 经 R1 灌入输入) | 基极被钳在 0.4 V → 截止 | 截止 | 导通 | 高(≈3.6 V) |
| 全为高(3.6 V) | 倒置工作(集电结正偏) | 基极升高 → 饱和 | 饱和 | 截止 | 低(≈0.3 V) |
输出级是"推拉"结构(T3 拉、T4 灌),所以 TTL 既能拉电流也能灌电流,但灌电流能力远强于拉电流——这决定了后面 LED 要"低电平点亮"。
5.6 TTL 的四个关键参数 高频
这是全章最该背的东西。以 74LS 系列(5 V 供电)为例:
| 参数 | 含义 | 74LS 典型值 | 方向 |
|---|---|---|---|
| VOH(min) | 输出高电平下限 | 2.4 V | 输出端 |
| VOL(max) | 输出低电平上限 | 0.4 V | 输出端 |
| VIH(min) | 被认作高电平的输入下限 | 2.0 V | 输入端 |
| VIL(max) | 被认作低电平的输入上限 | 0.8 V | 输入端 |
| VT | 阈值(转折)电压 | ≈1.4 V | 曲线中点 |
高电平噪声容限:VNH = VOH(min) − VIH(min) = 2.4 − 2.0 = 0.4 V
低电平噪声容限:VNL = VIL(max) − VOL(max) = 0.8 − 0.4 = 0.4 V
含义:前级输出高电平最低有 2.4 V,后级只要 ≥2.0 V 就认高——中间有 0.4 V 的"安全垫"。叠加在这个垫子以内的干扰,逻辑不会出错。这就是"抗干扰能力"的量化指标。
扇出系数(Fan-out)
一个输出能带几个同类输入?要同时满足"拉电流"和"灌电流"两个限制,取小的那个:
N1 = 0.4 mA / 20 μA = 20;N2 = 8 mA / 0.4 mA = 20;所以 N = 20。
但手册标注的扇出通常只有 8~10——因为上面算的是直流扇出,实际还要考虑每个输入端的电容、连线电容使上升沿变慢,交流(速度)扇出才是瓶颈。结论:算题用公式,选芯片看手册。
功耗、延迟与功耗延迟积
| 指标 | 含义 | 74LS 典型 | 74HC(CMOS) 典型 |
|---|---|---|---|
| 静态功耗 PD | 不翻转时消耗的功率 | ≈2 mW/门 | ≈0.0025 μW/门(几乎为零) |
| 传输延迟 tpd | 输入变化到输出响应的时间 | ≈9 ns | ≈9~15 ns(5 V) |
| 功耗延迟积 PDP | PD × tpd,综合品质因数,越小越好 | ≈18 pJ | ≈0.02 pJ(低功耗优势巨大) |
CMOS 的动态功耗 = CL·VDD2·f,与频率成正比——所以你的手机主频越高越费电。
5.7 特殊门:OC 门与三态门 高频
① OC 门(集电极开路门)
把 TTL 输出级的"上拉管"去掉,只留下拉三极管,集电极直接引出,就叫 OC 门。它必须外接上拉电阻 RL 才能输出高电平。
为什么要有它?因为可以"线与":把多个 OC 门的输出直接连在一起,共用一个上拉电阻,则
普通 TTL 门绝对不能这样接:一个输出高(上管导通接电源)、一个输出低(下管导通接地),电源到地直通,瞬间大电流烧毁芯片。"线与"是 OC 门的专利。
OC 门并联实现的是 线与(wired-AND),即"逻辑与"。有些资料把"多个输出直接相连"统称"线与",但只有 OC/OD(漏极开路)门允许这么做。普通推拉输出并列 → 短路,禁止。
② 三态门(TS 门)
在普通门的基础上加一个使能端 EN,得到三种输出状态:高电平、低电平、高阻态(Z)。
| EN | Y | 状态 | 用途 |
|---|---|---|---|
| 1 | = A'(正常反相) | 低或高 | 作为普通门工作 |
| 0 | Z(高阻) | 相当于"断开",不影响总线 | 让出总线给别人用 |
一条总线(bus)上挂着 8 个设备。如果所有设备都硬接上去,大家同时说话就"打架"(短路)。
三态门给每个设备一个"话筒开关":EN=1 的说话,EN=0 的把嘴闭上(高阻,相当于从电路里"消失")。只要保证同一时刻只有一个 EN 有效,总线就不会冲突。CPU 的数据总线就是这么工作的。
5.8 CMOS 与 TTL 怎么选、怎么接
| 对比项 | TTL(74LS) | CMOS(74HC / 4000) |
|---|---|---|
| 静态功耗 | 较大(mW/门) | 极小(nW/门) |
| 输入阻抗 | 较低(kΩ 级) | 极高(>1010 Ω) |
| 速度 | 快(ns 级) | 中(ns~几十 ns,随 VDD 升高变快) |
| 电源电压 | 固定 5 V | 宽范围 3~18 V |
| 抗干扰 | 噪声容限 0.4 V | 噪声容限 ≈0.3VDD |
| 多余输入端 | 可以悬空(相当于接高) | 绝对禁止悬空 |
| 能否线与 | 普通门不行(OC 门可以) | 普通门不行(OD 门可以) |
| 驱动能力 | 灌电流强(8 mA 级) | 对称(±4 mA 级),可驱动 LED |
TTL 输出高只有 3.6 V 左右,CMOS(5 V 供电)要求输入 >3.5 V 才可靠认高 → TTL 驱动 CMOS 有时需要上拉电阻。反过来 CMOS 输出接近 0/VDD,驱动 TTL 一般没问题。现代设计更常见的是 3.3 V 与 5 V 混接,必须查数据手册的 VIH/VIL,不能想当然。
- CMOS 反相器两种输入下的管子状态与输出;静态功耗为 0 的原因。
- 由逻辑式画出 CMOS 门结构(NMOS 串与并或,PMOS 对偶)。
- TTL 四个电平参数 + 噪声容限计算 + 扇出计算。
- OC 门为什么能线与;三态门的高阻态用途。
- CMOS 输入端为什么不能悬空。
🧪 本章自测
1. CMOS 反相器输入 0 V 时,哪只管子导通?输出多少?静态电流多大?
PMOS 导通(VGS=−VDD<VTP),NMOS 截止,输出 VDD(高)。静态电流只有漏电流,nA 级,可认为 0。
2. 已知 VOH=2.7 V,VIH=2.0 V,VOL=0.5 V,VIL=0.8 V,求噪声容限。
VNH=2.7−2.0=0.7 V;VNL=0.8−0.5=0.3 V。
取两者中较小的 0.3 V 作为该接口的噪声容限(短板决定抗干扰能力)。
3. 用 CMOS 实现 Y = (A+B)',NMOS 网络和 PMOS 网络各怎么接?
先问"Y 何时为 0":A 或 B 为 1 时 Y=0 → 下拉网络需要"或"→ 两只 NMOS 并联。对偶地,两只 PMOS 串联接在 VDD 与输出之间。
4. 两个普通 TTL 与非门的输出能直接连在一起吗?为什么?
不能。若一个输出高(上管导通接 VCC)、另一个输出低(下管导通接地),VCC 到地直通,产生极大短路电流,会烧毁输出管。要实现"线与"必须用 OC 门(外接上拉电阻)。
5. 一个 CMOS 门的输入不小心悬空了,会发生什么?
输入阻抗极高,悬空端电位不确定,可能被干扰拉到 VDD/2 附近。此时 PMOS 与 NMOS 同时导通,产生贯通电流:功耗剧增、芯片发热、输出乱跳,还可能因栅极积累电荷而击穿。不用的输入必须接 VDD 或地。
组合逻辑电路:分析与设计
从这一章开始,你正式进入"用逻辑门搭功能"的阶段。组合逻辑电路的定义很简单:任意时刻的输出只取决于当时的输入,与过去无关。它没有记忆,没有反馈。
你投 5 元、3 元、1 元三种硬币,机器判断"够不够买 4 元的饮料"。它只关心这一次投了多少,不关心你昨天投过什么——这就是组合逻辑。
对比:时序逻辑像电梯——它记得自己现在在几楼、正要往哪走,输出取决于"当前状态 + 当前按钮"。那是第 8 章以后的事。
6.1 组合逻辑电路的分析(五步法)高频
关键:从输入往输出方向逐级写,不要跳级;每个中间节点都起个名字,写清晰。
✏️ 例 6-1:分析这个"四个与非门"的电路
电路由 4 个二输入与非门组成,连接关系如下表(这就是用文字表示的逻辑图):
| 门 | 类型 | 输入 | 输出 |
|---|---|---|---|
| G1 | 与非 | A, B | G1 = (AB)' |
| G2 | 与非 | A, G1 | G2 = (A·G1)' |
| G3 | 与非 | B, G1 | G3 = (B·G1)' |
| G4 | 与非 | G2, G3 | Y = (G2·G3)' |
第一步:逐级写表达式(已在上表完成)。
第二步:化简
G2 = (A·(AB)')' = A' + AB = A' + B (用摩根 + A+A'B=A+B 的变形)
G3 = (B·(AB)')' = B' + AB = B' + A
Y = (G2·G3)' = G2' + G3' = (A'+B)' + (B'+A)' = AB' + A'B
所以 Y = A'B + AB' = A ⊕ B。
第三步:列真值表
| A | B | G1 | G2 | G3 | Y |
|---|---|---|---|---|---|
| 0 | 0 | 1 | 1 | 1 | 0 |
| 0 | 1 | 1 | 1 | 0 | 1 |
| 1 | 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 | 1 | 0 |
第四步:归纳功能——两输入相异时输出 1,相同输出 0,即异或门。
第五步:评价——用 4 个与非门实现一个异或,是 TTL 时代的经典做法(因为与非门最便宜)。结论:本电路 = 用与非门搭的异或门,也是半加器的"和"输出级。
✏️ 例 6-2:分析"或与式"电路,看看它是什么
已知 Y = (A+B)(B+C)(A+C),展开化简:
(A+B)(A+C) = A + BC(分配律的反用)
所以 Y = (A + BC)(B + C) = A(B+C) + BC(B+C) = AB + AC + BC + BC = AB + AC + BC
这不就是三人表决器吗!同一功能可以用"与或式"(AB+AC+BC)也可以用"或与式"((A+B)(B+C)(A+C))实现,前者用与门+或门,后者用或门+与门。分析题里遇到括号连乘的形式,先展开再判断功能。
- 不化简就列真值表:表达式长,真值表容易算错,而且看不出功能。
- 只写"Y = …"不写功能:题目问"说明电路功能",必须用自然语言回答(如"这是一个三人表决器,两人及以上同意时输出 1"),只给表达式会扣分。
6.2 组合逻辑电路的设计(四步法)高频
- 逻辑抽象
- 确定输入变量和输出变量各是什么,并用 1/0 给每个"事件"赋值。这一步最容易错,也最关键。
- 列真值表
- 按输入组合逐行填输出。n 个输入有 2n 行。
- 化简
- 用卡诺图得最简与或式;若题目指定门类型,再转成与非-与非/或非-或非。
- 画图
- 按表达式逐级画门,标清输入输出名。
✏️ 例 6-3:主副裁判电路
某比赛有 1 名主裁判 A、2 名副裁判 B、C。主裁判同意,且至少一名副裁判同意时,成绩才有效(Y=1)。用与非门实现。
① 逻辑抽象:输入 A(主裁)、B、C(副裁),同意=1,反对=0;输出 Y,有效=1。
② 真值表
| A | B | C | Y | 说明 |
|---|---|---|---|---|
| 0 | × | × | 0 | 主裁反对,直接无效(4 行合并) |
| 1 | 0 | 0 | 0 | 只有主裁同意 |
| 1 | 0 | 1 | 1 | 主裁 + C |
| 1 | 1 | 0 | 1 | 主裁 + B |
| 1 | 1 | 1 | 1 | 三人全同意 |
③ 化简:Y = Σm(5,6,7)。卡诺图圈 {5,7} 得 AC,圈 {6,7} 得 AB,所以
直觉验证:A=1 且 (B 或 C)=1 → 有效。✔ 这比列 8 行真值表更快,但考试要求写全。
④ 转与非门:Y = ((AB)' · (AC)')',用 3 个二输入与非门(其中 A 需要分发到两个门,B、C 各一个)。
✏️ 例 6-4:四人表决器(≥3 人同意通过)
输入 A、B、C、D,输出 Y。真值表有 16 行,但可以直接写:Y = Σm(7,11,13,14,15)。
| AB \ CD | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 00 | 0 | 0 | 0 | 0 |
| 01 | 0 | 0 | 1 | 1 |
| 11 | 0 | 1 | 1 | 1 |
| 10 | 0 | 1 | 1 | 0 |
圈法:没有一个 4 格圈(因为任意 4 个相邻格都凑不齐),只能圈 4 个 2 格圈:
| 圈 | 最小项 | 结果 |
|---|---|---|
| ① | 7, 15 | BCD |
| ② | 11, 15 | ACD |
| ③ | 13, 15 | ABD |
| ④ | 14, 15 | ABC |
所以 Y = ABC + ABD + ACD + BCD。这是"四选三"的标准答案,考试出现率很高,建议直接记住这个形式。
练熟之后你会发现,绝大多数设计题只有三类:① 表决/多数类(本例)② 比较/判别类(大于、等于、是否为素数)③ 编码/译码类(把一种码转成另一种)。
每类的真值表结构都很像,卡诺图圈法也高度重复。做 5 道题就能形成肌肉记忆。
6.3 竞争与冒险:电路也会"抖动"
理论上 Y = A + A' = 1 永远为 1。但实际电路中,A 变化时,"A"这条路径和"A'"这条路径(经过一个反相器)延迟不同,到达或门的时间有先后。在这一小段时间里,或门的两个输入可能同时为 0,输出就冒出一个窄脉冲(毛刺)。
你要确保"甲或乙至少有一个人举着手"。理想情况是永远有人举着。但如果规定甲先放下、乙再举起,中间就有那么一瞬间两只手都放下了——这一瞬间就是"冒险脉冲"。
脉冲虽然只有几纳秒,但如果后级是计数器,它可能被多计一个数;如果是锁存器,可能锁进错误值。这就是为什么数字电路怕毛刺。
判别方法
- 代数法:令表达式中其他变量取特定值,看是否能化成
A + A'(静态 1 冒险)或A·A'(静态 0 冒险)。 - 卡诺图法:若两个圈相切(相邻但不重叠),就存在冒险。相切 = 有缝隙 = 可能掉进 0。
Y = AB + A'C 是否有冒险
令 B = C = 1,则 Y = A·1 + A'·1 = A + A' → 存在静态 1 冒险。
卡诺图上看:AB 圈住 m6、m7;A'C 圈住 m3、m7。两圈在 m7 处相切(只共享一个角),从 m6 走到 m3 的时候会经过"没有圈覆盖"的边界 → 冒险。
消除方法(三种,按优先级)
| 方法 | 做法 | 评价 |
|---|---|---|
| ① 增加冗余项 | 在卡诺图上补一个圈,把"相切处"盖住。本例加 BC:Y = AB + A'C + BC | 最常用、最彻底,代价是多一个门 |
| ② 接滤波电容 | 在输出端并一个小电容,把窄脉冲"磨平" | 简单但会减慢边沿,只适合慢速电路 |
| ③ 引入选通脉冲 | 等输出稳定后再用选通信号采样 | 时序配合复杂,用于高速系统 |
注意:BC 在逻辑上确实是冗余项(AB+A'C+BC = AB+A'C),但它在物理上有用——它保证了 B=C=1 时输出恒为 1,不管 A 怎么变。"逻辑冗余"换"物理稳定",这是一笔划算的买卖。
逻辑冒险:由电路结构(不同路径延迟)引起,可以通过加冗余项消除。
功能冒险:由函数本身的性质引起——输入变化时,即使没有任何延迟差异,输出在理论上也必须经过中间值。这种冒险无法用加冗余项消除,只能靠选通或改变输入编码(比如用格雷码)。
考试一般只考逻辑冒险,知道有这个区分即可。
- 分析题:逐级写表达式 → 化简 → 真值表 → 用一句话说功能。
- 设计题:逻辑抽象(赋值)不能省,真值表要写全,卡诺图要画。
- 设计题若指定"用与非门",必须做两次取反转成与非-与非。
- 冒险判别:
A+A'型;消除:加冗余项。
🧪 本章自测
1. 分析 Y = (A⊕B)·(A⊕B) 的功能
同一信号自己与自己相与 = 本身,所以 Y = A⊕B,仍是异或。这类题考的是"别被形式吓到,先化简"。
2. 设计"三变量输入中恰有 2 个为 1 时输出 1"的电路,写出最简式。
真值表 Y=1 的行为 m3(011)、m5(101)、m6(110),即
Y = A'BC + AB'C + ABC'。
卡诺图上三个 1 互不相邻(每个都只和对角相邻),无法化简,就是三项。用 3 个三输入与门 + 1 个三输入或门。
3. 设计一个"两个 1 位二进制数比较"的电路,输出 G(A>B)、E(A=B)、L(A<B)。
G = AB';E = A'B' + AB = (A⊕B)';L = A'B。
注意三者互斥且完备(任何输入必有一个为 1)。这就是 74LS85 比较器的 1 位版本。
4. Y = AC + B'C 存在冒险吗?如何消除?
令 C=1,得 Y = A + B'——这不是 A+A' 型,所以不存在逻辑冒险。
判别要点:必须先让"其他变量"取特定值,使表达式只剩一个变量的原/反形式。若剩下的不是同一个变量,就没有冒险。
5. 为什么"用与非门实现"时不需要重新化简?
因为任何与或式只要整体加双非号、再用一次摩根,就能直接变成与非-与非式,且门的数量 = 与项数 + 1。化简的目标(与项最少、每项变量最少)正好对应"与非门最少、每门输入最少",所以最简与或式直接转就行。
常用组合逻辑器件:把"门"换成"芯片"
用一个个门去搭电路,就像用砖头盖楼——能做,但太慢太贵。工程上我们直接用中规模集成电路(MSI):一块芯片内部已经集成了几十个门,对外只暴露几个引脚,实现一个完整功能。这一章的核心技能是:给你一个逻辑函数,用现成芯片"拼"出来。
把它当成《电路》里的"二端口网络":不用管内部怎么接,只要知道端口特性(真值表)。你要做的是"用已知特性的黑盒,拼出想要的功能"。
读芯片资料只看三件事:① 有哪些输入输出脚 ② 哪些脚是高有效/低有效 ③ 使能端怎么用。
7.1 编码器:把"哪条线有信号"变成"编号"
编码就是给每个输入信号分配一个二进制编号。优先编码器允许同时有多个输入有效,只对优先级最高的那个编码——这就像医院急诊分诊:同时来好几个病人,先救最危重的。
74LS148:8 线–3 线优先编码器
| 引脚 | 名称 | 有效电平 | 作用 |
|---|---|---|---|
| I0'–I7' | 编码输入 | 低有效 | I7 优先级最高,I0 最低 |
| A2' A1' A0' | 编码输出 | 低有效(反码) | 输出是"输入编号的二进制取反" |
| EI'(ST') | 使能输入 | 低有效 | EI'=1 时芯片不工作,输出全 1 |
| GS' | 组信号输出 | 低有效 | 有输入被编码时 GS'=0(告诉后级"有情况") |
| EO' | 使能输出 | 低有效 | EI'=0 但无输入时 EO'=0,用于级联下一片 |
| EI' | I7' I6' I5' I4' I3' I2' I1' I0' | A2' A1' A0' | GS' | EO' | 含义 |
|---|---|---|---|---|---|
| 1 | × × × × × × × × | 1 1 1 | 1 | 1 | 禁止工作 |
| 0 | 0 × × × × × × × | 0 0 0 | 0 | 1 | I7 有效 → 输出 7 的反码 000 |
| 0 | 1 0 × × × × × × | 0 0 1 | 0 | 1 | I6 → 6 的反码 001 |
| 0 | 1 1 1 1 1 1 1 0 | 1 1 1 | 0 | 1 | I0 → 0 的反码 111 |
| 0 | 1 1 1 1 1 1 1 1 | 1 1 1 | 1 | 0 | 无输入 → EO'=0(可级联) |
因为输入也是低有效。芯片设计者让"输入低有效 + 输出低有效"配对,这样多片级联时可以直接用与门合并输出(未被选中的片输出全 1,与运算不干扰)。看到"低有效"三个字,先在心里加一个非号,这是读所有 MSI 芯片的第一课。
应用:键盘编码——按下哪个键,就输出哪个键的编号。因为人可能手快同时按下两个键,所以必须用优先编码器。
7.2 译码器:把"编号"变成"哪条线有效" 最高频
译码器是编码器的逆操作:输入 n 位二进制,输出 2n 条线,只有一条有效。它最经典的用途不是"译码",而是产生最小项——这让它成为实现任意逻辑函数的万能工具。
74LS138:3 线–8 线译码器
| 引脚 | 说明 |
|---|---|
| A2 A1 A0 | 地址输入(A2 最高位),高有效 |
| Y0'–Y7' | 8 个输出,低有效:被选中的那条输出 0,其余全 1 |
| G1 | 使能端,高有效(必须为 1) |
| G2A'、G2B' | 使能端,低有效(必须都为 0) |
记忆:三个使能端必须同时满足 G1=1、G2A'=0、G2B'=0 芯片才工作;否则 8 个输出全为 1(全部"不选中")。这三个脚是级联扩展的关键。
| G1 | G2A'+G2B' | A2 A1 A0 | 被拉低的输出 | 其余输出 |
|---|---|---|---|---|
| 1 | 0 0 | 0 0 0 | Y0' | 全 1 |
| 1 | 0 0 | 0 0 1 | Y1' | 全 1 |
| 1 | 0 0 | 1 1 1 | Y7' | 全 1 |
| 0 或 有 1 | — | × × × | 无 | 全 1(禁止) |
核心原理:当芯片使能时,Yi' = mi',即每条输出就是对应最小项的非。所以:
三个操作步骤:① 地址端接函数变量(高位对高位);② 三个使能端接成有效(G1=1,G2A'=G2B'=0);③ 把 F 中出现的那些最小项对应的 Y' 脚接到与非门。
F(A,B,C) = Σm(1,2,4,7)
接线:A→A2,B→A1,C→A0;G1=1,G2A'=G2B'=0;把 Y1'、Y2'、Y4'、Y7' 接到一个四输入与非门。
为什么对?当 ABC=001 时,只有 Y1'=0,其余为 1,与非门输出 1 ✔;当 ABC=010 时 Y2'=0,输出仍为 1 ✔;当 ABC=000(不在集合里)时四个输入全为 1,与非门输出 0 ✔。只要有一个输入为 0,与非门就输出 1——所以"选中哪一项,F 就是 1"。
138 只有 3 个地址端。办法是用第 4 个变量控制使能端,把一片 138 当两片用:
• 令 D 接 G2A'(低有效):D=0 时芯片工作,覆盖 m0–m7;
• 令 D 经反相接 G2B':D=1 时芯片工作,覆盖 m8–m15。
于是同一个 138 在 D=0 和 D=1 两个时段分别产生两组最小项,后面再用与非门/与门组合。更规范的做法是用两片 138,A3 接一片的 G1(高有效)和另一片的 G2A'(低有效),实现 4–16 译码。
数码管与七段译码器
数码管的七段(a~g)排成一个"8"字。共阴极:公共端接地,某段给高电平就亮 → 配 74LS48(输出高有效)。共阳极:公共端接 +5 V,某段给低电平才亮 → 配 74LS47(输出低有效)。
显示 "1" 只需点亮 b、c 两段;显示 "8" 七段全亮。译码器内部就是一个 ROM:把 4 位 BCD 输入翻译成 7 位段码。
7.3 数据选择器:一根"多路开关" 最高频
数据选择器(MUX)像铁路道岔:n 根地址线决定"让哪一路数据通过到输出"。
74LS151:8 选 1 数据选择器
| 引脚 | 说明 |
|---|---|
| D0–D7 | 8 路数据输入 |
| C B A | 地址输入(C 最高位) |
| S' | 使能端,低有效(S'=0 工作;S'=1 时 Y=0) |
| Y / W' | 输出 / 反相输出 |
- 把函数的 n−1 个变量接到地址端(一般让高位接地址);
- 剩下那 1 个变量,逐个地址去算:把该地址下"其余变量"的取值代入函数,结果可能是不含该变量的表达式;
- 把算出的表达式(0、1、D、D')接到对应数据端。
用 151 实现 F(A,B,C) = Σm(1,3,5,7)。
地址端 C←A、B←B、A←C(即 A 为最高位)。逐项看:
m0=0 → D0=0;m1=1 → D1=1;m2=0 → D2=0;m3=1 → D3=1;m4=0;m5=1;m6=0;m7=1。
所以 D1=D3=D5=D7=1,其余接 0。这也一眼看出 F=C(因为编号为奇数的都是 C=1)。
用 151 实现 F(A,B,C,D) = Σm(0,1,5,7,9,11,13,15)。
地址端接 A、B、C(A 最高位),剩下 D 要"降维"。按 ABC 分组看 D=0 / D=1 两格:
| ABC | D=0 时 F | D=1 时 F | 该地址的 Di |
|---|---|---|---|
| 000 | 1(m0) | 1(m1) | 1 |
| 001 | 0(m2) | 0(m3) | 0 |
| 010 | 0(m4) | 1(m5) | D |
| 011 | 0(m6) | 1(m7) | D |
| 100 | 0(m8) | 1(m9) | D |
| 101 | 0(m10) | 1(m11) | D |
| 110 | 0(m12) | 1(m13) | D |
| 111 | 0(m14) | 1(m15) | D |
所以 D0 接 1,D1 接 0,D2~D7 全部接 D。
检查:ABC=000 时无论 D 是 0 还是 1,F 都是 1(因为 m0、m1 都在集合里)→ 所以 D0 恒为 1。而 ABC=010 时 F 恰好等于 D → D2=D。
74LS153 是"双 4 选 1":一片里有两个独立的 4 选 1 MUX,共享地址端。适合实现两个三变量函数,很省芯片。
• 138:一次只"拉低一条线",天然产生全体最小项,适合"多输出、项数少"的函数;需要额外的与非门合成。
• 151:一次只"通过一路数据",不需要额外门就能输出函数(尤其是 4 变量函数,一片就够),但数据端接线要逐个算。
经验:三变量函数首选 138(接线整齐);四变量函数首选 151(一片搞定)。
7.4 加法器:数字电路里的"算术心脏"
半加器与全加器
| 类型 | 输入 | 输出 | 表达式 |
|---|---|---|---|
| 半加器 HA | A、B(两个 1 位数) | S(和)、C(进位) | S = A⊕B,C = AB |
| 全加器 FA | A、B、Ci(低位进位) | S、Co | S = A⊕B⊕Ci,Co = AB + Ci(A⊕B) |
"半加"之所以叫半,是因为它不能接收低位来的进位,只能算最低位;多位相加必须用全加器。
算 7 + 5:111 + 101。
最低位:1+1 = 0,进位 1 → 这个进位就是下一位的 Ci。
中间位:1+0+1 = 0,进位 1。
最高位:1+1+1 = 1,进位 1 → 结果 1100 = 12。
你小学学的竖式,每一位做的事情就是"全加器"。4 个全加器串起来,就是 4 位加法器。
串行进位 vs 超前进位
- 串行进位(行波进位):4 个全加器首尾相连,进位一级一级传。缺点:总延迟 = 4 × 单级延迟,位数越多越慢。
- 超前进位:额外加"进位产生/传播"逻辑,所有进位同时算出来,代价是电路复杂。74LS283 就是 4 位超前进位加法器。
283 只能做加法,怎么办?用补码:A − B = A + (−B) = A + B' + 1。
接线:B1–B4 各经一个反相器(即取 B'),再把 C0(进位输入)接 1。
于是 283 实际算的是 A + B' + 1 = A + (24 − B) = A − B + 16,低 4 位正好是 A−B(若 A≥B),而 C4 是全 1 表示无借位。一个加法器 + 4 个反相器 = 加减两用 ALU 的雏形。
用二进制加法器算 BCD 数会出错:8+7 = 1111 = 15,但 BCD 只认 0–9,15 是非法的。修正规则:若和 > 9(即 C4=1 或 S3S2=11),就再加 0110(6)。
为什么加 6?因为 4 位二进制逢 16 进 1,而 BCD 逢 10 进 1,差 6,所以"跳过" 6 个非法码。这正是 74LS83/283 加一片修正逻辑构成 BCD 加法器的原理,也是"为什么 BCD 运算更慢更费电"的答案。
7.5 数值比较器:74LS85
4 位比较器,比较两个 4 位二进制数 A3A2A1A0 与 B3B2B1B0,输出三个互斥的结果:OA>B、OA<B、OA=B。
它还有三个级联输入 IA>B、IA<B、IA=B,用于多片串联:低位片的三个输出接高位片的三个级联输入,高位片就能在"高位相等"时参考低位的比较结果。
IA=B 接 1,IA>B 和 IA<B 接 0。含义是"没有更低位的数了,低位视为相等"。这个细节考试常挖坑:接错会导致所有比较结果都不对。
7.6 MSI 设计总口诀
- "实现某逻辑函数" → 优先 138 + 与非门(三变量)或 151(四变量)。
- "多输出函数" → 138 最划算(一次产生全部最小项,多路复用)。
- "算术运算" → 283(加法)、283+反相器(减法)、283+修正(BCD)。
- "判断大小/相等" → 85 比较器。
- "把 n 条线里的一条变成编号" → 148 优先编码器。
- "把编号变成 n 条线之一" → 138 译码器。
答题模板:① 写出函数的最小项之和;② 选定芯片并说明接线(地址、使能、数据);③ 画出/写出外部附加门;④ 一句话说明原理。
🧪 本章自测
1. 用 74LS138 实现 F = A'B'C + AB'C' + ABC(即 Σm(1,4,7))。
使能:G1=1,G2A'=G2B'=0;地址 A→A2、B→A1、C→A0;把 Y1'、Y4'、Y7' 接三输入与非门。
F = (Y1'·Y4'·Y7')'。
2. 151 的地址端接 A、B、C,Di 全接 D,输出是什么?
无论选中哪一路,Y 都等于 D,所以 Y = D,与 A、B、C 无关。这正是"数据端接变量 = 该变量直接影响输出"的含义。
3. 全加器 Co = AB + Ci(A⊕B) 和 Co = AB + ACi + BCi 等价吗?
完全等价。展开:Ci(A⊕B) = Ci(AB' + A'B) = ACiB' + A'BCi,加上 AB 后利用 AB + AB'Ci = AB + Ci 等可化简为 AB + ACi + BCi。
第一种形式更省门(一个异或 + 一个与 + 一个或),第二种形式更"对称"、便于卡诺图分析。
4. 两片 4 位比较器级联,8 位比较时低位片的输出往哪接?
接高位片的级联输入 IA>B、IA<B、IA=B。低位片本身的级联输入仍接 "相等=1、其余=0"(因为它是最低位)。
5. 为什么说"138 天然产生全部最小项"?
因为 8 条输出分别对应 8 个地址组合,而每个地址组合正好就是一个最小项。输出低有效意味着 Yi' = mi',即"每条线携带一个最小项的非"。所以只要加一级与非门/与门,就能组合出任意函数——这就是"通用逻辑模块"的含义。
触发器:给电路装上"记忆"
组合逻辑有个致命缺陷:输入一撤,输出就忘了。可计数器要"记住"现在数到几,寄存器要"记住"存了什么。所以我们需要一个能存 1 位二进制的元件——触发器。它是所有时序逻辑的地基。
跷跷板只有两个稳定状态:左边着地或右边着地。你推一下,它翻到另一边并停住;手松开,它保持不动。中间那个"水平"的位置是不稳定的,一碰就倒向某一边。
触发器就是这样:两个稳定状态(0 和 1)+ 一个"推"的动作(输入信号)。断电之前,它会一直记住你最后推的那一下——这就是"记忆"。
8.1 基本 SR 锁存器:最简单的记忆单元
① 或非门构成(S、R 高有效)
| S | R | Q* | 功能 |
|---|---|---|---|
| 0 | 0 | Q | 保持(记住原状态) |
| 0 | 1 | 0 | 置 0(Reset 复位) |
| 1 | 0 | 1 | 置 1(Set 置位) |
| 1 | 1 | ? | 禁止:Q 和 Q̄ 同时为 0,违反互补约定 |
② 与非门构成(S'、R' 低有效)
把两个与非门交叉连接,输入端命名为 S'、R',低电平有效:S'=0 置 1,R'=0 置 0,都为 1 保持,都为 0 禁止(此时 Q=Q̄=1)。
看到 S'(或 S̄、/S)要条件反射:它 = 0 才是"动作有效"。所以"与非门 SR 锁存器"的状态表是:
S'=0、R'=1 → 置 1;S'=1、R'=0 → 置 0;S'=R'=1 → 保持;S'=R'=0 → 禁止。
这和或非门版本的"1 有效"正好相反。做题第一步永远是:先判断哪个电平是有效电平。
用你在第 3 章学的结点电压法思路看:把 Q 和 Q̄ 当成两个节点,每个门的输出由另一个门的输出决定,形成一个正反馈环。
正反馈有两个稳定解(Q=1/Q̄=0 或 Q=0/Q̄=1),就像《电路》里两个互相偏置的晶体管可以稳定在两个状态。"双稳态"这个词就是这么来的。
8.2 门控 SR 锁存器与"空翻"
基本 SR 锁存器的输入随时能改状态,太"自由"了。加上一个 CP(时钟脉冲)控制门,只在 CP 有效时才允许动作,就得到门控 SR 锁存器。
但随之而来一个麻烦:空翻。当 CP=1 的整个期间,锁存器是"透明"的——输出跟着输入变。如果 CP 脉冲比较宽,输入变几次,输出就翻几次。而触发器应该"一个时钟周期只翻一次",否则计数器会乱。
你想让"每个进来的人只往屋里放一件东西"。于是规定"门开着的时候可以放"。结果门开了 10 秒,有人进出 3 次,放了 3 件。
正确做法是:只在"推门的那一瞬间"放行一次,然后立刻关死——这就是后面"边沿触发"要解决的问题。
D 锁存器(透明锁存器)
把门控 SR 的 S、R 之间接一个反相器,让它们永远互补(杜绝"同时为 1"的禁止状态),输入只剩一个 D:
D 锁存器(如 74LS373)在 CP=1 期间透明,CP 下降沿"锁住"当前值。它仍属于电平触发,不是边沿触发。
8.3 主从触发器:让"一个 CP 只翻一次"
思路很巧:用两个门控锁存器串起来,一个叫主,一个叫从,让它们的 CP 互补:
- CP = 1:主锁存器开门(接收输入),从锁存器关门(保持输出)——输出暂时不变;
- CP 下降沿(1→0):主锁存器关门(记住刚才的输入),从锁存器开门(把主的状态送到输出)——输出更新一次。
于是一个 CP 周期,输出只变一次,空翻被消除了。
主从 JK 触发器:解决"禁止状态"
把主从 SR 的输出反馈回输入,用 J、K 两个输入,就得到 JK 触发器。J=K=1 时它"翻转"(T 功能),而不再是禁止状态。
主从结构虽然解决了空翻,但在 CP=1 期间,主锁存器仍是透明的。如果 J、K 在这段时间里受干扰而短暂变化,主锁存器可能被"骗"着翻转一次(只能翻一次,因为翻转后反馈会锁死),然后这个错误状态在下降沿被送到输出。
结论:主从 JK 要求 J、K 在整个 CP=1 期间保持稳定,这在实际中很难保证。于是有了边沿触发器。
8.4 边沿触发器:只在"那一瞬间"采样 最高频
边沿触发的思路:把采样时刻压缩到 CP 跳变的瞬间(纳秒级),只有在这一瞬间的输入值才算数,其他时间的输入变化一概不管。
| 类型 | 触发边沿 | 代表芯片 | 符号特征 |
|---|---|---|---|
| 边沿 D 触发器(维持阻塞) | 上升沿(0→1) | 74LS74(双 D) | CP 端画小三角 |
| 边沿 JK 触发器 | 下降沿(1→0) | 74LS112(双 JK) | CP 端小三角 + 小圆圈 |
① 先把 CP 的每个上升沿(或下降沿)用竖线标出来;② 只在竖线处看输入值;③ 输出在这条竖线之后立刻变成那个值,其余时间输出保持不变(哪怕输入乱跳)。
如果题目是 D 锁存器(电平触发),规则换成:"CP=1 期间输出 = D,CP=0 期间保持"——这时输出会在 CP=1 期间跟着 D 变。两者画出来完全不同,看清题目给的是"锁存器"还是"触发器"。
动态特性:建立时间与保持时间
| 参数 | 含义 | 违反的后果 |
|---|---|---|
| 建立时间 tsu | 数据必须在时钟边沿之前稳定的最短时间 | 输出可能进入亚稳态(既非 0 也非 1),随机出错 |
| 保持时间 th | 数据必须在时钟边沿之后继续保持的最短时间 | 同上 |
| 传输延迟 tpd | 时钟边沿到输出稳定的时间 | 限制最高工作频率 |
| 最高时钟频率 fmax | 触发器能可靠工作的最高频率 | 超过就丢数据 |
"亚稳态"是数字电路里唯一真正的"不确定态":触发器输出停在高低之间的中间电压,持续一段时间后才随机倒向一边。跨时钟域传输时最常见,工程上用"两级触发器同步"来解决。
8.5 四种触发器的特性方程与激励表 必背
| 类型 | 特性方程(次态) | 功能说明 |
|---|---|---|
| SR | Q* = S + R'Q,SR = 0 | 置位/复位,有约束 |
| D | Q* = D | 跟随输入,最简单 |
| JK | Q* = JQ' + K'Q | 功能最全(保持/置位/复位/翻转) |
| T | Q* = T⊕Q | T=1 翻转,T=0 保持 |
激励表(已知"现态→次态",反推需要的输入)——第 10 章设计时序电路时要用:
| Q → Q* | D | J K | T | S R |
|---|---|---|---|---|
| 0 → 0 | 0 | 0 × | 0 | 0 × |
| 0 → 1 | 1 | 1 × | 1 | 1 0 |
| 1 → 0 | 0 | × 1 | 1 | 0 1 |
| 1 → 1 | 1 | × 0 | 0 | × 0 |
"×"表示取 0 取 1 都行(无关项)。JK 的 × 最多,所以 JK 触发器在设计时最灵活——这也是考试爱用 JK 出设计题的原因。
任何触发器都能改成另一种,方法是"令特性方程相等":
• JK 当 D 用:要 JQ'+K'Q = D,取 J=D、K=D'。✔ 最常用。
• JK 当 T 用:令 J=K=T,则 Q* = TQ'+T'Q = T⊕Q。✔
• D 当 T 用:令 D = T⊕Q(需要加一个异或门)。
• SR 当 D 用:令 S=D、R=D'(但 D 从 1 变 0 时需先复位,有约束风险)。
8.6 异步输入端:随时"强拆"
实际芯片除了 CP 和 D/JK,还有 RD(清 0)和 SD(置 1)两个脚,低有效,且不受时钟控制:
RD' = 0:立刻把 Q 清 0,不管 CP 和 D 是什么;SD' = 0:立刻把 Q 置 1;- 两者都为 1:正常工作;两者同时为 0:禁止(同 SR 的约束)。
用途:开机复位(上电时把计数器清零)、手动置初值。第 11 章的"反馈清零法"就靠它。
- 画出或非门/与非门 SR 锁存器,写出状态表,说出禁止状态及其原因。
- 解释空翻的成因,以及主从/边沿结构如何解决它。
- 默写 D、JK、T 特性方程;会用激励表反推输入。
- 给 CP 和 D/JK 波形,画出 Q 的波形(注意是上升沿还是下降沿!)。
- 分清"锁存器(电平触发)"和"触发器(边沿触发)"。
🧪 本章自测
1. 或非门 SR 锁存器,S=1、R=1 时输出是什么?为什么说这是"禁止"?
此时 Q=0、Q̄=0(两个或非门输出都被强制为 0)。
禁止的原因有二:① 破坏了 Q 与 Q̄ 必须互补的约定,后级电路无法判断;② 当 S、R 同时回到 0 时,两个门会"抢着"变 1,最终状态取决于谁更快——结果不可预测。
2. D 触发器(上升沿)的 CP 与 D 波形如下:D 在第 1 个上升沿前为 1,第 2 个前为 0,第 3 个前为 1,第 4 个前为 0。画出 Q。
Q 依次为 1、0、1、0,且只在上升沿跳变,两次上升沿之间无论 D 怎么变,Q 都保持不变。
若这是 D 锁存器(电平触发),则 CP=1 期间 Q 要跟着 D 变,画出来是"锯齿状"的。这就是两类器件的区别。
3. JK 触发器 J=K=1 时,Q 从 0 开始,连续 4 个时钟边沿后 Q 是什么?
每次翻转:0→1→0→1→0。4 个边沿后 Q=0。
这正是"二分频":每来一个时钟,Q 翻一次,所以 Q 的频率是 CP 的一半。T'触发器(T=1)就是二分频器,第 11 章计数器的基础。
4. 主从 JK 和边沿 JK 的核心区别是什么?
主从:CP=1 期间主锁存器透明,J、K 必须保持稳定,否则可能"一次翻转"出错;输出在 CP 下降沿更新,但本质仍是两级电平触发。
边沿:内部用维持-阻塞结构,只在边沿瞬间采样,边沿之外的输入变化完全不影响,对输入波形要求宽松得多。
5. 要把 JK 触发器当 D 触发器用,J、K 怎么接?
J = D,K = D'(D 经反相器接 K)。
验证:Q* = JQ' + K'Q = DQ' + D·Q = D(Q'+Q) = D ✔
时序逻辑电路分析:看懂别人搭的电路
时序逻辑电路 = 组合逻辑 + 触发器。它的输出不仅取决于当前输入,还取决于电路现在处于什么状态。所以分析时必须把"状态"当成变量写进方程。
你在《电路》里学过含受控源的反馈电路:输出通过反馈影响输入,形成闭环。时序电路完全一样——只是把反馈环里的"记忆元件"换成了触发器。
分析方法也一脉相承:先写节点方程(这里是驱动方程),再联立求解(这里是状态方程),最后看稳态解(这里是状态转换图)。
9.1 三个基本概念
| 概念 | 含义 | 你要做的 |
|---|---|---|
| 现态 Qn | 时钟边沿到来之前触发器存的值 | 写在状态表的左边 |
| 次态 Qn+1 | 时钟边沿到来之后的新值 | 用特性方程算出来 |
| 状态变量 | 所有触发器输出的组合,如 Q2Q1Q0 | n 个触发器 → 最多 2n 个状态 |
- 同步时序电路:所有触发器共用同一个 CP,同时翻转。分析简单,是考试主流。
- 异步时序电路:各触发器时钟不同(前一级输出当下级时钟)。分析要额外考虑"谁先翻"。
- Mealy 型:输出 = f(现态, 输入),输入一变输出立刻变。
- Moore 型:输出 = f(现态),只跟状态有关,与当前输入无关。
9.2 分析五步法 最高频
驱动方程:每个触发器输入端(J/K/D)等于什么。状态方程:把驱动方程代入触发器特性方程,得到 Q* 的表达式。
✏️ 例 9-1:分析一个 2 位同步计数器(JK 触发器)
已知电路连接(这就是"逻辑图"的文字版):
| 连接 | 表达式 |
|---|---|
| FF1 输入 | J1 = Q0,K1 = Q0 |
| FF0 输入 | J0 = 1,K0 = 1 |
| 输出 | Y = Q1Q0 |
| 时钟 | 同步,共用一个 CP |
① 驱动方程:J1=K1=Q0;J0=K0=1。
② 状态方程(代入 Q* = JQ' + K'Q):
Q1* = Q0Q1' + Q0'Q1 = Q1 ⊕ Q0
Q0* = 1·Q0' + 0·Q0 = Q0'
③ 输出方程:Y = Q1Q0(只在 11 状态为 1,Moore 型)。
④ 状态转换表(把 4 个现态逐个代入)
| 现态 Q1Q0 | 次态 Q1*Q0* | Y |
|---|---|---|
| 0 0 | 0 1 | 0 |
| 0 1 | 1 0 | 0 |
| 1 0 | 1 1 | 0 |
| 1 1 | 0 0 | 1 |
⑤ 状态图与功能:状态按 00→01→10→11→00 循环,共 4 个状态,每个 CP 加 1,所以这是一个 模 4(2 位二进制)同步加法计数器;Y 在计数值为 11 时为 1,即每 4 个脉冲产生一个进位输出。
每个状态画一个圆圈,里面写状态编码(如 "01");状态转移画带箭头的弧线,旁边标"输入/输出"。
• 本例没有外部输入,所以箭头上只标 Y(或者不标)。
• 有输入的电路,箭头上必须写"X/Y",如 0/1 表示"输入 0 时沿这条边走,输出 1"。
• 常用 S0、S1… 命名,也可以直接写编码。写编码更省事,也不容易错。
✏️ 例 9-2:带输入的序列检测电路(D 触发器)
已知:两个 D 触发器,D1 = X,D0 = Q1,Y = Q1Q0,同步时钟。
① 驱动方程:D1=X,D0=Q1。
② 状态方程(D 触发器 Q*=D):Q1* = X,Q0* = Q1。
③ 输出方程:Y = Q1Q0。
④ 状态转换表(现态 4 个 × 输入 2 个 = 8 行)
| 现态 Q1Q0 | X=0 次态 / Y | X=1 次态 / Y |
|---|---|---|
| 00 | 00 / 0 | 10 / 0 |
| 01 | 00 / 0 | 10 / 0 |
| 10 | 01 / 0 | 11 / 0 |
| 11 | 01 / 1 | 11 / 1 |
⑤ 功能:状态 11 表示"最近两次采样都是 1"。所以这是一个连续两个 1 的序列检测器:输入串行数据 X,一旦出现 "11",输出 Y 就变 1(并保持到 1 被打断为止)。
因为 Y 只由状态决定,属于 Moore 型。如果把输出改成 Y = X·Q1,那就变成了 Mealy 型(Y 还依赖当前输入)。
9.3 自启动能力:电路会不会"卡死"
n 个触发器有 2n 个状态,但设计时常常只用了其中一部分。比如 3 个触发器只用了 5 个状态,剩下 3 个叫无效状态。
- 能自启动:经过若干时钟后,会自己绕回主循环。安全。
- 不能自启动:在无效状态里"打转",永远回不来。电路死机,必须重新复位。
检查方法:把所有无效状态逐个代入状态方程,画出它们的去向,看能否在有限步内进入主循环。设计题里这一步必须写,占 2~3 分。
某 3 触发器电路,有效状态为 000→001→011→111→000(4 个),其余 4 个为无效状态。逐个代入得:
100 → 001(进入主循环 ✔) 010 → 101 → 011(进入主循环 ✔)
110 → 100 → 001 ✔ 101 → 011 ✔
所有无效状态都能绕回来 → 能自启动。
反之,若某个无效状态的次态还是无效状态,且形成闭环(如 100→110→100),则不能自启动。
9.4 时序图:把状态画成波形
时序图画法:在 CP 的每个有效边沿处,读取新的状态值,画成阶梯波。
状态序列:00 → 01 → 10 → 11 → 00 → 01
所以 Q0 的波形是每来一个 CP 翻转一次(0101010…),频率是 CP 的 1/2;
Q1 每两个 CP 翻转一次,频率是 CP 的 1/4;
Y = Q1Q0 在状态 11 时为高,宽度等于一个 CP 周期。
结论:每一位输出都是前一位的二分频——这就是"计数器就是分频器"。
画图要点:Q 的跳变必须与 CP 的有效边沿对齐;若考虑传输延迟,跳变会略微滞后。考试一般不考虑延迟,对齐画即可。
- 驱动方程 → 状态方程 → 输出方程,三步必须写出来(占分最多)。
- 状态转换表要把 2n 个状态写全(包括无效状态,为自启动检查做准备)。
- 状态图箭头上的标注格式:
输入/输出。 - 功能描述要用自然语言:"模 N 计数器" / "序列检测器(检测 XXX)"。
- 自启动检查不能忘。
🧪 本章自测
1. 已知 D1 = Q0、D0 = Q1',写出状态方程和状态表。
Q1* = Q0,Q0* = Q1'。
00→01→00→…(2 状态循环);10→11→10→…分成两个独立循环,不能自启动。
这类"两个死循环"的电路就是典型的不能自启动。
2. 一个 3 位同步二进制计数器的状态数是多少?输出 Y 从哪一位取能得到 8 分频?
3 个触发器 → 23=8 个状态(000~111),所以是模 8 计数器。
最低位 Q0 是 2 分频,Q1 是 4 分频,Q2 是 8 分频。
3. 状态图和状态表有什么区别?
状态表是"表格形式"的转移关系,适合逐项计算、适合写进答题纸;状态图是"图形形式",一眼能看出循环结构和自启动情况。
考试通常要求两样都画:先用表算,再画图看结构。
4. 为什么异步时序电路分析更麻烦?
因为各触发器不在同一时刻翻转:某个触发器的输出在翻转过程中可能又成为下一级的时钟,产生"级联翻转"。分析时必须逐级按时间顺序推导,还要考虑延迟导致的竞争,不能简单套同步的公式。
5. 一个 Moore 型电路的输出 Y=1 对应状态 S2。如果输入在 S2 时从 0 变 1,Y 会立刻变吗?
不会。Moore 型输出只与状态有关,输入变化不影响输出,必须等下一个时钟边沿使状态改变后,Y 才可能变。这正是 Moore 比 Mealy "慢一拍"的原因,也是它更抗干扰的原因。
时序逻辑电路设计:从"需求"到"电路"
这是全课程最难的一道大题,但只要按固定步骤走,它其实是一道"流程题"。难在第一步的"逻辑抽象"(把文字需求画成状态图),后面全是机械操作。
10.1 设计七步法
第 ② 步(状态化简)在考试中常被跳过——题目给的序列一般不能合并。但答题时提一句"状态已最简"更稳妥。
① 画状态图:整道题的分水岭
把"已经匹配了多少"作为状态:
S0:还没匹配任何有效前缀;
S1:已匹配 1 位;
S2:已匹配 2 位(输出 1)。
然后对每个状态问两件事:"如果来 0 会怎样?如果来 1 会怎样?"尤其要考虑"失配后能保留多少前缀"——这是最容易错的地方。
例:检测 "11",在 S1(已有一个 1)来 0 → 回到 S0;在 S2 来 0 → 回到 S0;在 S2 来 1 → 仍留在 S2(因为最后两个仍是 11)。
③ 状态编码:三种方案
| 编码方式 | n 个状态用几位 | 优点 | 缺点 |
|---|---|---|---|
| 二进制编码 | ⌈log2n⌉ 位 | 触发器最少,考试默认 | 需要译码,可能有无效状态 |
| 格雷码编码 | 同上 | 相邻状态只变 1 位,减少毛刺 | 编码规则稍复杂 |
| 独热码(One-hot) | n 位(一个状态一位) | 译码极简单,速度快,FPGA 常用 | 触发器多,只适合状态少 |
考试没有特殊说明时,一律用二进制编码,从 S0=00 开始按顺序编。
10.2 完整例题:设计"连续两个 1"检测器 照着背
设计一个串行序列检测器,输入 X 逐位输入,当连续出现两个 1 时输出 Y=1(允许重叠,如 111 中第 2、3 位也算)。用 JK 触发器实现,并检查自启动。
① 状态图
| 现态 | 含义 | X=0 | X=1 |
|---|---|---|---|
| S0 | 没有有效的 1 | S0 / 0 | S1 / 0 |
| S1 | 已有 1 个 1 | S0 / 0 | S2 / 0 |
| S2 | 已有 2 个连续 1 | S0 / 1 | S2 / 1 |
注意 S2 在 X=1 时留在 S2(因为末尾两个仍是 11),这就是"重叠检测"。输出只与状态有关(S2 时 Y=1)→ Moore 型。
② 状态化简:三个状态含义不同、输出不同,已是最简。
③ 状态编码:3 个状态需要 2 位。令 S0=00、S1=01、S2=10。11 是无效状态。
④ 状态表 + 激励表(现态 Q1Q0,输入 X)
| Q1Q0 | X | Q1*Q0* | J1 | K1 | J0 | K0 | Y |
|---|---|---|---|---|---|---|---|
| 00 | 0 | 00 | 0 | × | 0 | × | 0 |
| 00 | 1 | 01 | 0 | × | 1 | × | 0 |
| 01 | 0 | 00 | 0 | × | × | 1 | 0 |
| 01 | 1 | 10 | 1 | × | × | 1 | 0 |
| 10 | 0 | 00 | × | 1 | 0 | × | 1 |
| 10 | 1 | 10 | × | 0 | 0 | × | 1 |
| 11 | × | × | × | × | × | × | × |
激励表用法:0→0 取 J=0,K=×;0→1 取 J=1,K=×;1→0 取 J=×,K=1;1→1 取 J=×,K=0。
⑤ 求驱动方程(以 Q1、Q0、X 为变量,用卡诺图或观察法)
| 驱动 | 为 1 的条件 | 结果 |
|---|---|---|
| J1 | 只有 Q1Q0=01 且 X=1 | J1 = Q1'Q0X |
| K1 | 只有 Q1Q0=10 且 X=0 | K1 = Q1Q0'X' |
| J0 | 只有 Q1Q0=00 且 X=1 | J0 = Q1'Q0'X |
| K0 | 所有 Q0=1 的行(与 X 无关) | K0 = Q0 |
这里每个函数只有 1~2 个 1(或整列),画卡诺图反而麻烦,直接看表写更快。但答题时最好在草稿上画一下卡诺图确认没有遗漏。
⑥ 输出方程与电路:Y = Q1Q0'(即状态 10 时为 1)。
按四个驱动方程画门:三个与门(分别产生 J1、K1、J0)+ 一个直接连线的 K0,接两个 JK 触发器。
⑦ 自启动检查:把无效状态 Q1Q0=11 代入驱动方程:
J1 = 0·1·X = 0,K1 = 1·0·X' = 0 → Q1* = Q1 = 1
J0 = 0·0·X = 0,K0 = Q0 = 1 → Q0* = 0
所以 11 → 10,进入有效状态 S2,能自启动 ✔
设计时序电路像拍一部只有几个场景的短片:
• 状态 = 场景(S0 街上、S1 门口、S2 屋里);
• 输入 = 剧情触发器(来 1 就进下一步,来 0 就退回);
• 输出 = 某个场景里亮起的灯。
编码就是给场景编号(00、01、10),驱动方程就是"演员在什么情况下换哪个表情"。先写清楚剧本,再谈表演——顺序反了就会一团乱。
- 状态图漏掉失配分支:只画了"匹配成功"的路径,没画"来 0 怎么办"。
- 编码不写:直接跳到状态表,阅卷老师不知道 S1 是 01 还是 10。
- 激励表用错:把
1→0写成J=1(正确是K=1)。 - 驱动方程没化简:直接写成最小项之和,门电路一大堆。
- 忘了自启动检查:白丢 2~3 分。
求驱动方程更简单,但电路可能更复杂。
• D 触发器:D = Q*,所以驱动方程就是次态的表达式,不用查激励表,四个变量直接出结果。
• JK 触发器:多了 ×(无关项),卡诺图能圈得更大,门电路通常更少。
考试怎么选?题目指定就用指定的;没指定时,如果状态多、次态复杂,JK 更省门;如果状态少、要求快,D 更快(少一级逻辑)。现代 FPGA 内部只有 D 触发器,所以工程上几乎都用 D。
🧪 本章自测
1. 设计"检测 101"的序列检测器,至少需要几个状态?
4 个:S0(无)、S1(已收到 "1")、S2(已收到 "10")、S3(已收到 "101",输出 1)。
注意失配回退:S2 来 1 → 收到 "101" 的后缀 "1",应回到 S1(不是 S0);S3 来 0 → 后缀 "10"? 序列是 1010,末尾 "10" 匹配 S2 → 回到 S2。这些"重叠回退"是序列检测的核心难点。
2. 3 个状态用二进制编码需要几位触发器?还剩几个无效状态?
⌈log23⌉ = 2 位,2 个触发器,共 4 个编码状态,剩 1 个无效状态。必须检查自启动。
3. 为什么 JK 触发器的激励表里有那么多"×"?
因为 JK 功能最全:J=1,K=× 能置 1,J=×,K=1 能置 0,只要一个条件满足即可,另一个随意。
这些"随意"在卡诺图里就是无关项,能帮助圈出更大的圈,从而简化驱动方程、减少门数。这是 JK 在设计题中的最大优势。
4. 设计题中"状态化简"在什么情况下有实际作用?
当两个状态的"次态"和"输出"对所有输入都完全相同时,它们等价,可以合并。
例:某电路 S2 和 S3 对 X=0、X=1 都去同样的状态、输出也一样 → 合并成一个。合并后状态数减少,可能少用一个触发器。序列检测器一般不能合并(因为"已匹配长度"不同),而某些状态机(如交通灯)可以。
5. 设计一个模 5 计数器,需要几个触发器?编码怎么选?
3 个触发器(2 个只能表示 4 个状态,不够)。用 000、001、010、011、100 表示 0~4,剩下 3 个无效状态必须做自启动检查。
实际工程中更常用"集成计数器 + 反馈"来做(第 11 章),比用触发器从头设计省事得多。
计数器与寄存器:最常用的两块"积木"
计数器是数字系统里出现频率最高的电路:分频、定时、计数、地址生成、序列产生,全靠它。而考试里 90% 的计数器题,都是同一句话:"用 74LS161 构成 N 进制计数器"。这一章就把这句话彻底拆开。
11.1 计数器的分类
| 分类角度 | 类型 | 说明 |
|---|---|---|
| 时钟方式 | 同步 | 所有触发器共用 CP,同时翻转,速度快、无中间态 |
| 异步 | 前一级输出当下级时钟,逐级翻转,有"行波"延迟 | |
| 计数方向 | 加法(递增) | 0,1,2,… |
| 减法(递减) | …,2,1,0 | |
| 可逆 | 有加/减控制端(如 74LS190/191) | |
| 进制 | 二进制 | 模 2n(如 161 是模 16) |
| 十进制 | 模 10(如 160、290) | |
| 任意进制 | 模 N,靠"反馈"实现 ← 考试重点 |
11.2 74LS161 / 160 / 163:四大金刚
| 型号 | 进制 | 清零方式 | 置数方式 | 备注 |
|---|---|---|---|---|
| 74LS161 | 模 16(4 位二进制) | 异步清零 | 同步置数 | 最常用 |
| 74LS160 | 模 10(8421BCD) | 异步清零 | 同步置数 | 计到 9 后回 0 |
| 74LS163 | 模 16 | 同步清零 | 同步置数 | 清零要等时钟 |
| 74LS162 | 模 10 | 同步清零 | 同步置数 | — |
| CLR' | LOAD' | ENT | ENP | CLK | 功能 |
|---|---|---|---|---|---|
| 0 | × | × | × | × | 异步清零(立即 Q=0000,不等时钟) |
| 1 | 0 | × | × | ↑ | 同步置数(下一个上升沿装入 D3D2D1D0) |
| 1 | 1 | 1 | 1 | ↑ | 计数(每来一个上升沿 +1) |
| 1 | 1 | 0 | × | × | 保持(RCO=0) |
| 1 | 1 | × | 0 | × | 保持(RCO 不变) |
RCO(进位输出)= Q3Q2Q1Q0 · ENT,即计到 1111 且允许计数时为 1,用于级联高位片。ENT 和 ENP 都必须是 1 才能计数——这是阅卷常查的接线点。
11.3 任意进制计数器:两种方法 最高频
161 天生是模 16。想让它变模 6,就要"提前把它拉回 0"。两种拉法,对应两个信号:
| 对比项 | 反馈清零法 | 反馈置数法 |
|---|---|---|
| 用哪个脚 | CLR'(清零端) | LOAD'(置数端) |
| 何时生效 | 异步:译码信号一到,立刻清零 | 同步:译码信号到了也要等下一个时钟 |
| 译码哪个状态 | 状态 N(第 N+1 个状态) | 状态 N−1(最后一个有效状态) |
| 状态 N 是否出现 | 短暂出现(几个 ns 的毛刺),不算有效状态 | 不出现,状态干净 |
| 适用芯片 | 161、160(异步清零) | 161、160、163、162 都行 |
| 可靠性 | 稍差(有毛刺) | 更好(无毛刺) |
✏️ 例 11-1:用 74LS161 构成模 6 计数器(两种方法都做)
方法一:反馈清零法(计数 0000 → 0101,共 6 个状态)
- 确定要译码的状态:N = 6 = 0110(Q2Q1Q0 = 110);
- 写出清零条件:
CLR' = (Q2Q1)'(用与非门,因为 CLR' 低有效); - 其他脚:LOAD'=1、ENT=ENP=1。
工作过程:计到 0101 时正常;下一个脉冲到 0110,与非门立刻输出 0,芯片瞬间清零回 0000。所以稳定循环是 0000~0101,共 6 个状态 = 模 6 ✔。
方法二:反馈置数法(同样 0~5,共 6 个状态)
- 确定译码状态:N − 1 = 5 = 0101(Q2Q0 = 11);
- 置数条件:
LOAD' = (Q2Q0)'; - 置入值 D3D2D1D0 = 0000;其他脚同上。
工作过程:计到 0101 时 LOAD'=0,再等一个时钟上升沿,芯片装入 0000。稳定循环仍是 0000~0101,模 6 ✔,而且没有毛刺。
看清零/置数是异步还是同步:
• 异步清零 → 译码 N(因为一出现就立刻回 0,那个状态留不住)
• 同步清零/同步置数 → 译码 N−1(要等下一个时钟,N−1 是最后一个能停留的状态)
口诀:异步用 N,同步用 N−1。
✏️ 例 11-2:用 74LS161 构成模 12 计数器
模 12 意味着状态 0~11。12 = 1100。
反馈清零:CLR' = (Q3Q2)'(译码 1100)。
注意:161 是 4 位,最大模 16,做模 12 没问题;做模 20 就必须两片级联。
✏️ 例 11-3:级联做模 100
两片 74LS160(各模 10)串联:同步级联——两片共用 CP,低位的 RCO 接高位的 ENT/ENP;总模 = 10 × 10 = 100。
异步级联——低位 RCO 经反相接高位 CP;同样模 100,但高位片有延迟。
- 同步级联时,低位 RCO 接高位 ENT 和 ENP(两个都要接,或 ENT 接 RCO、ENP 接 1,视芯片而定);CP 必须共用。
- 级联后总模是乘积,不是和。要模 100 就用 10×10;要模 60 就用 6×10。
11.4 74LS290:二–五–十进制异步计数器
290 内部是两个独立的计数器:一个 2 分频(CP0 进、Q0 出),一个 5 分频(CP1 进、Q1Q2Q3 出)。灵活组合能得到多种进制:
| 接法 | 输出 | 进制 |
|---|---|---|
| CP 接 CP0,Q0 接 CP1 | Q3Q2Q1Q0 | 8421BCD 十进制(模 10) |
| 只用 CP0 | Q0 | 模 2 |
| 只用 CP1 | Q3Q2Q1 | 模 5 |
清零:R0(1)·R0(2) = 1 时异步清零(高有效);置 9:R9(1)·R9(2) = 1 时输出 1001。
290 的"异步"体现在内部:Q0 翻转后才去触发 5 分频部分,所以有逐级延迟。但它结构简单、价格低,在分频场合仍大量使用。
11.5 移位寄存器 74LS194
移位寄存器能"把数据一位一位挪动",是串行通信、并串转换、序列产生的核心。
| S1 | S0 | 功能 | 说明 |
|---|---|---|---|
| 0 | 0 | 保持 | 输出不变 |
| 0 | 1 | 右移 | Q0←Q1←Q2←Q3←DSR(串行输入从右进) |
| 1 | 0 | 左移 | Q3←Q2←Q1←Q0←DSL |
| 1 | 1 | 并行置数 | Q3Q2Q1Q0 ← D3D2D1D0 |
| CLR'=0 | 异步清零(优先于一切) | ||
典型应用:
• 串→并转换:串行数据从 DSR 一位位送入,4 个时钟后在 Q3Q2Q1Q0 得到并行数据(相当于"串行收报")。
• 并→串转换:先并行置数,再连续右移,从 Q0 一位位取出(相当于"串行发报")。
• 延时:数据经过 n 级移位,延迟 n 个时钟周期。
11.6 环形计数器与扭环计数器
| 类型 | 反馈接法 | n 位状态数 | 特点 |
|---|---|---|---|
| 环形计数器 | 末级 Q0 直接接回串行输入 DSR | n | 状态里只有一个 1("独热"),不需译码;但有 2n−n 个无效状态,通常不能自启动(0000 会死循环) |
| 扭环形(Johnson) | 末级取反 Q0' 接回 DSR | 2n | 状态数翻倍,能自启动,译码简单(每个状态可用两个相邻位判断) |
环形(预置 1000):1000 → 0100 → 0010 → 0001 → 1000 …… 共 4 个状态。
扭环(从 0000 开始,反馈 Q0'):0000 → 1000 → 1100 → 1110 → 1111 → 0111 → 0011 → 0001 → 0000 …… 共 8 个状态。
对比:环形计数器"一个 1 在跑",扭环形"1 慢慢灌满再慢慢排空"。
模 N 计数器每输入 N 个脉冲,最高位输出一个完整周期,所以它天然是一个 N 分频器:
fout = fin / N,且每一位输出都是前一位的二分频。
你手机里的时钟、电脑的定时器、LED 闪烁,底层都是这个原理:把高频时钟一级级分下来。
- 161 功能表(异步清零、同步置数、ENT/ENP 都有效才计数)。
- 任意进制两种方法:异步清零译码 N,同步置数译码 N−1。
- 级联总模 = 各片模之积;同步级联共用 CP,RCO 接高位使能。
- 194 的四种模式(S1S0 = 00 保持 / 01 右移 / 10 左移 / 11 置数)。
- 环形 n 个状态、扭环 2n 个状态。
🧪 本章自测
1. 用 74LS161 构成模 10 计数器,反馈清零法该译码哪个状态?
译码 N = 10 = 1010(Q3Q1 = 11),CLR' = (Q3Q1)'。
注意:虽然 160 天生是模 10,但题目若指定 161,就必须自己反馈。别混。
2. 用 74LS163(同步清零)构成模 7 计数器,清零信号取自哪个状态?
同步清零要等下一个时钟,所以译码 N−1 = 6 = 0110,CLR' = (Q2Q1)'。稳定状态 0~6 共 7 个。
3. 两片 74LS160 同步级联,总模是多少?如果改用反馈清零把第二片清成模 6,总模是多少?
不反馈时:10 × 10 = 100。
若第一片模 10、第二片模 6:总模 = 10 × 6 = 60(每 10 个脉冲第二片进 1,第二片计满 6 就整体复位)。
这就是"用 60 进制做秒/分计数"的原理。
4. 四位环形计数器为什么不能自启动?如何解决?
因为无效状态 0000 在反馈下"喂"回自己 0,永远停在 0000。
解决办法:① 开机时用异步置数强制置成 1000;② 加自启动逻辑(检测到全 0 时强行置 1);③ 改用扭环计数器(它天然能自启动)。
5. 74LS194 要实现"串行输入、并行输出",S1S0 怎么设?
设为 S1S0 = 01(右移),串行数据从 DSR 输入。每来一个时钟,数据右移一位;4 个时钟后,4 位数据全部进入 Q3~Q0,即完成串→并转换。
此后若要继续接收新数据,需重新置数或继续移位。
555 定时器与脉冲电路:模拟与数字的握手
555 的一切都建立在"电容充放电需要时间"上。而你还没学过电容。这一节是本章的地基,请务必读完。
电容的核心关系:i = C·du/dt——电流越大、电容越小,电压上升越快。电容电压不能突变(要突变就需要无穷大电流),这是所有暂态分析的出发点。
RC 一阶电路的三要素公式(《电路》第 7 章的核心结论,直接给你用):
τ 的物理意义:经过 1 个 τ,电压走完剩余差距的 63.2%;3τ 走完 95%;5τ 走完 99.3%(工程上认为"充满")。
空浴缸放水,一开始水流最猛(压差大),快满时越来越慢——这就是指数曲线。
• 目标水位 5 V,现在 0 V,那"差距"是 5 V;
• 过一个 τ,水位到 3.16 V(走了 63.2%);
• 再过一个 τ,到 4.32 V(又走了剩余 63.2%)……永远到不了 5 V,只能无限接近。
555 就是利用"数到某个比例"来定时的:数到 2/3 或 1/3 就动作。
5 V 电源经 R = 10 kΩ 给 C = 10 μF 充电(初始 0 V),问充到 (2/3)×5 = 3.33 V 需要多久?
第一步:τ = RC = 104 × 10−5 = 0.1 s。
第二步:代入公式 uC = 5(1 − e−t/0.1),令其等于 3.33:
1 − e−t/0.1 = 2/3 → e−t/0.1 = 1/3 → t = 0.1 × ln3 ≈ 0.11 s。
第三步:注意到 ln3 ≈ 1.0986 ≈ 1.1,所以 t ≈ 1.1RC —— 这就是单稳态公式的来源!它不是背来的,是算出来的。
12.1 555 内部结构:五个零件
| R'(4) | TH(6) | TR'(2) | OUT(3) | 放电管 T | 说明 |
|---|---|---|---|---|---|
| 0 | × | × | 0 | 导通 | 强制复位,优先于一切 |
| 1 | > 2/3 VCC | > 1/3 VCC | 0 | 导通 | TH 高 → 复位 |
| 1 | < 2/3 VCC | > 1/3 VCC | 保持 | 保持 | 两个比较器都不动 |
| 1 | < 2/3 VCC | < 1/3 VCC | 1 | 截止 | TR' 低 → 置位 |
| 1 | > 2/3 VCC | < 1/3 VCC | 0 | 导通 | TH 优先(两个都有效时复位赢) |
三个等值电阻串联接在 VCC 与地之间,中间两个节点自然就是 2/3 VCC 和 1/3 VCC——纯粹的分压,没有任何玄机。
结论:555 的两个"魔法阈值"其实就是分压器给的。如果第 5 脚(CO)外接电压,还能改变这两个阈值,从而改变定时时间或占空比。
12.2 三种基本用法(三大公式,必背)最高频
① 施密特触发器:把"歪歪扭扭"的信号变方正
把 TH 和 TR' 接在一起当输入:输入上升超过 2/3 VCC → 输出变低;输入下降低于 1/3 VCC → 输出变高。
回差的作用:输入在阈值附近抖动时,输出不会跟着抖——因为上升和下降用的是不同阈值。这正是"消抖"(按键去抖)和"波形整形"的原理。
普通比较器像"没有门槛的门":人在门口稍微前后晃,门就开开关关(输出抖动)。
施密特触发器像"有门槛 + 有回弹"的门:你得用力推到一定位置门才开,一旦开了,要退回来很远才会关。中间那段"要退多远",就是回差。它用"迟钝"换来了"稳定"。
② 单稳态触发器:按一下,亮一段时间
电路:TR' 接输入(需负脉冲触发),TH 接电容电压,DIS 接电容放电端,电容经 R 接 VCC。
- 稳态:输出低,放电管导通,电容被短路在 0 V;
- 触发:TR' 出现 < 1/3 VCC 的负脉冲 → 输出变高,放电管截止,电容开始经 R 充电;
- 定时:电容电压升到 2/3 VCC 时,TH 使电路复位 → 输出回低,放电管导通,电容迅速放回 0 V;
- 输出脉宽:就是充电时间。
tw = 1.1 × 100×103 × 10×10−6 = 1.1 × 1 = 1.1 s。
用途:按键消抖(输出 20 ms 稳定脉冲)、延时开关、定时器、脉冲展宽。
你按一下按钮(触发),水箱开始放水(输出变高),不管你把按钮按住多久,它只冲固定的那几秒,然后自动停止(复位)。
关键特性:输出脉宽只由 R、C 决定,与输入脉冲的宽度无关。这就是"单稳态"——只有一个稳定状态(低),另一个状态(高)只能维持一段时间。
③ 多谐振荡器:自己给自己"打拍子"
把单稳态的"放电"路径也接上电阻,让电容在 1/3 与 2/3 VCC 之间来回充放电,输出就持续振荡,不需要外部触发。
占空比 q = (R1 + R2) / (R1 + 2R2) (恒大于 50%) t1 = 0.7(R1+R2)C:经 R1+R2 充电;t2 = 0.7R2C:只经 R2 放电
R1+2R2 = 10k + 40k = 50 kΩ
T ≈ 0.7 × 50k × 0.1μ = 3.5 ms,f ≈ 1/3.5ms ≈ 286 Hz
占空比 q = (10+20)/(10+40) = 30/50 = 60%。
如果想让占空比接近 50%,可以让 R1 尽量小(但不能为 0,否则放电管会烧)。
在 R1、R2 之间串两个二极管,再用电位器分压:充电走一条路、放电走另一条路,就能独立调节 t1 和 t2,实现 1%~99% 的占空比。
典型接法:电位器 RW 的滑动端接 7 脚,两端各串一个方向相反的二极管,分别接 VCC 和电容。这是 555 做 PWM 调速、呼吸灯的标准电路。
12.3 555 的典型应用清单
| 应用 | 用哪种模式 | 关键参数 |
|---|---|---|
| 按键消抖 | 单稳态 | tw 取 10~20 ms(大于抖动时间) |
| LED 闪烁 | 多谐振荡 | f 取 1~2 Hz |
| 波形整形 / 施密特 | 施密特触发器 | 回差 (1/3)VCC |
| 定时开关(路灯延时) | 单稳态 | RC 决定延时长度 |
| PWM 调光/调速 | 多谐 + 二极管 | 占空比可调 |
| 方波时钟源 | 多谐振荡 | f = 1.43/[(R1+2R2)C] |
| 分频 | 单稳态被周期性触发 | 输出频率 = 触发频率 |
- 单位:R 用 kΩ、C 用 μF 时,
RC的单位是 ms(103×10−6=10−3)。别把 0.1 s 算成 0.1 ms。 - 多谐的 R1 加两次还是加一次:充电走 R1+R2,放电只走 R2,所以总和里 R1 只出现一次、R2 出现两次 →
R1+2R2。画一遍电流路径就不会错。 - 占空比恒 > 50%:因为充电路径比放电路径多了 R1。想小于 50% 必须加二极管。
- 555 内部五个部分的名字与作用(分压器、两比较器、RS 锁存器、放电管、缓冲器)。
- 功能表:TH > 2/3VCC 复位、TR' < 1/3VCC 置位、TH 优先。
- 三个公式:
tw=1.1RC、T=0.7(R1+2R2)C、回差VCC/3。 - 给出 R、C 算时间/频率/占空比(注意单位换算)。
- 各模式的应用场景判断。
🧪 本章自测
1. 555 的 5 脚(CO)外接 3 V,阈值变成多少?(VCC=5 V)
5 脚接的是比较器 C1 的参考端,正常是 2/3 VCC=3.33 V。若外接 3 V,则上阈值 = 3 V;下阈值仍为 1/3 VCC=1.67 V(C2 参考端没变)。
用途:可以微调定时时间或占空比,也可以做"电压-脉宽转换"。
2. 单稳态电路中,如果输入触发脉冲持续 5 s,输出脉宽会变成 5 s 吗?
不会。输出脉宽只由 R、C 决定(tw=1.1RC)。触发脉冲只要足够"低"且足够"窄"即可,宽度不影响输出。
但要注意:在输出高电平期间,新的触发脉冲无效(这是 555 单稳态的特点,不能"重触发")。
3. 多谐振荡器 R1=1 kΩ,R2=100 kΩ,C=1 μF,求 f 和占空比。
R1+2R2 = 201 kΩ,T = 0.7×201k×1μ ≈ 0.141 s,f ≈ 7.1 Hz。
q = 101/201 ≈ 50.2%——R1 越小,占空比越接近 50%。
4. 施密特触发器的回差为什么能"消抖"?
按键按下/松开时会有毫秒级的机械抖动,电压在阈值附近反复穿越。
若只有一个阈值,每次穿越都翻转 → 输出一串毛刺。
有回差后:电压必须冲过 2/3VCC 才翻低,而且必须掉到 1/3VCC 以下才翻回高。抖动幅度一般小于回差,所以输出只翻转一次。用"迟钝"过滤噪声。
5. 555 的输出为什么不能直接驱动大电流负载(如电机)?
555 输出级只能提供约 100~200 mA 的电流,且输出电压会随负载下降;电机启动电流可达数安培,还会产生反向电动势击穿芯片。
正确做法:555 输出 → 三极管/MOS 管 → 继电器 → 电机,中间加续流二极管。555 只负责"发号施令",不负责"干重活"。
存储器与可编程逻辑:把"真值表"存进芯片
阎石《数字电子技术基础》把"半导体存储器"放在第 5 章(和触发器一起),康华光教材也有专章;但很多学校只讲容量计算、扩展方法、用 ROM 实现组合逻辑这三块。本教程按"考试可考"的范围讲,内部存储单元结构只做了解。
13.1 两大类:ROM 与 RAM
| 类型 | 全称 | 特点 | 典型用途 |
|---|---|---|---|
| ROM | 只读存储器 | 断电不丢数据(非易失),正常工作时只能读 | 存程序、字库、查找表、开机代码 |
| RAM | 随机存取存储器 | 读写都行,断电丢失(易失) | 运行时的数据、缓存、变量 |
| ROM 家族 | 写入方式 | 能改写吗 | 备注 |
|---|---|---|---|
| 掩膜 ROM | 出厂时在制造中"印"进去 | 不能 | 最便宜,量大时用 |
| PROM | 用户用专用设备"烧断熔丝" | 只能烧一次 | 已淘汰 |
| EPROM | 紫外线照射擦除后重写 | 可,但要拆下来照 20 分钟 | 芯片上有石英窗口 |
| EEPROM | 电信号擦写 | 可,按字节擦写 | 可擦写 105 次以上 |
| Flash | 电信号擦写(按块) | 可,速度快、密度高 | U 盘、SSD、手机存储都是它 |
13.2 容量计算:三个数字的关系 高频
1 B(字节)= 8 b(位)。所以 8K×8 b = 64 Kb = 8 KB。
题目说"存储容量 8 KB",意思是有 8×1024×8 = 65536 个存储位,若每字 8 位,则字数是 8192 = 8K,需要 13 根地址线(213=8192)。
字数 = 210 = 1024 = 1K;位数 = 8。
容量 = 1K × 8(常写成 1K×8 位),即 8 Kb = 1 KB。
13.3 ROM 的内部结构:一个"查表机"
ROM 内部只有两部分:
- 地址译码器:把 n 位地址翻译成 2n 条字线(只有一条有效)——这不就是 74LS138 干的事吗?
- 存储矩阵:每条字线与若干位线交叉,交叉点有器件就是 1,没有就是 0。
地址译码器 = 与阵列(产生全部最小项);存储矩阵 = 或阵列(把需要的最小项"或"起来)。
所以任意组合逻辑函数都能用 ROM 实现:把真值表直接"烧"进去即可,地址接输入,数据出输出。不需要化简,不需要门电路。
输入 A、B、Ci → 3 位地址,共 8 个地址。
需要输出 S 和 Co 两位 → 选 8×2 的 ROM。
地址 000~111 对应的内容:
| 地址 ABCi | Co S | 地址 ABCi | Co S |
|---|---|---|---|
| 000 | 0 0 | 100 | 0 1 |
| 001 | 0 1 | 101 | 1 0 |
| 010 | 0 1 | 110 | 1 0 |
| 011 | 1 0 | 111 | 1 1 |
就这么简单——真值表就是"烧录文件"。这也是 FPGA 里"查找表(LUT)"的思想源头。
13.4 存储器扩展:位扩展与字扩展
| 方式 | 解决的问题 | 怎么接 | 例子 |
|---|---|---|---|
| 位扩展 | 字数够、位数不够 | 各片地址线并联、片选并联,数据线拼接成更宽的字 | 8 片 1K×1 → 1K×8 |
| 字扩展 | 位数够、字数不够 | 数据线并联,高位地址经译码器产生片选 | 4 片 1K×8 → 4K×8 |
| 字位同时扩展 | 都不够 | 先位扩展成组,再字扩展成块 | 2K×4 → 8K×8 需 8 片 |
字数:8K ÷ 2K = 4 组(字扩展,需要 2 根高位地址经 2-4 译码器产生片选);
位数:8 ÷ 4 = 2 片并联(位扩展);
总片数 = 4 × 2 = 8 片。
- 地址线够不够:8K 需要 13 根地址线,其中低 11 根接所有芯片(2K=211),高 2 根接译码器产生片选。
- 片选信号极性:译码器输出低有效,而芯片 CS' 也是低有效,直接相连即可;若芯片 CS 高有效,要加反相器。
- 读写信号:RAM 的 WE'、OE' 所有片并联。
13.5 RAM 的两种存储单元
| 类型 | 单元结构 | 需要刷新吗 | 速度 | 集成度 | 用途 |
|---|---|---|---|---|---|
| SRAM(静态) | 6 个 MOS 管组成双稳态(本质是一个触发器) | 不需要 | 快 | 低 | CPU 缓存 |
| DRAM(动态) | 1 个 MOS 管 + 1 个电容,靠电容存电荷 | 需要(电容会漏电,每几 ms 刷新一次) | 较慢 | 高 | 内存条 |
"静态"不是说它不动,而是说不需要刷新就能保持数据。DRAM 的电容只有飞法级(10−15 F),几个毫秒就漏光,所以必须周期性重写。
13.6 可编程逻辑器件(PLD)与 FPGA 超纲·拓展
PLD 家族:PLA(与阵列、或阵列都可编程)→ PAL(只有与阵列可编程)→ GAL(可电擦写)→ CPLD(多个 PAL 块集成)→ FPGA(查找表 + 可编程连线)。
FPGA 的核心是 LUT:一个 4 输入 LUT 就是一块 16×1 的 ROM,你把真值表写进去,它就实现任意 4 变量函数——和例 13-2 用 ROM 实现全加器是同一个思想,只是规模大了几百万倍。
Verilog 一句话示例:assign y = (a & b) | c; —— 描述的是"逻辑关系",而不是"接哪个门",综合工具会自动映射到 LUT 上。这就是"硬件描述语言"的意义:写逻辑,不画电路。
🧪 本章自测
1. 某存储器有 12 根地址线、8 根数据线,容量是多少?
字数 = 212 = 4096 = 4K;容量 = 4K×8 位 = 32 Kb = 4 KB。
2. 用 1K×4 的芯片构成 4K×8,需要几片?地址线怎么分配?
字数 4K/1K = 4 组,位数 8/4 = 2 片并联 → 8 片。
地址线共 12 根:低 10 根接所有芯片(1K=210),高 2 根接 2-4 译码器产生 4 组片选。
3. 为什么 ROM 能实现任意组合逻辑,而 RAM 一般不这么用?
ROM 的内容是固定的查找表,地址=输入、数据=输出,天然就是真值表。
RAM 虽然也能存真值表,但断电就丢,每次上电都要重新写入,而且成本更高、速度未必更快。所以"实现固定逻辑"用 ROM/Flash,"运行时可变的表"才用 RAM。
4. DRAM 为什么要刷新?多久刷一次?
因为数据存在电容上,电容会通过漏电流放电,几毫秒到几十毫秒就会丢失。
所以必须每隔几毫秒把数据"读出来再写回去"(刷新)。刷新操作占用带宽,这也是 DRAM 比 SRAM 慢的原因之一。
5. ROM 的"与阵列"和"或阵列"分别对应什么?
与阵列 = 地址译码器:产生全部最小项(每条字线对应一个地址组合)。
或阵列 = 存储矩阵:把需要的最小项或起来输出。
所以 ROM 的输出就是"若干最小项之和"——标准与或式。
数模与模数转换:数字世界与真实世界的桥
现实世界是连续的(温度、声音、光线),数字电路只认 0/1。要把它们连起来,需要两座桥:DAC(数字→模拟,比如音箱出声)和 ADC(模拟→数字,比如麦克风录音)。
14.1 DAC:数字量变电压
① 权电阻网络型
n 位输入,每位接一个电阻,阻值按 R, 2R, 4R, …, 2n−1R 递增(权重越小,电阻越大)。所有电阻的电流汇入运放求和。
运放反相输入端接成"虚地"(电位≈0 但不相连),所以每位支路的电流 = diVref/Ri,全部流入反馈电阻 Rf,输出电压 = −I总Rf。你只需要记住结论:输出电压与数字量成正比。
缺点:n 位需要 n 种不同阻值的电阻,位数一多,阻值跨度极大(如 12 位要 1 kΩ 到 4 MΩ),集成电路里很难做准。
② R–2R 倒 T 型网络(主流)
只用 R 和 2R 两种阻值,通过梯形网络逐级分流,每级电流减半。集成度高、精度好,是目前绝大多数 DAC 芯片的结构。
D = 128,VO = (5/256)×128 = 2.5 V(正好是满量程的一半)。
若输入 0000 0001,则 VO = 5/256 ≈ 19.5 mV——这就是最小可分辨电压(1 个 LSB)。
DAC 的主要参数
| 参数 | 含义 | 备注 |
|---|---|---|
| 分辨率 | 能分辨的最小电压变化 = 1 LSB | 位数越多分辨率越高 |
| 转换误差 | 实际输出与理论值的偏差(零点误差、增益误差、非线性误差) | 一般要求 ≤ 1/2 LSB |
| 建立时间 | 输入变化到输出稳定所需时间 | 决定最高转换速率 |
| 单调性 | 输入增大时输出不会反而减小 | 闭环控制场合必须单调 |
14.2 ADC:三步走 —— 采样、量化、编码
第一步:采样(要满足采样定理)
电影里汽车加速时,轮子看起来反而在倒转——因为电影每秒只拍 24 帧,采样率不够,把"转得太快"误认成"慢慢倒转"。这就是混叠。
所以 CD 音频采样率定在 44.1 kHz,因为人耳最高听到 20 kHz,44.1 > 2×20 刚好够。
采样保持电路:采样瞬间把电压存到电容上,保持到下一次采样,让 ADC 有足够时间转换。
第二步:量化(把连续值切成台阶)
n 位 ADC 把满量程 Vref 分成 2n 个台阶,每阶 = 1 LSB = Vref/2n。
3.2/5 × 256 = 163.84 → 四舍五入取 164 → 二进制 1010 0100。
1 LSB = 5/256 ≈ 19.5 mV,量化误差 ≤ ±9.8 mV。
如果用"截断"而不是"四舍五入",误差会达到 −1 LSB(总是偏小),精度差一倍。
第三步:编码
把量化后的电平变成二进制码输出。量化 + 编码通常在同一个电路里完成。
14.3 三种主流 ADC 架构
| 类型 | 工作原理 | 速度 | 精度 | 成本/复杂度 | 典型用途 |
|---|---|---|---|---|---|
| 并行比较型(Flash) | 用 2n−1 个比较器一次性比较,直接出码 | 最快(ns 级) | 较低(位数少) | 高(比较器数量指数增长) | 示波器、雷达、视频 |
| 逐次逼近型(SAR) | 像"猜数字":从最高位开始,每次猜一半,比较后决定该位是 0 还是 1,n 次比较出结果 | 中等 | 高 | 中 | 单片机 ADC、通用采集 |
| 双积分型 | 先对输入积分固定时间,再对基准电压反向积分,用"计数值"表示输入大小 | 慢(ms 级) | 很高 | 低 | 数字万用表、称重 |
我心里想一个 0~255 的数,你最多猜 8 次就能猜中:
先猜 128(最高位)——"大了"→ 最高位是 0,范围缩到 0~127;
再猜 64——"小了"→ 第二位是 1,范围 64~127;
再猜 96……每次范围减半,8 次必定命中。
这就是 SAR ADC 的全部逻辑:用一个 DAC 产生"猜测值",用比较器判断大小,逐位确定。所以 SAR ADC 内部一定含一个 DAC。
因为它对输入积分了一整段时间(通常是 20 ms,正好是工频 50 Hz 的一个周期)。50 Hz 干扰在整周期上积分正好抵消为 0,所以万用表在嘈杂环境里依然稳。
代价是慢:一次转换要几十毫秒,只能测慢变量(温度、重量)。
14.4 ADC 的主要参数
| 参数 | 含义 |
|---|---|
| 分辨率 | 位数 n,或 1 LSB 对应的电压 Vref/2n |
| 转换精度 | 实际输出与理想输出的最大偏差,含量化误差、偏移误差、非线性误差 |
| 转换时间 | 从启动到输出稳定所需时间,倒数即最高采样率 |
| 采样率 | 每秒能完成的转换次数(SPS) |
一个 12 位 ADC 的分辨率是 5V/4096 ≈ 1.2 mV,但如果它的非线性误差有 10 LSB,那实际精度只有 10 位左右。
分辨率是"能分多细",精度是"分得准不准"。买 ADC 时两个都要看,别被"16 位"的广告词忽悠。
- DAC:
VO = (D/2n)Vref,分辨率 = 1 LSB =Vref/2n。 - ADC:
D = round(Vin/Vref × 2n),量化误差 ≤ ±1/2 LSB。 - 采样定理
fs ≥ 2fmax,否则混叠。 - 三种 ADC 的速度/精度/成本对比与适用场景。
- R–2R 只用两种阻值,适合集成。
🧪 本章自测
1. 10 位 DAC,Vref=2.5 V,输入 D=512,输出多少?分辨率多少?
VO = (2.5/1024)×512 = 1.25 V;
分辨率 = 1 LSB = 2.5/1024 ≈ 2.44 mV。
2. 12 位 ADC,Vref=4.096 V,输入 1.5 V,输出码是多少?
1.5/4.096 × 4096 = 1500 → 1500 = 0x5DC = 0101 1101 1100。
4.096 V 这个基准是特意选的:4.096/4096 = 1 mV,正好 1 LSB = 1 mV,工程上做起来特别方便。这类"基准电压的讲究"值得记住。
3. 信号最高频率 10 kHz,采样率至少多少?如果只有 12 kHz 会怎样?
至少 20 kHz。若只有 12 kHz,不满足采样定理,会产生混叠:10 kHz 的信号会被错误地识别成 2 kHz(|f − fs|),且无法通过后续滤波恢复。
4. 为什么并行比较型 ADC 的位数一般不超过 8 位?
因为它需要 2n−1 个比较器:8 位要 255 个,10 位要 1023 个,12 位要 4095 个。
比较器占芯片面积、耗电、还有输入电容问题,数量指数增长,所以高位数一般改用逐次逼近型或流水线型。
5. 数字万用表为什么用双积分型 ADC 而不是更快的 SAR?
因为万用表测的是慢变量(电压、电阻、温度),不需要快;但要求高精度、高抗干扰。
双积分型对工频干扰有天然的整周期抵消能力,精度可达 6 位半(20 位以上),正好匹配需求。选型永远看需求,不是越快越好。
总复习:一页纸速查 + 模拟卷
15.1 公式速查表(打印这一节就够)
① 数制与码制
| 进制转换 | 整数:除基取余,倒读;小数:乘基取整,顺读;二↔八用 3 位组,二↔十六用 4 位组 |
| 负数补码 | 补码 = 2n − |N|,或"取反加一";n 位范围 −2n−1 ~ 2n−1−1 |
| 8421BCD | 每 1 位十进制用 4 位二进制;1010~1111 是非法码 |
| 余 3 码 / 2421 | 余 3 = 8421 + 0011;2421 是自补码 |
| 格雷码 | 相邻只差 1 位;二进制→格雷:gi = bi ⊕ bi+1 |
② 逻辑代数
| 基本 | A+A'=1,A·A'=0,A+A=A,A·A=A,A+0=A,A·1=A,A+1=1,A·0=0 |
| 分配律 | A(B+C)=AB+AC;A+BC=(A+B)(A+C) |
| 吸收 / 消因子 | A+AB=A;A+A'B=A+B;AB+AB'=A |
| 冗余项 | AB+A'C+BC=AB+A'C(BC 可删) |
| 摩根 | (AB)'=A'+B';(A+B)'=A'B' |
| 异或 / 同或 | A⊕B=AB'+A'B;A⊙B=(A⊕B)';A⊕A=0,A⊕0=A,A⊕1=A' |
| 三个规则 | 代入(整体替换)、反演(·↔+、0↔1、原↔反,长非号不动)、对偶(只换 ·+ 和 01,变量不动) |
| 标准式 | 最小项:原变量记 1、反变量记 0,十进制数即下标;Y=Σm;Y=ΠM(M 规则相反) |
③ 卡诺图
| 圈组规则 | 只能圈 2k 个(1/2/4/8/16);圈越大越好、圈数越少越好;每 1 至少进一圈;相邻包括上下、左右、四角卷绕 |
| 合并结果 | 圈 2k 个 → 消去 k 个变量;保留圈内始终不变的变量(恒 1 取原变量,恒 0 取反变量) |
| 无关项 | 记 d 或 ×;能帮我圈大就当 1,用不上就当 0;不能把 0 当 1 圈 |
| 与非门实现 | 与或式 → 双非号 → 摩根 → 与非-与非;门数 = 与项数 + 1 |
④ 门电路
| 二极管 | 正偏 0.7 V(硅),反偏开路;二极管门有 0.7 V 电平偏移 |
| 三极管开关 | 截止:VBE<0.5 V;饱和:IB ≥ ICS/β,VCE(sat)≈0.3 V |
| MOS 开关 | NMOS:VGS>VTN 导通(1 通 0 断);PMOS:VGS<VTP 导通(0 通 1 断) |
| TTL 参数 | VOH=2.4、VOL=0.4、VIH=2.0、VIL=0.8、VT≈1.4 V |
| 噪声容限 | VNH=VOH−VIH;VNL=VIL−VOL;取较小值 |
| 扇出 | N = min(IOH/IIH, IOL/IIL) |
| CMOS 注意 | 静态功耗≈0;输入绝不能悬空;不用的输入接 VDD 或地;注意防静电 |
| OC / 三态 | OC 门外接上拉电阻可线与;三态门有高阻态 Z,用于总线 |
⑤ 触发器
| 特性方程 | SR:Q*=S+R'Q(SR=0);D:Q*=D;JK:Q*=JQ'+K'Q;T:Q*=T⊕Q |
| SR 禁止态 | 或非门型 S=R=1;与非门型 S'=R'=0(此时 Q=Q̄,破坏互补) |
| 空翻 | 电平触发时 CP 有效期间输入变几次、输出翻几次;主从/边沿结构解决 |
| 边沿 | 74LS74 上升沿 D;74LS112 下降沿 JK;符号上小三角表示边沿触发 |
| 激励表 | D:D=Q*;JK:0→0 取 0×,0→1 取 1×,1→0 取 ×1,1→1 取 ×0;T:T=Q⊕Q* |
| 异步端 | RD' 清 0、SD' 置 1,优先于时钟,低有效 |
⑥ 时序逻辑
| 分析五步 | 驱动方程 → 状态方程 → 输出方程 → 状态转换表 → 状态图 + 功能 |
| 设计七步 | 状态图 → 化简 → 编码 → 状态表 → 驱动方程 → 输出方程+电路 → 自启动检查 |
| Mealy / Moore | Mealy 输出=f(状态,输入);Moore 输出=f(状态) |
| 自启动 | 无效状态的次态能否在有限步进入主循环;能 → 可自启动 |
| 161 功能 | 异步清零(低有效,立即)、同步置数(低有效,等时钟)、ENT/ENP 都 1 才计数 |
| 任意进制 | 异步清零译码 N;同步清零/置数译码 N−1 |
| 级联 | 总模 = 各片模之积;同步级联共用 CP,RCO 接高位使能 |
| 194 模式 | S1S0:00 保持 / 01 右移 / 10 左移 / 11 并行置数 |
| 环形 / 扭环 | n 位环形 → n 个状态;n 位扭环 → 2n 个状态(能自启动) |
⑦ 555 与转换器
| RC 三要素 | uC(t)=u(∞)+[u(0+)−u(∞)]e−t/τ,τ=RC;1τ→63.2%,3τ→95%,5τ→99.3% |
| 555 阈值 | TH>2/3VCC 复位(输出低);TR'<1/3VCC 置位(输出高);TH 优先 |
| 单稳态 | tw=1.1RC |
| 多谐振荡 | T=0.7(R1+2R2)C,f≈1.43/[(R1+2R2)C],q=(R1+R2)/(R1+2R2) |
| 施密特 | 回差 ΔVT=(1/3)VCC |
| 存储器容量 | 容量 = 2n × m(n 地址线,m 数据线);1 B = 8 b |
| DAC | VO=(D/2n)Vref;分辨率 = Vref/2n |
| ADC | D=round(Vin/Vref×2n);量化误差 ≤ ±1/2 LSB |
| 采样定理 | fs ≥ 2fmax,否则混叠 |
15.2 芯片速查(记这 10 个就够)
| 型号 | 功能 | 关键引脚 / 要点 |
|---|---|---|
| 74LS00 | 四 2 输入与非门 | 最基础,实验必备 |
| 74LS138 | 3–8 线译码器 | 输出低有效;G1=1、G2A'=G2B'=0 才工作;产生全部最小项 |
| 74LS148 | 8–3 线优先编码器 | 输入输出都低有效,输出是反码;EI'、GS'、EO' 用于级联 |
| 74LS151 | 8 选 1 数据选择器 | 地址 CBA;S'=0 工作;Y=ΣmiDi |
| 74LS283 | 4 位超前进位加法器 | C0 进位输入;B 取反 + C0=1 可做减法 |
| 74LS85 | 4 位数值比较器 | 单块用时级联输入接 IA=B=1、其余 0 |
| 74LS74 | 双 D 触发器 | 上升沿触发;有 RD'、SD' 异步端 |
| 74LS112 | 双 JK 触发器 | 下降沿触发;J=K=1 翻转 |
| 74LS161 | 4 位同步二进制计数器 | 异步清零、同步置数;ENT/ENP 都 1 才计数 |
| 74LS194 | 4 位双向移位寄存器 | S1S0 四种模式;可串↔并转换 |
15.3 模拟卷(30 题,闭卷 90 分钟)
建议先自己在纸上写答案,再点开对照。做错的题,把题号抄到 15.4 的错题清单里。
一、选择与填空(每题 2 分,共 30 分)
1. 十进制数 45 的 8421BCD 码是( )
0100 0101。4→0100,5→0101。
2. 化简 Y = A + A'B = ( )
Y = A + B。这是最常考的变形,直接背。
3. 四变量卡诺图最多能圈( )个格子
16(全部为 1 时圈成一个整图)。此时 Y=1。
4. CMOS 门静态功耗几乎为零,原因是( )
静态时 PMOS 与 NMOS 总有一只截止,电源到地之间没有直通路径,只有 nA 级漏电流。
5. 两个普通 TTL 与非门的输出能否直接相连?( )
不能。一个输出高、一个输出低时电源对地短路,会烧芯片。要线与必须用 OC 门。
6. JK 触发器 J=K=1 时,功能是( )
翻转(T 功能)。代入 J=K=1:Q* = 1·Q' + 0·Q = Q',即每个时钟边沿都取反,输出频率正好是时钟的一半(二分频)。
7. 4 位二进制计数器最多有( )个状态
16(24),计数范围 0000~1111。
8. 555 单稳态的输出脉宽公式是( )
tw=1.1RC(由 RC·ln3 得来)。
9. 8 位 ADC,Vref=5 V,1 个 LSB 等于( )
≈19.5 mV(5/256)。
10. 存储容量 2K×8,需要( )根地址线
11 根(211=2048=2K)。数据线 8 根。
11. (1101.1)2 = ( )10
13.5(8+4+1+0.5)。
12. −13 的 8 位补码是( )
13 = 0000 1101 → 取反 1111 0010 → 加 1 → 1111 0011。
13. 74LS138 有( )个输出端,输出(高/低)有效
8 个输出,低电平有效。
14. 用 74LS161 构成模 6 计数器,反馈清零法应译码状态( )
6 = 0110。异步清零:一出现就回 0,所以译码 N。
15. 采样定理要求采样频率 fs ≥ ( )
2fmax,fmax 是信号的最高频率分量。
二、化简与分析(每题 6 分,共 42 分)
16. 用公式法化简 Y = AB + AB'C + A'B
先看前两项:AB + AB'C = A(B + B'C) = A(B+C) = AB + AC;
再加 A'B:AB + A'B = B(A+A') = B;
所以 Y = B + AC。
17. 用卡诺图化简 Y = Σm(0,2,5,7,8,10,13,15)
分组:m0、m2、m8、m10 是四个角 → B'D';
m5、m7、m13、m15 是中间 2×2 → BD;
所以 Y = B'D' + BD = B⊙D(B 与 D 同或)。
18. 化简 Y = A'B'C + A'BC + AB'C + ABC
提取 C:C(A'B' + A'B + AB' + AB) = C·1 = C。
这 4 项正好是全体最小项中含 C=1 的那 4 个,所以结果就是 C。
19. 已知 D1 = Q0'、D0 = Q1,写出状态方程与状态表,说明功能。
状态方程:Q1* = Q0',Q0* = Q1。
状态表:00→10,10→11,11→01,01→00,形成 4 状态循环。
功能:模 4 计数器(按 00→10→11→01 的顺序循环,是一种格雷码顺序的计数器)。
20. 74LS161 接成 CLR' = (Q2Q1)',计数到多少时清零?模是多少?
当 Q2Q1=11 时 CLR'=0,即计数到 1100 = 12 时立刻清零。
稳定状态为 0~11,共 12 个 → 模 12 计数器。
21. 555 多谐振荡器 R1=5.1 kΩ、R2=10 kΩ、C=0.01 μF,求频率与占空比。
R1+2R2 = 25.1 kΩ;
T = 0.7 × 25.1k × 0.01μ = 1.757×10−4 s ≈ 176 μs;
f ≈ 1/176μs ≈ 5.7 kHz;
q = (5.1+10)/25.1 = 60.2%。
22. 判断 Y = A'B + AB' 电路是否存在竞争冒险,若有请消除。
结论:不存在静态逻辑冒险。
判断两种方法都要会:
① 代数法:依次令其他变量取定值,看能否化成 A+A' 或 A·A':
B=1 → Y = A'(只剩一项,无从冒险)
B=0 → Y = A(只剩一项)
A=1 → Y = B'(只剩一项)
A=0 → Y = B(只剩一项)
始终凑不出 A+A',所以没有静态冒险。
② 卡诺图法:A'B 与 AB' 分别占 m1(01)、m2(10),两者相隔两个变量、并不相邻,卡诺图上没有"相切"的两个圈 → 无冒险。
对照:真正会出现冒险的是 Y = AB + A'C 这类式子——令 B=C=1 得 Y = A + A',这就是经典例子。判别口诀:能否让同一个变量以"原变量"和"反变量"分别出现在两个"接力"的与项中。
三、设计题(每题 8 分,共 24 分)
23. 用 74LS138 和与非门实现 F(A,B,C) = Σm(0,3,5,6)
地址 A→A2、B→A1、C→A0;使能 G1=1、G2A'=G2B'=0;
F = (Y0'·Y3'·Y5'·Y6')',用一个四输入与非门。
24. 用 74LS161 设计模 7 计数器(画出接线要点)
异步清零法:译码状态 7 = 0111,CLR' = (Q2Q1Q0)'(三输入与非门);
LOAD'=1,ENT=ENP=1,D3~D0 随意(不用置数)。
稳定状态 0000~0110,共 7 个 → 模 7。
25. 设计一个"四变量输入中 1 的个数为偶数时输出 1"的电路(用异或门)。
偶校验:Y = A⊕B⊕C⊕D。
验证:0000 有 0 个 1(偶数)→ Y=0?
注意定义:若"0 个 1"算偶数,则 Y 应为 1,此时 Y = (A⊕B⊕C⊕D)'。考试务必看清题目对"0 个 1"的约定,两种答案都可能对,取决于定义。
一般约定:偶校验位使"1 的总个数为偶数",所以 Y = (A⊕B⊕C⊕D)' 更常见。
四、计算题(每题 5 分,共 20 分)
26. 已知 VOH=2.4 V、VIH=2.0 V、VOL=0.4 V、VIL=0.8 V,求噪声容限。
VNH = 2.4−2.0 = 0.4 V;VNL = 0.8−0.4 = 0.4 V。
该接口的噪声容限取 0.4 V。
27. 用 2K×4 的芯片构成 8K×8 存储器,需要几片?
字扩展 8K/2K = 4 组;位扩展 8/4 = 2 片并联;共 8 片。
地址线 13 根:低 11 根共用,高 2 根接 2-4 译码器产生片选。
28. 10 位 DAC,Vref=5 V,输入 D=307,输出电压是多少?
VO = (5/1024)×307 = 1535/1024 ≈ 1.499 V。
29. 12 位 ADC,Vref=4.096 V,输入 2.048 V,输出码是多少?
D = 2.048/4.096 × 4096 = 2048 → 1000 0000 0000(0x800)。
正好是半量程,对应最高位为 1、其余为 0。
30. 用 JK 触发器设计模 5 计数器,写出关键步骤(不必画完整电路)。
① 需 3 个触发器(22=4 < 5),状态 000~100 共 5 个,101/110/111 为无效状态;
② 状态图:000→001→010→011→100→000;
③ 列状态表 + 激励表,用卡诺图求 J2K2、J1K1、J0K0(无效状态当无关项 d);
④ 画电路;
⑤ 检查自启动:把 101、110、111 代入驱动方程,确认能回到 000~100 的循环。
若不能自启动,需修改无效状态的次态(把 d 取成能回主循环的值)。
15.4 错题回炉清单
把做错的题号对应的知识点勾掉,回看对应章节。这张表就是你上考场前的最后一张清单。
| 如果你错在…… | 说明你该回看 |
|---|---|
| 进制转换、补码、BCD、格雷码 | 第 1 章——这是送分题,不能错 |
| 公式化简、摩根、最小项 | 第 2 章,重点练 A+A'B 和冗余项 |
| 卡诺图漏圈、跨边界、无关项 | 第 3 章,画 10 张 4 变量图 |
| 三极管饱和、MOS 导通条件 | 第 4 章,只需记"开关"结论 |
| 噪声容限、扇出、OC/三态 | 第 5 章,公式套一遍就够 |
| 分析题写不出功能、设计题不会抽象 | 第 6 章,背五步/四步 |
| 138/151 实现函数、加法器减法 | 第 7 章,动手画接线 |
| 触发器波形画错、空翻、边沿 | 第 8 章,画 10 组波形 |
| 状态表漏项、自启动判断 | 第 9 章,把 2n 个状态写全 |
| 时序设计驱动方程不会求 | 第 10 章,照抄例题走一遍 |
| 任意进制 N / N−1 搞混 | 第 11 章,记"异步用 N,同步用 N−1" |
| 555 公式记错、单位算错 | 第 12 章,把三个公式写 20 遍 |
| 容量计算、扩展片数 | 第 13 章,注意 b 与 B |
| 分辨率、量化误差、采样定理 | 第 14 章,套公式即可 |
15.5 考场策略(120 分钟卷)
- 0–15 分钟:选择填空(送分题先拿,稳住心态)。
- 15–40 分钟:化简与卡诺图(限时,卡住就跳)。
- 40–80 分钟:分析题 + 设计题(占分最重,先写步骤,能写多少写多少)。
- 80–105 分钟:计算题(555、存储器、AD/DA)。
- 105–120 分钟:检查——重点看"低有效"和"上升沿/下降沿"有没有看错。
- 所有"低有效"信号,我有没有把 0 当成"有效"来用?
- 触发器是上升沿还是下降沿?波形对齐了吗?
- 卡诺图有没有漏掉跨边界的 1?有没有圈 3 个/5 个格子?
- 设计题写"自启动检查"了吗?
- 计算题单位换算了吗(μF→F、kHz→Hz)?
- 状态图箭头上的"输入/输出"标了吗?
附录:符号对照 · 常见疑问 · 学习资源
A.1 逻辑门符号对照
国内教材多用国标(GB)符号(形状符号),国际标准用 IEC/IEEE 矩形符号,工厂图纸和国外教材用后者多。考试如果画图,一般接受形状符号。
| 门 | 形状符号(国标) | 矩形符号(IEC/IEEE) | 表达式 |
|---|---|---|---|
| 与门 | D 形(半圆头) | 框内标 & | AB |
| 或门 | 盾形(弧形底) | 框内标 ≥1 | A+B |
| 非门 | 三角形 + 输出小圆圈 | 框内标 1 + 输出小圆圈 | A' |
| 与非门 | D 形 + 输出小圆圈 | & + 小圆圈 | (AB)' |
| 或非门 | 盾形 + 输出小圆圈 | ≥1 + 小圆圈 | (A+B)' |
| 异或门 | 盾形 + 输入端双弧线 | =1 | A⊕B |
| 同或门 | 异或门 + 输出小圆圈 | =1 + 小圆圈 | A⊙B |
| 三态门 | 普通门 + 下方使能端 | 框内标 ▽(或 EN 标注) | 输出可为 Z |
小圆圈 = 取反。看到输入端的小圆圈,说明该端低有效;看到输出端的小圆圈,说明输出取反。触发器时钟端的小三角表示边沿触发,加小圆圈表示下降沿。
A.2 常见疑问 12 问
Q1:为什么数字电路一定要用二进制,不能用十进制?
因为物理上最容易做出"两个稳定状态"的器件:开关通/断、电压高/低、磁化方向正/反。要做出 10 个能稳定区分、抗干扰、又便宜的状态,几乎不可能。二进制不是"更先进",而是"更便宜可靠"。
Q2:这么多芯片型号要全背下来吗?
不用。考试常考的只有 6~10 个(见 15.2 芯片速查)。关键是掌握"读芯片资料"的能力:看引脚名、看有效电平、看功能表。会读手册比背型号有用一百倍。
Q3:卡诺图超过 4 个变量怎么办?
5 变量用两张 4×4 图(E=0 和 E=1),对应位置可跨图合并;6 变量用四张。再多就不适合手算了,用 Q–M 列表法或计算机工具。
Q4:画触发器波形总出错,有什么诀窍?
三步:① 用竖线标出所有有效边沿;② 在每条竖线处只看那一瞬间的输入;③ 从这条竖线开始画新电平,直到下一条竖线。
千万不要"跟着输入曲线画"——触发器的输出是阶梯波,不是输入曲线的复制品。
Q5:为什么 CMOS 输入不能悬空,TTL 却可以?
TTL 输入内部有下拉/上拉结构,悬空时相当于接高电平(1),行为可预测。
CMOS 输入阻抗高达 1010 Ω,悬空时电荷无处泄漏,电位由干扰决定,可能停在 VDD/2,导致两管同时导通、功耗剧增甚至击穿。所以 CMOS 不用的输入必须接固定电平。
Q6:空翻和亚稳态是一回事吗?
不是。
• 空翻:电平触发期间输入变化导致输出多次翻转,是逻辑层面的问题,用边沿触发解决。
• 亚稳态:触发器输出停在高低之间的中间电压,持续一段时间后才随机倒向一边,是物理层面的问题(建立/保持时间被违反时出现),用"多级同步"降低概率,但无法彻底消除。
Q7:时序设计一定要用 JK 触发器吗?
不一定。题目指定就用指定的;没指定时,JK 通常更省门(激励表里"×"多),D 更简单直接(D=Q*)。现代 FPGA 内部只有 D 触发器。
Q8:反馈清零时,状态 N 只出现一瞬间,会不会被后级电路"看到"?
会,这就是隐患。异步清零产生的窄脉冲可能被后级计数器/锁存器捕获,导致误动作。
工程上更推荐反馈置数法(同步、无毛刺)。考试如果问"哪种更好",答"反馈置数法,因为消除了清零瞬间的毛刺"。
Q9:555 的输出能直接接单片机吗?
多数情况可以(555 输出接近 0/VCC,TTL/CMOS 电平兼容),但要注意:
• 555 输出电流有限(约 200 mA),不要直接驱动电机/继电器;
• 若单片机是 3.3 V 系统,5 V 的 555 输出可能超压,需要分压或电平转换。
Q10:这门课和单片机、FPGA 是什么关系?
这门课讲的是"底层零件":门、触发器、计数器。
• 单片机:把 CPU + 存储器 + 定时器 + IO 集成在一颗芯片里,用软件实现逻辑。
• FPGA:用大量 LUT(查找表)+ 可编程连线,用硬件描述语言"配置"逻辑。
学完这门课,你才能理解为什么单片机的一个定时器能分频、为什么 FPGA 的 LUT 能实现任意函数。它是所有后续课程的共同地基。
Q11:实验课最容易踩什么坑?
① 芯片方向插反(缺口朝左/朝上,看缺口或圆点);② 电源接反或超压(TTL 只能 5 V,CMOS 看型号);③ CMOS 输入悬空导致发烫;④ 没接共地(两块板子不共地,信号全乱);⑤ LED 不串限流电阻直接烧。上电前先检查电源和地,能省一半返工。
Q12:期末只有一周,怎么复习最有效?
按分值从高到低:卡诺图 → 组合设计 → 触发器波形 → 时序分析 → 任意进制计数器 → 555 计算。
每块只做真题,做完对照答案找"步骤缺哪一步",而不是"结果对不对"。这门课是步骤分课,写全步骤比算出答案更重要。
A.3 学习资源
| 类型 | 推荐 | 说明 |
|---|---|---|
| 教材 | 阎石《数字电子技术基础》(第六版,高教社) | 国内最主流,本教程章节顺序基本对应它 |
| 教材 | 康华光《电子技术基础·数字部分》 | 另一主流,例子更多,偏工程 |
| 习题 | 教材配套习题解答 + 历年期末真题 | 真题 > 任何习题集 |
| 仿真 | Logisim(免费,最适合入门) | 拖门电路、看波形,不用接线,强烈推荐 |
| 仿真 | Multisim / Proteus | 更接近真实器件,可做 555、ADC 仿真 |
| 数据手册 | 74 系列 datasheet(TI、NXP 官网) | 学会看功能表和时序图,做课设必备 |
| 视频 | 各大平台"数字电子技术基础"公开课 | 建议只看卡诺图、触发器、时序三部分 |
数字电路看起来符号多、芯片多,但它其实只有三个核心思想:
① 用 0/1 编码世界;② 用布尔代数化简逻辑;③ 用触发器保存状态。
剩下的所有内容——卡诺图、138、151、161、555——都是这三条思想的工程实现。
两周够你把这门课"学会",但要"学透",得动手搭一次电路、烧一次芯片。祝顺利。