三、逻辑代数基础:基本逻辑运算与复合逻辑
逻辑代数是数字电路分析与设计的数学工具,由英国数学家乔治·布尔于19世纪中叶提出,因此也称为布尔代数。在数字电路中,所有复杂的运算——从简单的数据选择到CPU中的算术逻辑单元(ALU)——最终都被分解为最基本的逻辑运算。本章将系统讲解与、或、非三种基本逻辑运算,以及由它们组合而成的与非、或非、异或、同或四种复合逻辑运算,并介绍逻辑函数的四种常用表示方法及其相互转换。理解这些基础概念,是后续学习组合逻辑电路、时序逻辑电路以及数字系统设计的必要前提。
3.1 基本逻辑运算:与、或、非
3.1.1 核心原理
与运算(AND):当且仅当所有输入条件同时为真时,输出才为真。在数字电路中,与门通常用“·”或省略符号表示,逻辑表达式为 Y = A·B(读作“A与B”)。其物理意义可以类比为串联开关电路:只有两个开关都闭合,灯泡才会点亮。与运算的运算规则是:有0则0,全1则1。
或运算(OR):只要有一个输入条件为真,输出即为真。逻辑表达式为 Y = A+B(读作“A或B”)。其物理意义可以类比为并联开关电路:任一开关闭合,灯泡即点亮。或运算的运算规则是:有1则1,全0则0。
非运算(NOT):对输入信号取反,输出与输入相反。逻辑表达式为 Y = A'(或写作 Ā、¬A)。非运算只有一个输入,其物理意义相当于常闭触点继电器:输入为高电平时输出低电平,输入为低电平时输出高电平。
3.1.2 判断方法与真值表
判断一个逻辑运算的结果,最可靠的方法是列出真值表。真值表列出了所有可能的输入组合及其对应的输出值。对于二变量逻辑运算,共有 2² = 4 种输入组合;对于 n 变量,则有 2ⁿ 种组合。下表给出了三种基本逻辑运算的完整真值表:
| A | B | Y = A·B(与) | Y = A+B(或) | Y = A'(非) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 |
3.1.3 案例拆解:单片机IO口控制LED
假设使用单片机控制两个按键 K1、K2 和一颗 LED。要求:只有 K1 和 K2 同时按下时,LED 才点亮。这是一个典型的与逻辑应用场景。
- 输入定义:K1 按下为逻辑1,松开为逻辑0;K2 同理。
- 输出定义:LED 点亮为逻辑1,熄灭为逻辑0。
- 逻辑表达式:LED = K1 · K2
- 硬件实现:将两个按键信号接入一个 74HC08(四重二输入与门)芯片,输出端接 LED 驱动电路。
若将需求改为“任一按键按下时 LED 点亮”,则使用或门 74HC32 实现。若改为“按键按下时 LED 熄灭,松开时点亮”,则使用非门(如 74HC04)实现反相控制。
3.1.4 常见误区与总结
总结:与、或、非是逻辑代数的三大基石,任何复杂的逻辑功能都可以通过这三种基本运算的组合来实现。掌握真值表是理解逻辑运算的最直观途径。
3.2 复合逻辑运算:与非、或非、异或、同或
3.2.1 核心原理
复合逻辑运算由基本逻辑运算组合而成,在实际芯片中,复合逻辑门往往比单一基本门更常用,因为它们可以在一个封装内完成更多功能,减少芯片数量。
- 与非运算(NAND):先与后非,Y = (A·B)'。其特点是有0则1,全1则0。与非门是数字电路中最通用的门,因为任何逻辑功能都可以仅用与非门实现(称为“与非门通用性”)。
- 或非运算(NOR):先或后非,Y = (A+B)'。其特点是全0则1,有1则0。或非门同样具有通用性。
- 异或运算(XOR):当两个输入相异时输出1,相同时输出0,Y = A⊕B = A'B + AB'。异或运算在数字电路中应用极广,包括比较器、加法器、奇偶校验等。
- 同或运算(XNOR):异或的非运算,当两个输入相同时输出1,相异时输出0,Y = A⊙B = AB + A'B'。同或也称为“异或非”。
3.2.2 判断方法与逻辑符号识别
在电路图中,复合逻辑门的识别要点:与非门和或非门是在基本门输出端加一个小圆圈(表示取反);异或门在或门基础上增加一条弧线;同或门则在异或门输出端加小圆圈。下表总结了四种复合逻辑的运算规则:
| A | B | 与非 (A·B)' | 或非 (A+B)' | 异或 A⊕B | 同或 A⊙B |
|---|---|---|---|---|---|
| 0 | 0 | 1 | 1 | 0 | 1 |
| 0 | 1 | 1 | 0 | 1 | 0 |
| 1 | 0 | 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 | 0 | 1 |
3.2.3 案例拆解:数据选择器中的异或应用
考虑一个实际工程场景:某通信设备需要检测两个数据位是否一致,用于错误校验。设计一个电路,当两个输入位 A、B 相同时输出1(表示校验通过),不同时输出0(表示校验失败)。
方案设计:该功能恰好符合同或运算的定义。使用 74HC266(四重二输入同或门)即可实现。若手头只有异或门 74HC86,则可在异或门输出端再接一个非门,同样实现同或功能。
验证过程:
- 输入 A=0, B=0:异或输出0,经非门反相后输出1,校验通过 ✓
- 输入 A=0, B=1:异或输出1,经非门反相后输出0,校验失败 ✓
- 输入 A=1, B=0:异或输出1,经非门反相后输出0,校验失败 ✓
- 输入 A=1, B=1:异或输出0,经非门反相后输出1,校验通过 ✓
结果对比:使用同或门方案仅需1颗芯片,使用异或门+非门方案需要2颗芯片,但利用了现有库存,减少了采购周期。在批量生产中,优先选择同或门方案以降低成本。
3.2.4 常见误区与总结
复合逻辑运算在数字系统中无处不在。与非门的通用性使其成为许多可编程逻辑器件的基本单元;异或运算则是算术运算和校验电路的核心。理解这些运算的等价变换(如 A⊕B = (A⊙B)')有助于电路化简。
3.3 逻辑函数的表示方法
3.3.1 四种表示方法概述
逻辑函数描述了输入变量与输出变量之间的因果关系。同一个逻辑函数可以用四种不同的方式表示,它们之间可以相互转换:
- 真值表:最直观的表示方法,列出所有输入组合对应的输出值。适合变量较少(≤4个)的情况。
- 逻辑表达式:用与、或、非等运算符号描述函数关系,如 Y = A·B + C'。适合公式推导和化简。
- 逻辑电路图:用标准逻辑门符号绘制电路,直观反映硬件实现方式。
- 卡诺图:一种图形化简工具,特别适合化简3-4变量的逻辑函数,后续章节将详细讲解。
3.3.2 表示方法转换流程
在实际工程中,最常见的转换路径是:真值表 → 逻辑表达式 → 逻辑电路图。具体步骤如下:
- 步骤1:从真值表中找出所有输出为1的行。
- 步骤2:对每一行,将输入变量相与(变量为1时用原变量,为0时用反变量),得到最小项。
- 步骤3:将所有最小项相或,得到“与-或”标准表达式(最小项之和形式)。
- 步骤4:根据表达式绘制逻辑电路图,先画与门,再画或门。
3.3.3 案例拆解:三人表决器设计
设计一个三人表决器:三人(A、B、C)投票,两人及以上同意则通过。这是一个典型的组合逻辑设计问题。
第一步:列真值表
| A | B | C | Y |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 |
第二步:写出最小项表达式
输出为1的行对应:A'BC、AB'C、ABC'、ABC,因此 Y = A'BC + AB'C + ABC' + ABC。
第三步:化简
利用公式 AB + AB' = A 进行合并:Y = BC(A'+A) + AC(B'+B) + AB(C'+C) = BC + AC + AB。
第四步:绘制电路图
使用三个二输入与门分别产生 BC、AC、AB,再用一个三输入或门合并输出。实际硬件可选用 74HC08(与门)和 74HC32(或门)实现。
复盘经验:化简后的表达式比原始表达式少了一个与门,降低了硬件成本。在工程设计中,逻辑化简是优化电路的重要手段。