学习资料

数字电路入门教程——逻辑门与组合逻辑

21 阅读 2026-06-03
内容简介

系统讲解数字电路核心知识,涵盖数制与编码、逻辑门电路、组合逻辑电路、触发器、时序逻辑电路等。

数字电路入门教程——逻辑门与组合逻辑

概述

数字电路是现代电子技术的基石,从计算机CPU到智能手机芯片,从通信系统到工业控制,数字电路无处不在。与模拟电路处理连续信号不同,数字电路处理的是离散的数字信号——只有高电平(1)和低电平(0)两种状态。本教程从数制与编码基础出发,系统讲解逻辑门电路、组合逻辑电路设计、触发器原理和时序逻辑电路,帮助你建立完整的数字电路知识体系,为后续学习计算机组成原理、嵌入式系统等课程打下坚实基础。


知识点一:数制与编码

核心概念

数制是表示数值的方法。数字电路中最常用的数制包括二进制、八进制、十进制和十六进制。

常用数制对照表:

十进制 二进制 八进制 十六进制
0 0000 0 0
1 0001 1 1
8 1000 10 8
10 1010 12 A
15 1111 17 F

常用编码方式:

  1. 8421 BCD码:用4位二进制数表示1位十进制数,权重分别为8、4、2、1

    • 例:十进制 9 → 1001(8×1 + 4×0 + 2×0 + 1×1 = 9)
  2. 格雷码(Gray码):相邻两个编码之间只有一位不同

    • 例:0→00,1→01,2→11,3→10
    • 优点:减少多位同时变化产生的错误
  3. ASCII码:用7位二进制编码表示字符

    • 例:'A' = 65 = 1000001,'a' = 97 = 1100001

例子:二进制与十进制的转换

十进制转二进制(除2取余法):

将十进制数 156 转换为二进制:

156 ÷ 2 = 78 ... 0
 78 ÷ 2 = 39 ... 0
 39 ÷ 2 = 19 ... 1
 19 ÷ 2 =  9 ... 1
  9 ÷ 2 =  4 ... 1
  4 ÷ 2 =  2 ... 0
  2 ÷ 2 =  1 ... 0
  1 ÷ 2 =  0 ... 1

从下往上读取余数:\((156)_{10} = (10011100)_2\)

验证: \(128 + 16 + 8 + 4 = 156\)


知识点二:逻辑门电路

核心概念

逻辑门是数字电路的基本构建单元,实现基本的逻辑运算。常用逻辑门包括:

七种基本逻辑门:

逻辑门 符号 逻辑表达式 功能描述
与门(AND) · \(Y = A \cdot B\) 全1出1,有0出0
或门(OR) + \(Y = A + B\) 有1出1,全0出0
非门(NOT) \(Y = \overline{A}\) 输入取反
与非门(NAND) · ‾ \(Y = \overline{A \cdot B}\) 全1出0,有0出1
或非门(NOR) + ‾ \(Y = \overline{A + B}\) 全0出1,有1出0
异或门(XOR) \(Y = A \oplus B\) 相同为0,不同为1
同或门(XNOR) \(Y = A \odot B\) 相同为1,不同为0

重要性质:

  • 与非门的通用性:仅用与非门就可以实现所有逻辑运算
  • 或非门的通用性:仅用或非门也可以实现所有逻辑运算

例子:用与非门实现非门、与门、或门

实现非门: 将与非门的两个输入连在一起 \(Y = \overline{A \cdot A} = \overline{A}\)

实现与门: 两级与非门 \(第一级:M = \overline{A \cdot B},第二级:Y = \overline{M \cdot M} = \overline{\overline{A \cdot B}} = A \cdot B\)

实现或门: 利用德摩根定律 \(A + B = \overline{\overline{A} \cdot \overline{B}}\) 先用两个与非门分别实现 \(\overline{A}\)\(\overline{B}\),再用一个与非门实现 \(\overline{\overline{A} \cdot \overline{B}}\)


知识点三:组合逻辑电路设计

核心概念

组合逻辑电路的输出仅取决于当前输入,与电路的历史状态无关。设计组合逻辑电路的标准步骤:

四步设计法:

  1. 逻辑抽象:根据问题描述确定输入变量和输出函数
  2. 列真值表:列出所有输入组合对应的输出
  3. 化简逻辑表达式:用卡诺图或代数法化简
  4. 画逻辑电路图:根据化简后的表达式画出电路

卡诺图化简法:

  • 将最小项填入卡诺图
  • 圈出相邻的1(2的幂次个为一组:1、2、4、8...)
  • 每个圈对应一个乘积项
  • 所有圈的乘积项相加即为最简与或表达式

例子:设计三人表决器

设计要求: 三人(A、B、C)投票,多数赞成则通过(Y=1)。

步骤1:列真值表

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

步骤2:写出逻辑表达式 \(Y = \overline{A}BC + A\overline{B}C + AB\overline{C} + ABC\)

步骤3:用卡诺图化简

将最小项填入卡诺图后,可以圈出三个圈:

  • 圈1(A=1, B=1):\(AB\)
  • 圈2(A=1, C=1):\(AC\)
  • 圈3(B=1, C=1):\(BC\)

最简表达式:\(Y = AB + AC + BC\)

步骤4:电路实现

用两个与门和一个或门即可实现:

  • 与门1:输出 \(AB\)
  • 与门2:输出 \(AC\)
  • 与门3:输出 \(BC\)
  • 或门:输出 \(AB + AC + BC\)

知识点四:触发器

核心概念

触发器是时序逻辑电路的基本存储单元,具有记忆功能,能够存储1位二进制信息。触发器的输出不仅取决于当前输入,还取决于电路的先前状态。

常用触发器类型:

触发器 特征方程 功能描述
SR触发器 \(Q^{n+1} = S + \overline{R}Q^n\)(约束:\(SR=0\) 置位/复位,有禁止状态
D触发器 \(Q^{n+1} = D\) 延迟,输出跟随输入(延迟一个时钟周期)
JK触发器 \(Q^{n+1} = J\overline{Q^n} + \overline{K}Q^n\) 功能最全,无禁止状态
T触发器 \(Q^{n+1} = T \oplus Q^n\) 翻转,T=1时每来一个时钟翻转一次

触发方式:

  • 电平触发:在时钟高(或低)电平期间触发
  • 边沿触发:在时钟上升沿(或下降沿)瞬间触发,抗干扰能力强
  • 主从触发:分两步完成,避免空翻现象

例子:D触发器的工作过程

D触发器功能: 在时钟上升沿到来时,将输入D的值传递到输出Q。

工作过程举例:

假设时钟信号CLK和输入信号D如下:

  • 时刻1(CLK上升沿):D=1 → Q变为1
  • 时刻2(CLK上升沿):D=0 → Q变为0
  • 时刻3(CLK上升沿):D=1 → Q变为1
  • 时刻4(CLK上升沿):D=1 → Q保持1

应用场景: D触发器常用于数据寄存器——在时钟沿到来时锁存数据,实现数据的同步传输和暂存。8个D触发器并联即可构成8位寄存器。


知识点五:时序逻辑电路

核心概念

时序逻辑电路的输出不仅取决于当前输入,还取决于电路的历史状态(即具有记忆功能)。时序电路由组合逻辑电路和**存储电路(触发器)**两部分组成。

时序电路的分析步骤:

  1. 写出各触发器的驱动方程(输入表达式)
  2. 写出各触发器的状态方程(特征方程代入驱动方程)
  3. 写出输出方程
  4. 列状态转换表或画状态转换图
  5. 分析电路功能

常用时序电路:

  • 计数器:按一定规律计数的电路
  • 寄存器:存储一组二进制数据的电路
  • 移位寄存器:数据可逐位移入或移出的寄存器

例子:分析三位二进制加法计数器

电路构成: 三个JK触发器(FF0、FF1、FF2),所有J、K端接高电平(T触发器模式),低位的Q端接到高位的CLK端(异步计数器)。

工作原理:

  • FF0:每个时钟脉冲翻转一次,输出最低位 \(Q_0\)
  • FF1:\(Q_0\) 的下降沿触发翻转,输出次低位 \(Q_1\)
  • FF2:\(Q_1\) 的下降沿触发翻转,输出最高位 \(Q_2\)

状态转换表:

时钟脉冲 \(Q_2\) \(Q_1\) \(Q_0\) 十进制
0 0 0 0 0
1 0 0 1 1
2 0 1 0 2
3 0 1 1 3
4 1 0 0 4
5 1 0 1 5
6 1 1 0 6
7 1 1 1 7
8 0 0 0 0(循环)

这是一个模8计数器(也叫三位二进制加法计数器),每来8个时钟脉冲完成一个循环。


知识点六:组合逻辑电路中的竞争与冒险

核心概念

在组合逻辑电路中,由于信号通过不同路径到达同一门电路的时间不同,可能产生短暂的错误脉冲(毛刺),这种现象称为竞争与冒险

竞争与冒险的产生原因:

  • 信号经过不同数量的门电路,延迟时间不同
  • 当某个变量同时以原变量和反变量形式出现在表达式中时

判断方法:

  • 代数法:若逻辑表达式在一定条件下能化简为 \(Y = A + \overline{A}\)\(Y = A \cdot \overline{A}\),则存在冒险
  • 卡诺图法:若两个最简项的卡诺圈相切(相邻但不重叠),则存在冒险

消除方法:

  1. 加滤波电容:在输出端并联小电容滤除毛刺(适用于低速电路)
  2. 加选通脉冲:在信号稳定后才取样输出
  3. 修改逻辑设计:增加冗余项使卡诺圈重叠,消除冒险

例子:检测并消除冒险

电路表达式: \(Y = AB + \overline{A}C\)

\(B=1\)\(C=1\) 时:\(Y = A + \overline{A}\),存在"0型冒险"(可能产生负毛刺)。

卡诺图分析:\(AB\) 和项 \(\overline{A}C\) 在卡诺图中对应的圈相切(不重叠),确认存在冒险。

消除方法: 增加冗余项 \(BC\),修改表达式为: \(Y = AB + \overline{A}C + BC\)

增加 \(BC\) 项后,\(AB\)\(\overline{A}C\) 两个圈与 \(BC\) 圈重叠,消除了冒险。当 \(A\) 变化时,\(BC\) 项保持输出为1,避免了毛刺的产生。


练习题

题目一

将十进制数 215 转换为二进制数和十六进制数。

参考答案:

转换为二进制(除2取余法):

215 ÷ 2 = 107 ... 1
107 ÷ 2 =  53 ... 1
 53 ÷ 2 =  26 ... 1
 26 ÷ 2 =  13 ... 0
 13 ÷ 2 =   6 ... 1
  6 ÷ 2 =   3 ... 0
  3 ÷ 2 =   1 ... 1
  1 ÷ 2 =   0 ... 1

\((215)_{10} = (11010111)_2\)

转换为十六进制: 每4位二进制对应1位十六进制 \(1101\ 0111 → D\ 7\) \((215)_{10} = (D7)_{16}\)


题目二

用卡诺图化简以下逻辑函数: \(F(A,B,C,D) = \sum m(0,1,2,4,5,6,8,9,12,13,14)\)

参考答案:

将最小项填入4变量卡诺图后,可以圈出以下圈:

  • 圈1(\(m_0, m_1, m_4, m_5\)):\(\overline{A}\overline{C}\)
  • 圈2(\(m_0, m_2, m_4, m_6\)):\(\overline{A}\overline{D}\)
  • 圈3(\(m_0, m_2, m_8, m_9\)):\(\overline{B}\overline{C}\)(需确认)
  • 圈4(\(m_4, m_5, m_{12}, m_{13}\)):\(\overline{B}\overline{C}\)($B=0$时的项)
  • 圈5(\(m_0, m_4, m_8, m_{12}\)):\(\overline{C}\overline{D}\)
  • 圈6(\(m_8, m_9, m_{12}, m_{13}\)):\(A\overline{C}\)(需验证)

经仔细化简:\(F = \overline{D} + \overline{B}\overline{C} + \overline{A}\overline{C}\)

(注:具体化简结果取决于卡诺图的正确填写和最优圈法)


题目三

分析下图JK触发器的输出波形。已知:初始状态 \(Q=0\),JK触发器下降沿触发,\(J=K=1\)(T触发器模式)。画出CLK信号为4个脉冲时的Q输出波形。

参考答案:

\(J=K=1\) 时,JK触发器在每个时钟下降沿翻转。

CLK下降沿 Q状态变化
初始 Q=0
第1个下降沿 Q: 0→1
第2个下降沿 Q: 1→0
第3个下降沿 Q: 0→1
第4个下降沿 Q: 1→0

输出Q的频率是时钟频率的1/2,实现了二分频功能。


题目四

设计一个组合逻辑电路,实现1位二进制全加器。要求写出真值表、逻辑表达式和电路图。

参考答案:

功能: 输入两个1位二进制数 \(A\)\(B\) 和低位进位 \(C_{in}\),输出本位和 \(S\) 和向高位的进位 \(C_{out}\)

真值表:

A B \(C_{in}\) S \(C_{out}\)
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

逻辑表达式:

  • \(S = A \oplus B \oplus C_{in}\)
  • \(C_{out} = AB + (A \oplus B)C_{in}\)

电路实现: 用两个异或门、两个与门和一个或门即可实现。


题目五

什么是竞争与冒险?如何判断和消除?请举例说明。

参考答案:

竞争与冒险的定义:

  • 竞争:信号经过不同路径到达同一门电路时,由于延迟不同而存在时间差
  • 冒险:竞争导致输出产生短暂的错误脉冲(毛刺)

判断方法:

  • 代数法:检查逻辑表达式在某些输入条件下是否能化为 \(Y = A + \overline{A}\)(0型冒险)或 \(Y = A \cdot \overline{A}\)(1型冒险)
  • 卡诺图法:检查最简项的卡诺圈是否相切(相邻但不重叠)

消除方法:

  1. 加滤波电容(硬件方法)
  2. 加选通脉冲(时序方法)
  3. 增加冗余项(逻辑设计方法)

举例: 表达式 \(Y = AB + \overline{A}C\),当 \(B=C=1\) 时,\(Y = A + \overline{A}\),存在0型冒险。增加冗余项 \(BC\) 后,\(Y = AB + \overline{A}C + BC\),卡诺圈不再相切,冒险消除。


总结

数字电路以二值逻辑为基础,通过逻辑门实现基本运算,通过组合逻辑电路实现复杂功能,通过触发器和时序逻辑电路实现数据存储和时序控制。这套知识体系是理解计算机硬件、通信系统和嵌入式系统的根基。

学习数字电路的核心方法是:理解逻辑本质,掌握设计方法,注重实践应用。从最简单的与或非门到复杂的时序电路,每一步都需要扎实的逻辑推理能力。建议多做真值表分析和卡诺图化简练习,结合数字电路仿真软件(如Logisim、Multisim)进行验证,将理论知识与实际电路设计紧密结合。

文章声明

本文仅供学习和参考,不构成任何投资建议。如有侵权,请联系删除。

目录