考研数电·零基础讲义 · 第 04 讲(下)|无关项、多输出函数与逻辑形式变换
学完这一讲,你能用无关项把函数化得更简(完整做出 2026 回忆题第 5 题的化简部分),会在多个输出之间找"共用项"省门,并能把最简与或式改写成与非-与非、或非-或非、与或非形式。预计用时 2.5 小时。
本讲地图#
- 无关项:约束项和任意项是什么,∑d(⋯)怎么读,卡诺图里的 × 怎么用。
- 真题完整例题:2026 回忆题第 5 题前半部分Y=∑m(1,3,5,8,9,13)+∑d(7,10,11,14,15)的化简,结果Y=AB+D。
- 多输出函数化简:几个输出一起考虑,找共用的乘积项,让整个电路的门最少。
- 逻辑形式变换:与或 → 与非-与非、或非-或非、与或非,为"只用某一种门实现"做准备。
- 华师怎么考:带无关项的卡诺图化简是高频基本功;化简结果往往紧接着要求"用某种器件实现"(如 2026 第 5 题后半用 74HC151 实现,见第 10 讲)。
- 教材对应:阎石《数字电子技术基础》第六版 第 2 章 2.7、2.8、2.9 节。
前置知识#
- 最小项与∑m、最大项(见第 03 讲)。
- 卡诺图的画法、相邻性、圈 1 / 圈 0 规则(见第 04 讲中)。
- 摩根定理(见第 02 讲下);与非门、或非门的符号与功能(见第 02 讲上)。
- 8421BCD 码(见第 01 讲下)。
一、无关项:为什么有些格子"填 1 填 0 都行"#
大白话#
想象你在设计一个"一位十进制数"的显示电路,输入是 4 位 8421BCD 码ABCD。4 位二进制能表示 0000~1111 共 16 种组合,但 BCD 码只用 0000~1001(0~9)这 10 种,1010~1111 这 6 种组合根本不会出现。
既然它们不会出现,那电路在这 6 种输入下输出 1 还是 0,谁也不在乎。这就给了我们"自由裁量权":在化简时,这些格子想当 1 就当 1,想当 0 就当 0,怎么让式子更简就怎么来。这类最小项就叫无关项。
正式定义#
无关项分两种:
- 约束项:由于实际条件的限制,输入变量的某些取值组合根本不会出现,这些组合对应的最小项叫约束项。例如 BCD 码里的 1010~1111;又如一个水箱有上、中、下三个水位检测点,"上面检测到有水、下面却没水"在物理上不可能出现。
- 任意项:这些输入组合可能出现,但出现时输出是 1 还是 0 都不影响电路功能(比如此时电路已被另外的保护措施切断)。
约束项和任意项统称为无关项(don't care)。"无关"的意思是:把它写进逻辑式也行,不写也行,对电路的实际功能没有影响。
- 约束条件:因为约束项对应的输入不会出现,它的值恒为 0,所以可以写成"约束项之和=0"。例如 BCD 码的约束条件可以写成∑m(10,11,12,13,14,15)=0,化简后就是AB+AC=0。
- 带无关项的函数常写成:
Y=∑m(⋯)+∑d(⋯)
其中∑m里是必须为 1 的最小项,∑d里是无关项(d取自 don't care)。有的书也写成+d(⋯),意思一样。没出现在两个括号里的编号,就是必须为 0 的。
- 卡诺图里:无关项的格子填 ×(有的书写ϕ或 d)。
⚠️ 易错点:∑d里的编号不是"一定为 1"。它是"待定",由化简需要决定。
二、无关项在卡诺图里怎么用#
- 把 × 当成 1 还是当成 0,以"圈更大、圈更少"为准。
- 只有当 × 能帮助某个 1 所在的圈变大时,才把它圈进去;不能为了圈 × 而单独画一个只有 × 的圈(那等于平白多出一个乘积项)。
- 不要求所有 × 都被用上。没圈进去的 × 就当作 0。
- 圈的其他规则不变:2k格、矩形、能卷起来。
入门例题#
例 1:化简Y(A,B,C)=∑m(0,1,4)+∑d(2,5)。
解:填卡诺图(1 必须为 1,× 为无关项):
| A \ BC |
00 |
01 |
11 |
10 |
| 0 |
1(m0) |
1(m1) |
0 |
×(m2) |
| 1 |
1(m4) |
×(m5) |
0 |
0 |
- 不用无关项:m0、m1圈成AB,m0、m4圈成BC,得Y=AB+BC,2 项。
- 把m5当 1:m0、m1、m4、m5组成 2×2 的 4 格圈,B始终为 0 → B。m2用不上,当 0。
Y=B
一个 × 就让结果从 2 项变成 1 项,而且只剩一个变量,连门都不用(只要一个反相器)。
例 2:BCD 码判断"大于等于 5"#
输入ABCD为 8421BCD 码,当它表示的十进制数⩾5时输出Y=1。求Y的最简与或式。
解:
第 1 步:确定三类格子。
- 必须为 1:5、6、7、8、9;
- 必须为 0:0、1、2、3、4;
- 无关项:10~15(BCD 码中不会出现)。
所以Y=∑m(5,6,7,8,9)+∑d(10,11,12,13,14,15)。
第 2 步:填卡诺图。
| AB \ CD |
00 |
01 |
11 |
10 |
| 00 |
0 |
0 |
0 |
0 |
| 01 |
0 |
1 |
1 |
1 |
| 11 |
× |
× |
× |
× |
| 10 |
1 |
1 |
× |
× |
第 3 步:圈。
- m8、m9:把下两行的 × 全当 1,下两行 8 格组成一个大圈,A始终为 1 → A;
- m5、m7:和下面的m13、m15(×)组成 2×2 圈,B=1、D=1 → BD;
- m6、m7:和下面的m14、m15(×)组成 2×2 圈,B=1、C=1 → BC。
Y=A+BD+BC
对比:如果不用无关项,结果是Y=ABD+ABC+ABC,3 项、9 个因子;用了无关项后 3 项、只有 5 个因子。
⚠️ 易错点:化简结果在无关项的输入下输出什么都可以,但在非无关项的输入下必须和题意完全一致。验算时只检查非无关项那些行。
例 2′:水箱水位控制(约束项的典型来源)#
一个水箱里从下到上装了三个水位检测元件A、B、C(A最低,C最高)。水面高过某个检测元件,它就输出 1,否则输出 0。水箱由大泵和小泵供水,控制要求:
- 水面高过C(ABC=111):两台泵都停;
- 水面在B、C之间(ABC=110):只开小泵;
- 水面在A、B之间(ABC=100):只开大泵;
- 水面低于A(ABC=000):两台泵都开。
用YL=1表示开大泵、YS=1表示开小泵,求最简表达式。
解:
第 1 步:找出不可能出现的输入。 水是从下往上涨的,不可能"上面的检测点有水、下面的没水"。所以ABC只可能是 000、100、110、111 四种;001、010、011、101 这四种永远不会出现,它们就是约束项。约束条件可以写成
ABC+ABC+ABC+ABC=0
化简后就是AB+BC=0。
第 2 步:写出带无关项的函数。
YL=∑m(0,4)+∑d(1,2,3,5),YS=∑m(0,6)+∑d(1,2,3,5)
第 3 步:卡诺图化简。
- YL:m0、m4和 ×1、×5 组成 2×2 圈(B=0)→ YL=B;
- YS:m0和 ×1、×3、×2 组成第一行 4 格圈(A=0)→ A;m6和 ×2 组成 2 格圈(B=1、C=0)→ BC。所以YS=A+BC。
第 4 步:回到实际情况检验。 在四种真实状态下:000 时YL=1、YS=1;100 时YL=1、YS=0;110 时YL=0、YS=1;111 时YL=0、YS=0。和控制要求完全一致。
如果不用约束项,YL=BC,YS=ABC+ABC,明显更复杂。这个例子说明:题目里的"不可能出现"四个字,就是在送你无关项。
三、真题完整例题:2026 回忆题第 5 题(化简部分)#
2026 回忆题第 5 题:化简Y=∑m(1,3,5,8,9,13)+∑d(7,10,11,14,15),用一片 8 选 1 数据选择器 74HC151 实现。
这一讲先完成化简部分;用 74HC151 实现的部分在第 10 讲。
第 1 步:读题,分清三类格子#
题目没写变量,按惯例四变量记为Y(A,B,C,D),A为最高位。
- 必须为 1(∑m):1、3、5、8、9、13;
- 无关项(∑d):7、10、11、14、15;
- 必须为 0(其余):0、2、4、6、12。
数一数:6+5+5=16,正好是全部 16 个最小项,没有漏。
第 2 步:填卡诺图#
| AB \ CD |
00 |
01 |
11 |
10 |
| 00 |
0(m0) |
1(m1) |
1(m3) |
0(m2) |
| 01 |
0(m4) |
1(m5) |
×(m7) |
0(m6) |
| 11 |
0(m12) |
1(m13) |
×(m15) |
×(m14) |
| 10 |
1(m8) |
1(m9) |
×(m11) |
×(m10) |
第 3 步:画圈#
图 1:2026 回忆题第 5 题的卡诺图。蓝圈利用 ×7、×15、×11 组成 8 格大圈得D,橙圈利用 ×11、×10 组成 4 格圈得AB,×14 不用,当 0(动画循环播放)
① 先看中间两列(CD=01、11,也就是D=1的两列)。 这 8 格里:m1、m3、m5、m13、m9是 1,m7、m15、m11是 ×。把这三个 × 都当成 1,8 格就全是 1,组成一个 8 格大圈。
读圈:圈内A变、B变、C变,只有D始终为 1 → 这个圈是D。
一下子就把m1、m3、m5、m9、m13五个 1 全包了。
② 还剩m8没圈。 m8在左下角(AB=10、CD=00),它的邻居:
- 右边m9(1);
- 上边m12(0)——不能用;
- 下边(卷起来)m0(0)——不能用;
- 左边(卷起来)m10(×)。
能让m8的圈最大的方法:把整个最下面一行m8、m9、m11、m10圈起来(m11、m10两个 × 当 1),4 格圈。
读圈:A=1、B=0始终不变,C、D都在变 → AB。
能不能更大?如果想要 8 格(比如下两行),就得把m12圈进来,而m12必须为 0,不行。如果想圈m8、m9、m12、m13(AC),同样因为m12=0不行。所以AB就是包含m8的最大圈。
③ 检查。 所有 1 都已圈到;两个圈都不多余(D圈独占m1等,AB圈独占m8)。m14没被任何圈用到,就当作 0。
第 4 步:写结果#
Y=AB+D
第 5 步:验算(穷举真值表)#
把 16 行全部列出来,看AB+D在"必须为 1"和"必须为 0"的行上是否都对:
| 编号 |
ABCD |
题目要求 |
AB |
D |
AB+D |
是否符合 |
| 0 |
0000 |
0 |
0 |
0 |
0 |
✓ |
| 1 |
0001 |
1 |
0 |
1 |
1 |
✓ |
| 2 |
0010 |
0 |
0 |
0 |
0 |
✓ |
| 3 |
0011 |
1 |
0 |
1 |
1 |
✓ |
| 4 |
0100 |
0 |
0 |
0 |
0 |
✓ |
| 5 |
0101 |
1 |
0 |
1 |
1 |
✓ |
| 6 |
0110 |
0 |
0 |
0 |
0 |
✓ |
| 7 |
0111 |
× |
0 |
1 |
1 |
无关 |
| 8 |
1000 |
1 |
1 |
0 |
1 |
✓ |
| 9 |
1001 |
1 |
1 |
1 |
1 |
✓ |
| 10 |
1010 |
× |
1 |
0 |
1 |
无关 |
| 11 |
1011 |
× |
1 |
1 |
1 |
无关 |
| 12 |
1100 |
0 |
0 |
0 |
0 |
✓ |
| 13 |
1101 |
1 |
0 |
1 |
1 |
✓ |
| 14 |
1110 |
× |
0 |
0 |
0 |
无关 |
| 15 |
1111 |
× |
0 |
1 |
1 |
无关 |
11 个确定的行全部符合。从表上还能看出:化简结果实际上把 7、10、11、15 四个无关项"用成了 1",把 14 "用成了 0",和卡诺图上的圈法一致。(本题已用程序穷举核对,并确认AB+D是唯一的最简与或式。)
对比:如果不用无关项#
把 × 全当 0,卡诺图化简的结果是
Y=CD+ABC+ABD
3 项、8 个因子。用了无关项后只有 2 项、3 个因子,电路简单得多。这就是题目给出∑d的用意——看到∑d,一定要想着利用它。
预告:后半问怎么做#
题目后半要求"用一片 8 选 1 数据选择器 74HC151 实现"。74HC151 有 3 个地址输入端和 8 个数据输入端,可以直接实现任何 3 变量函数;4 变量函数则要选 3 个变量作地址,把第 4 个变量(或 0、1)接到数据端。具体怎么接、为什么能这样接,第 10 讲会以这道题为例完整讲解。
⚠️ 易错点:
- 忘了利用无关项,结果虽然逻辑上对,但不是最简,化简题会扣分。
- 把m14这类"用不上的 ×"也硬圈进去,导致多出乘积项。
- 把∑d的编号当成必须为 1 写进答案的∑m里。
四、多输出逻辑函数的化简#
大白话#
前面都是"一个输出"的电路。实际电路常常有好几个输出,比如同一组输入,既要驱动指示灯Y1,又要驱动蜂鸣器Y2。
如果把每个输出各自化成最简,再分别画电路,可能会出现浪费:其实有某个与门的输出可以同时送给两个或门用。就像两家人各自开车去同一个地方,不如拼一辆车。所以多输出化简的目标是:整个电路的门总数最少、总输入端最少,而不是每个输出单独最简。
- 先把每个输出单独画卡诺图、单独化简,作为参考;
- 对比各输出的卡诺图,找同时属于两个(或多个)输出的 1,看能不能用一个公共的乘积项(共用项)去覆盖它们;
- 比较"各自最简"和"利用共用项"两种方案的门数和输入端数,选省的那个。
例 3#
用与门和或门实现下面两个输出,要求门的总数最少:
Y1(A,B,C)=∑m(0,5),Y2(A,B,C)=∑m(1,3,5)
解:
方案一:各自最简。
- Y1的两个 1(m0=000、m5=101)不相邻,无法合并:Y1=ABC+ABC。
- Y2:m1、m3 → AC;m1、m5 → BC。Y2=AC+BC。
一共需要 4 个不同的与门(ABC、ABC、AC、BC)加 2 个或门。
方案二:利用共用项。
注意m5(ABC)同时是Y1和Y2的 1。Y1中ABC这个与门反正要做,那Y2也可以直接借用它来覆盖m5,于是Y2只需再用AC覆盖m1、m3:
Y1=ABC+ABC,Y2=AC+ABC
单看Y2=AC+ABC并不是最简(ABC比BC多一个因子),但从整体看:
| 方案 |
与门个数 |
与门输入端总数 |
或门 |
| 各自最简 |
4 |
3+3+2+2=10 |
2 个 2 输入 |
| 利用共用项ABC |
3 |
3+3+2=8 |
2 个 2 输入 |
方案二少用 1 个与门、少 2 个输入端,整体更省。
⚠️ 易错点:
- 多输出化简的目标是"整体最简",所以某个输出单看可能不是最简式,这是正常的。
- 不是任何情况利用共用项都能省门,要实际比较两种方案。
五、逻辑函数形式的变换#
大白话#
化简得到的是最简与或式,可是实际做电路时,手头的芯片可能只有一种门。比如一片 74HC00 里有 4 个 2 输入与非门,如果整个电路全用与非门搭,就能少买几种芯片。所以要把与或式"翻译"成只用某一种门的形式。
翻译的工具只有两个:两次取反等于不变(Y=Y)和摩根定理(X+Y=XY,XY=X+Y)。
下面以Y=AC+BC为例,演示三种常用形式。
1. 与非-与非式(只用与非门)#
方法:对最简与或式两次取反,然后用摩根定理把里面那层取反拆开。
Y=AC+BC=AC+BC=AC⋅BC
逐行拆解:
- 第二个等号:外面套两层横线,值不变;
- 第三个等号:对里层AC+BC用摩根定理"或变与、各项分别取反",变成AC⋅BC;
- 结果:AC是一个与非门,BC是一个与非门,外面再一个与非门把它们"与非"起来。
电路结构:第一级每个乘积项一个与非门,第二级一个与非门。与或式中的"与门 + 或门"直接换成"与非门 + 与非门",连线都不用改。(C若没有现成的,可用一个两输入并联的与非门当反相器。)
2. 与或非式(用与或非门)#
与或非门是一种集成门,功能是"先与、再或、最后取反":Y=AB+CD。
方法:先求Y的最简与或式(卡诺图圈 0最方便),再整体取反。
先画Y=AC+BC的卡诺图(AC占m5、m7,BC占m2、m6),然后圈 0:
| A \ BC |
00 |
01 |
11 |
10 |
| 0 |
0 |
0 |
0 |
1 |
| 1 |
0 |
1 |
1 |
1 |
0 格是m0、m1、m3、m4:
- m1、m3:A=0、C=1 → AC;
- m0、m4:B=0、C=0 → BC。
所以Y=AC+BC,于是
Y=AC+BC
这就是与或非式,一个与或非门就能实现(输入端需要A、B、C)。
3. 或非-或非式(只用或非门)#
方法:先得到最简或与式(对Y的与或式取反、用摩根定理展开),再对或与式两次取反,用摩根定理拆开里层。
由上面Y=AC+BC,取反:
Y=AC⋅BC=(A+C)(B+C)
这是最简或与式。再两次取反,拆里层:
Y=(A+C)(B+C)=A+C+B+C
电路结构:第一级两个或非门分别算A+C、B+C,第二级一个或非门。
验算:取ABC=011:原式AC+BC=0+0=0;或非-或非式A+C=0+0=1,B+C=1+1=0,Y=1+0=0。✓
4. 把真题结果也变换一下#
对 2026 回忆题第 5 题的结果Y=AB+D:
Y=AB⋅D
只用 2 输入与非门的电路见图 2(B、D都用两输入并联的与非门产生)。
图 2:只用 4 个 2 输入与非门(正好是一片 74HC00)实现Y=AB+D
- 与或非式:卡诺图圈 0(m0、m2、m4、m6、m12,可借用m14这个 ×):m0,m2,m4,m6(A=0、D=0)→ AD;m4,m6,m12,m14(B=1、D=0)→ BD。所以Y=AD+BD,
Y=AD+BD
Y=(A+D)(B+D)=A+D+B+D
(注意圈 0 时 × 也可以按需当 0 圈进去,这里用了m14;而圈 1 时它被当成了 0。同一个 × 在两种圈法中可以有不同的取舍,各自独立。)
⚠️ 易错点:
- 与非-与非式要从与或式出发;或非-或非式要从或与式出发。方向弄反就会越变越乱。
- 摩根定理只拆里层那一道横线,最外层横线要保留,它就是第二级的与非(或非)门。
- 与或非式里的Y要用圈 0 求,别直接对Y的与或式每项取反。
速记卡#
| 项目 |
要点 |
| 无关项 |
约束项(输入不会出现)+ 任意项(出现了也无所谓);记作∑d(⋯),卡诺图填 × |
| × 的用法 |
能让圈变大才当 1,否则当 0;不单独圈 ×;不必全用 |
| 验算 |
只核对非无关项的行 |
| 2026 第 5 题 |
Y=∑m(1,3,5,8,9,13)+∑d(7,10,11,14,15)=AB+D(×7、10、11、15 当 1,×14 当 0);74HC151 实现见第 10 讲 |
| 多输出 |
目标是整体门数最少;找共用项;单个输出可不是最简 |
| 与非-与非 |
与或式两次取反,摩根拆里层:P1⋅P2⋯ |
| 与或非 |
圈 0 得Y的与或式,Y=Y |
| 或非-或非 |
先求最简或与式,两次取反,摩根拆里层:S1+S2+⋯ |
自测练习#
1. 化简Y(A,B,C)=∑m(1,3)+∑d(5,7)。
答案与提示
m1、m3和 ×5、×7 组成中间两列 4 格圈(C=1)。Y=C。
2. 化简Y(A,B,C,D)=∑m(0,2,8)+∑d(10,12,14)。
答案与提示
四个角m0、m2、m8和 ×10 组成 4 格圈 → BD。×12、×14 不用。Y=BD。
3. 输入ABCD为 8421BCD 码,当它表示的十进制数为 1、2、5、6、9 之一时Y=1。写出Y的∑m+∑d形式并化简。
答案与提示
Y=∑m(1,2,5,6,9)+∑d(10,11,12,13,14,15)。CD=01列:m1,m5,m9加 ×13 → CD;CD=10列:m2,m6加 ×14、×10 → CD。Y=CD+CD=C⊕D。
4. 输入为 8421BCD 码,表示的数小于 5 时Y=1。求最简与或式,并说明结果是否唯一。
答案与提示
Y=∑m(0,1,2,3,4)+∑d(10∼15)。m0∼m3(第 1 行)→ AB;m4可与m0圈成ACD,也可与 ×12 圈成BCD,两者因子数相同。所以Y=AB+ACD或Y=AB+BCD,结果不唯一。
5.(华师真题风格)化简Y(A,B,C,D)=∑m(2,3,7,9,11,13)+∑d(1,10,15),写出最简与或式,并说明哪些无关项被当作 1。
答案与提示
- m9,m11,m13与 ×15 组成 2×2 圈(A=1、D=1)→ AD;
- m3,m7,m11与 ×15 组成整列圈(C=1、D=1)→ CD;
- m2,m3与 ×10、m11组成上下相接的圈(B=0、C=1)→ BC。
Y=AD+CD+BC。×10、×15 当 1,×1 当 0。
6. 把Y=AB+AC分别写成与非-与非式和或非-或非式。
答案与提示
与非-与非:Y=AB⋅AC。
或非-或非:圈 0 得Y=AB+AC,所以Y=(A+B)(A+C),即Y=A+B+A+C。
7. 两输出函数Y1(A,B,C)=∑m(0,5),Y2(A,B,C)=∑m(1,3,5)。若只用与门、或门实现,最少需要几个与门?写出对应的表达式。
答案与提示
3 个。Y1=ABC+ABC,Y2=AC+ABC,与门ABC两个输出共用(见例 3)。
下一讲预告#
逻辑代数的"数学工具箱"到这里就齐了;下一讲(第 05 讲上)开始走进电路内部,看二极管、三极管、MOS 管怎么当开关,搭出最简单的门电路。
👉 点击进入下一讲:第05讲(上)|半导体开关与二极管门电路
评论
还没有评论。 来写第一条。