第 3章 组合逻辑电路
授课计划
教学内容
教学小结
一、授课计划
1、教学目标
1,掌握半加器、全加器、常用算术 /逻辑
运算单元等运算电路的电路结构及其使
用方法;
2,掌握典型的译码器、编码器、数据选择
器、数据分 配器等信号变换电路的电路
结构及其使用方法;
3,了解数字比较器的电路结构及其扩展方
法;
2、重点与难点
1,重点,1)半加器、全加器的电路结构及其逻
辑功能,
2) 四位算术 /逻辑运算单元 74LS381的逻
辑功 能、引脚 图及逻辑符号图,
3) 8421BCD编码器、优先编码器的逻
辑功能及引脚图,
4) 译码器、数据选择器、数据分配器
的逻辑功能,
2,难点,1) 十进制数七段数码显示译码器,
2) 数据选择器的扩展,
3、学时分配:共 6学时
?第 1,2学时:算术运算电路
?第 3,4学时:信号变换电路
?第 5,6学时:数值比较器
3.1 算术运算电路 (第 1,2学时)
数字系统的基本任务之一是进行算术运算。加法器是数字
系统中最基本的运算单元。因为在数字系统中加、减、乘、除都
是通过加法来实现。本节先介绍半加器电路,然后介绍集成算术
/逻辑单元电路 74LS381 。
3.1.1 半加器电路
半加器是只考虑两个加数本身相加,而不考虑来自低位进
位的逻辑电路。设计一位二进制半加器,输入变量有两个,分别
为加数 A和被加数 B;输出也有两个,分别为和数 S和进位 C。列
真值表如表 3.1所示。
由真值表写逻辑表达式,表 3.1 半加器的真值表
画出逻辑图如图 3.1所示,
它是由异或门和与门组成的,
也可以用与非门实现。
0 11 1
1 01 0
1 00 1
0 00 1
S CA B
ABC
BABAS
?
??
二、教学内容
图 3.1 半加器
a) 逻辑图 (b) 逻辑符号
3.1.2 全加器电路
全加器是完成两个二进制数 Ai和 Bi及相邻低位的进位 Ci-1相加的逻辑
电路 。 它与半加器的区别在于半加器只有加数和被子加数两数相加而
全加器不光有加数和被子加数还有相邻低位的进位三数相加 。
全加器的真值表如表 3.2所示。 其中,Ai和 Bi分别是被加数和加数,
Ci-1为相邻低位的进位,Si为本位的和,Ci为本位的进位。
由真值表写出逻辑表达式
11
1111
1
1111
??
????
?
????
???
????
???
????
iiiiii
iiiiiiiiiiiii
iii
iiiiiiiiiiiii
CACBBA
CBACBACBACBAC
CBA
CBACBACBACBAS
=1
&
A
B S
C
A
B CO
S
C
输入 输出
Ai Bi Ci--1 Si Ci
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
表 3.2 全加器的真值表
图 3.2(a) 全加器的逻辑图
图 3.2(b) 全加器的逻辑符号
CI是进位输入端,CO是
进位输出端 。
C1 C0
S i
C i
Ai
Bi
C i-1
3.1.2 集成算术 /逻辑运算单元
集成算术 /逻辑运算单元( ALU) 能够完成一系列算术运算和逻辑
运算。在这里我们介绍一种常用的集成算术 /逻辑运算单元 74LS381,
它是四位算术 /逻辑运算单元,管脚图如图 3.3所示,A和 B是预定的输
入状态,根据输入信号 S2~ S0选择八种不同的功能。
图 3.3 74LS381集成算术 /逻辑运算单元
( a) 符号图 (b)引脚图
下面我们可以通过 74LS381的功能表了解其功能。
表 3.3 74LS381功能表
选择 算术 /逻辑
运算功能
S2 S1 S0
0 0 0 清零
0 0 1 B减 A
0 1 0 A减 B
0 1 1 A加 B
1 0 0
1 0 1
1 1 0
1 1 1 预置
BA?
BA?
BA?
由表 3.3可知, 74LS381
能够进行六种算术和逻辑
运算, 并有清零和预置功
能 。 所谓清零是将各数据
输出端的状态全为 0;预置
是使数据输出端输出预定
的状态, 进行预置操作时,
预定的状态从 A和 B端输入 。
3.2 信号变换电路 (第 3,4学时)
3.2.1 编码器
一般的说, 用文字, 符号或者数码表示特定对象的过程, 都可以
叫做编码 。 例如, 给孩子取名, 给运动员编号等, 都是编码 。 不过
他们用的是汉字或十进制数 。 汉字或十进制数用电路难以实现, 在
数字电路中一般采用二进制编码 。 所谓二进制编码是用二进制代码
表示有关对象 ( 信号 ) 的过程 。 一般地说, n位二进制代码有 2n种状
态, 可以表示 2n个信号 。 所以, 对 N个信号进行编码时, 可用公式
2n≥ N来确定需要使用的二进制代码的位数 n。
编码器是实现编码操作的电路,按照被编码信号的不同特点和
要求,有二进制编码器、二 → 十进制编码器、优先编码器等。我们
在这里介绍 10进制 →8421 BCD编码器 和优先编码器。
1,10进制 → 8421 BCD编码器
日常生活中,人们通常使用 10进制数来 进行处理计算,然而数
字设备却用二进制或代码进行判断处理。 10进制 →8421 BCD编码器
的作用就是将人们习惯使用的 10进制数变换成 8421 BCD码的电路。
因为输入有 10个数码,要求有 10种状态,所以输出需用 4位( 2n> 10,
取 n= 4) 二进制代码。设输入的 10个数码分别用 I0,I1,…, I9表示,
输出的四位 8421BCD码分别采用 Y3,Y2,Y1,Y0表示,则真值表如
表 3.4所示。
输入 输出
I Y3 Y2 Y1 Y0
0(I0) 0 0 0 0
1(I1) 0 0 0 1
2(I2) 0 0 1 0
3(I3) 0 0 1 1
4(I4) 0 1 0 0
5(I5) 0 1 0 1
6(I6) 0 1 1 0
7(I7) 0 1 1 1
8(I8) 1 0 0 0
9(I9) 1 0 0 1
表 3.4 10进制 → 8421 BCD编码器真值表
由于 I0,I1,…, I9是一组相互排斥的变量, 故可由真值表直接写出输
出函数的逻辑表达式, 即为:
由或门组
成编码器
由与门组
成编码器
( a) 由或门组成 ( b) 由与非门组成
图 3.4 10进制 →8421 BCD编码器电路图
10进制 →8421 BCD编码器逻辑图如图 3.4所示。其中 I0是隐含的。
98983 IIIIY ???
765476542 IIIIIIIIY ?????
763276321 IIIIIIIIY ?????
97531975310 IIIIIIIIIIY ??????
2,优先编码器
优先编码器是当多个输入端同时有信号时,电路只对其中优先级别
最高的输入信号进行编码 。 常用的集成优先编码器 IC有 10线 -4线, 8
线 -3线两种 。 10线 -4线优先编码器常见的型号为 54/ 74147、
54/ 74LS147,8 线 - 3线优先编码器常见的型号为 54/ 7 4 1 4 8、
54/74LS148。
下面我们以 TTL中规模集成电路 74LS147为例介绍 8421→ BCD码
优先编码器的功能 。
10线 -4线 8421 BCD码优先编码器 74LS147的真值表见表 3.5。
74LS147的引脚图如图 3.5所示, 其中第 9脚 NC为空 。 74LS147优先编
码器有 9个输入端和 4个输出端 。 某个输入端为 0,代表输入某一个十
进制数 。 当 9个输入端全为 1时, 代表输入的是十进制数 0。 4个输出
端反映输入十进制数的 BCD码编码输出 。
74LS147优先编码器的输入端和输出端都是低电平有效, 即当某一
个输入端低电平 0时, 4个输出端就以低电平 0的输出其对应的 8421
BCD编码 。 当 9个输入全为 1时, 4个输入出也全为 1,代表输入十进
制数 0的 8421 BCD编码输出 。
输入端
为 0,则输出
端 以低电平输
出 6的 BCD码
9I 8I 7I 6I 5I
4I 2
I
0I 3
Y 2Y
输入信号 输出信号
0 × × × × × × × × × 0 1 1 0
1 0 × × × × × × × × 0 1 1 1
1 1 0 × × × × × × × 1 0 0 0
1 1 1 0 × × × × × × 1 0 0 1
1 1 1 1 0 × × × × × 1 0 1 0
1 1 1 1 1 0 × × × × 1 0 1 1
1 1 1 1 1 1 0 × × × 1 1 0 0
1 1 1 1 1 1 1 0 × × 1 1 0 1
1 1 1 1 1 1 1 1 0 × 1 1 1 0
1 1 1 1 1 1 1 1 1 0 1 1 1 1
1Y 0Y3I 1I
6I
表 3.5 74LS147的真值表
图 3.5 74LS147的引脚图
3.2.2 译码器
在编码时,所使用的每一种二进制代码状态,都赋予了特定的
含义,即表示了一个确定的信号或者对象。把代码的特定含义“翻
译”出来的过程叫做译码,而实现译码操作的电路称为译码器。
我们也可以这样来理解译码器,译码器可以将输入代码的状态
翻译成相应的输出信号,以表示其原意。
根据需要,输出信号可以是脉冲,也可以是电位。
译码器的种类很多,但其工作原理是相似的,设计方法也是相
同的。下面我们介绍常用的三种译码器。
1,8421 BCD码 →10 进制译码器
把 BCD码翻译成 10个十进制数字信号的电路,称为二 -十进制译
码器。
二 -十进制译码器的输入是 4位二进制 BCD码,分别用 A3,A2,A1、
A0表示;输出的是与 10个十进制数字相应的 10个信号,用 Y9- Y0表
示。由于二 -十进制译码器有 4根输入线,10根输出线,所以又称为 4
线 -10线译码器。 8421 BCD码译码器的真值表如表 3.6所示。
表 3.6 8421 BCD码译码器的真值表
表中左边是输入的 8421 BCD码, 右边是译码输出 。 其中 1010~ 1111
共 6种状态没有使用, 是无效状态, 在正常工作状态下不会出现, 化简
时可以作为随意项处理 。 在中规模集成二 -十进制译码器中, 对 BCD码
采用了完全译码方案, 即输出函数没有利用随意项化简 。 这样做的好处
是, 输入端代码出现无效状态时, 译码器不予响应, 各个输入信号之间
没有约束 。
采用完全译码方案的输出函数, 可直接由真值表 3.6写出, 分别为,
由这些表达式画出如图 3.6所示
如果要输出为反变量, 即为低电平有效, 则只需将图 3.6所示电路
中的与门换成与非门即可 。
01230 AAAAY ? 01231 AAAAY ? 01232 AAAAY ?
01233 AAAAY ? 01234 AAAAY ? 01235 AAAAY ?
01236 AAAAY ?
01237 AAAAY ? 01238 AAAAY ?
01239 AAAAY ?
图 3.6 8421 BCD码译码器的逻辑图
2,集成 4线 -10线译码器
图 3.7所示是 8421 BCD输入的集成 4线 -10线译码器 74LS42的引脚
排列图和逻辑功能示意图 。
( a) 引脚排列图 ( b) 逻辑符号图
图 3.7 74LS42的引脚排列图
74LS42的输出为反变量, 即为低电平有效, 并且采用完全译码方案 。
3,8421BCD码 → 七段 10进制显示的译码器
在各种数字设备中, 经常需要将数字, 文字和符号直观地显示出来,
供人们直接读取结果, 或用以监视数字系统的工作情况 。 因此, 显示
电路是许多数字设备中必不可少的部分 。 8421BCD码 → 七段 10进制显示
的译码器 用来驱动各种显示器件 。 将二进制代码翻译成人们习惯的形
式直观地显示出来的电路, 称为显示译码器 。
( 1) 数码显示器
显示器件的种类很多, 在数字电路中最常用的显示器有半导体显示
器 ( 又称为发光二极管显示器 LED) 和液晶显示器 ( LCD) 。 LED主
要用于显示数字和字线, LCD可以显示数字, 字母, 文字和图形等 。
a)共阴极 b)共阳极
图 3.8 LED 7段显示器的外形图及二极管的连接方式
7段 LED数码显示器俗称数码管, 其工作原理是将要显示的十进制
数码分成 7段, 每段为一个发光二极管, 利用不同发光段组合来显示不
同的数字 。 图 3.8所示为数码管的外形结构及内部连接 。
数码管中的 7个发光二极管有共阴极和共阳极两种接法, 如图 3.8
(b),(c)所示, 前已述及, 7段数码管是利用不同发光段组合来显示不同
的数字 。 以共阴极显示器为例, 若 a,b,c,d,g各段接高电平, 则对
应的各段发光, 显示出十进制数字 3;若 b,c,f,g各段接高电平, 则
显示十进制数字 3。 a~ g组合成为 7位代码, 成为 7段码, 要显示的数字
一般首先转换成为 7段码, 然后驱动 7段数码管显示 。 使用时每个二极
管要串联一个约 100的限流电阻 。
LED显示器的特点是:清晰悦目、工作电压低( 1.5~3V),体积
小、寿命长(大于 1000h),响应速度快( 1~100ns),颜色丰富(有
红、绿、黄等色)、工作可靠。
( 2) 8421BCD码 → 七段 10进制显示的译码器
设计显示译码器首先要考虑显示器的字形, 现以驱动共阴极的 7
段发光二极管的二 → 十进制译码器为例, 具体说明显示译码器的设计
过程 。
设输入信号为 8421 BCD码, 根据数码管的显示原理, 可列出驱
动共阴极数码管的 7段显示译码器的真值表, 如表 3.7所示 。
输入 A3,A2,A1,A0是 8421 BCD码, 其中 1010~1111这 6种状
态没有使用, 是无效状态, 化简时可作为随意项处理 。 输出 a~g是驱动
7段数码管相应显示段的信号, 由于驱动共阴极数码管, 故应为高电平
有效, 即高电平时显示段亮 。
表 3.7 7段显示译码器的真值表
1 0 × 1
0 1 × ×
1 1 × ×
1 0 × ×
00 01 11 10
10
11
01
00
A3A2
A1A0
用卡诺图进行化简。根据真值表画出输出函数 a的卡诺图,如图 3.9所
示。
图 3.9 a的卡诺图
由图 3.9可得 a的最简与或表达式为:
0201023 AAAAAAAa ????
用同样的方法可以求得 b~g的最简与或表达式:
01012 AAAAAb ???
012 AAAc ???
0102 AAAAd ??
01013 AAAAAf ???
0102 AAAAe ??
1212013 AAAAAAAg ????
用与非门实现上述函数,并考虑共用部分,逻辑图如图 3.10所示。
3.2.3 数据选择器 ( 第 5,6学时 )
1,数据选择器的工作原理
数据选择器按要求从多路输入选择一路输出,根据输入端的
个数分为四选一、八选一等等。其功能相当于如图 3.11所示的单
刀多掷开关。 表 3.8 四选一功能表
E
1A 0A
输入 输出
Y
1 × × 0
0 0 0 D0
0 0 1 D1
0 1 0 D2
D30 1 1
在表 3.8中 A1,A0为地址输入信号,D0~D3为供选择的并行输入信
号,为选通端或使能端,低电平有效。当 = 1时,选择器不工作,禁
止数据输入。当 = 0时,选择器正常工作。由 功能表 可写出四选一数
据选择器输出逻辑表达式,
E
E
E
EA B DDBABDADBAY )( 3210 ????
控制信号 数据输出
Y
图 3.11 数据选择器示意图
由其功能表可得四选一选择器的逻辑电路,下面我们就介绍四选
一选择器的逻辑图和符号图
(a) 逻辑图 (b)符号图
图 3.12 四选一数据选择器
2.数据选择器
74LS151是一种典型的集成电路数据选择器, 如图 3.13所示是 74LS151
的管脚排列图 。 它有三个地址端 A2A1A0。 可选择 D0~D7八个数据, 具
有两个输出端 W和 。 其功能如表 3.9所示 。
图 3.13 74LS151数据选择器
EW
D
A2 A1 A0 W
1 × × × 0
0 0 0 0 D0 0
0 0 0 1 D1 1
0 0 1 0 D2 2
0 0 1 1 D3 3
0 1 0 0 D4 4
0 1 0 1 D5 5
0 1 1 0 D6 6
0 1 1 1 D7 7
E W
D
D
D
D
D
D
D
D
表 3.9 74LS151的功能表
1
3.数据选择器的扩展
例:将两片 74LS151连接成一个十六选一的数据选择器 。
解 十六选一的数据选择器的地址输入端有四位,最高位 A3的输入可
以由两片八选一数据选择器的使能端接非门来实现,低三位地址输入
端由两片 74LS151的地址输入端相连而成,连接图如图 3.14所示。当 A3
= 0时,由表 3.9知,低位片 74LS151工作,A3A2A1A0选择数据 D0~D7输
出; A3= 1时,高位片工作,选择 D8~D15进行输出。
图 3.14 由两片 74LS151构成的十六选一的数据选择器
4.数据选择器的应用
利用数据选择器, 当使能端有效时, 将地址输入, 数据输入代替
逻辑函数中的变量实现逻辑函数 。
例 试用八选一数据选择器 74LS151产生逻辑函数
解 把逻辑函数变换成最小项表达式:
八选一数据选择器的输出逻辑函数表达式为:
若将式中 A2,A1,A0用 A,B,C来代替, D0= D1= D3= D6= 1,
D2= D4= D5= D7= 0,画出该逻辑函数的逻辑图, 如图 3.15所示 。
BABCACABY ???
6310 mmmm
CBACBABCACABY
????
????
7766554433221100
7012601250124012
3012201210120012
DmDmDmDmDmDmDmDm
DAAADAAADAAADAAA
DAAADAAADAAADAAAY
????????
????
????
图 3.15
此例的逻辑图
Y
AB
C
E
A2
A1
A0 D0 D1 D2 D3 D4 D5 D6 D7
10
74LS151
3.2.4 数据分配器
数据分配器是数据选择器的逆过程, 即将一路输入变为多路输出的
电路 。 数据分配器的示意图 3.17所示 。
图 3.17 数据分配器的示意图图 3.18 用 74LS138作为数据分配器
图 3.19 74LS138译码器的引脚图。
图 3.18所示是用 74LS138译码器作为数据分配器的逻辑原理图, 其
中译码器的 S1作为使能端, S3接低电平, 输入 A0~A2作为地址端, S2
作为数据输入, 从 Y0~Y7分别得到相应的输出 。 图 3.19所示是 74LS138
译码器的引脚图 。
根据输出的个数不同, 数据分配器可分为四路分配器, 八路分配器等 。
数据分配器实际上是译码器的特殊应用 。 下面我们通过介绍功能表来
了解 74LS138译码器的功能 。
表 3.10 74LS138译码器的功能表
输 入 输 出
G1 C B A
× 1 × × × × 1 1 1 1 1 1 1 1
× × 1 × × × 1 1 1 1 1 1 1 1
0 × × × × × 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 1 1 1 1 1 1 1
1 0 0 0 0 1 1 0 1 1 1 1 1 1
1 0 0 0 1 0 1 1 0 1 1 1 1 1
1 0 0 0 1 1 1 1 1 0 1 1 1 1
1 0 0 1 0 0 1 1 1 1 0 1 1 1
1 0 0 1 0 1 1 1 1 1 1 0 1 1
1 0 0 1 1 0 1 1 1 1 1 1 0 1
1 0 0 1 1 1 1 1 1 1 1 1 1 0
AG2
7Y
BG2
0Y 1Y 2Y 3
Y
4Y 5
Y 6Y
7Y
输入端高电平有效,输
出端低电平有效。
本章小结
应用组合逻辑器件进行组合逻辑电路的设计时, 有以下特点:
1,对逻辑表达式的变换与化简的目的是使其尽可能与给定的组合逻
辑器件的形式一致, 而不单纯是简化 。
2,设计时应考虑合理充分应用组合器件的功能 。 同类的组合器件有
不同的型号, 应尽量选用比较简单的器件, 较少的数量来满足设
计要求 。
3、如果一个组合器件的部分功能就可以满足要求,这时需要对输
入输出信号作适当的处理。如果一个组合器件不能满足设计要求,
就需要对组合器件进行扩展,直接将若干个器件组合或者由适当
的逻辑门将这些器件组合起来。
课后作业
T3.1,试用三个半加器实现下列函数 。
T3.7、试设计组合逻辑电路,有四个输入和一个输出,当输入全为 1或
输入全为 0,或者输入为奇数个 1时,输出为 1,请列出真值表,写
出最简与或表达式,并画出逻辑图。
T3.15、试用 3线- 8线译码器扩展为 5线- 32线译码器,并画出示意图。
T3.18、试用四选一数据选择器 C1153分别实现下列逻辑函数。
A B CF
CBACABF
BABCAF
CBAF
?
???
??
???
4
3
2
1
)4(
)()3(
)2(
)1(
ABCBABCAY ???)1(
BAY ??)2(
CBACBACBACABY ????)3(