回顾:系列(四)中讲到了组合逻辑电路的设计和分析
3.1 编码器
引入:我们知道数字设备只能处理二进制代码的信息,因此我们必须将需要输入进设备的信息,转化成符合一定规则的二进制代码(比如我们将数字2编码成010),编码就是上述的过程。用于编码的逻辑电路就是编码器。常用的编码器有:二进制编码器、二-十进制编码器。
3.1.1 二进制编码器
二进制编码器,是使用n位二进制代码对N=个特定信息进行编码的逻辑电路(比如需要编码0-7这8个数字信息,只需要使用3位二进制代码编码)。
根据输入是否互相排斥,又可以分为两类:
(1)具有输入相互排斥的编码器
(2)优先编码器
具有输入相互排斥的编码器:
是指某一时刻,编码器的N个输入端中仅有一个有效电平。
3.1.1.1实例:
试设计一个具有相互排斥的输入条件的编码器,将X1、X2、X3、X4,4个输入信号(高电平有效)编成二进制代码。
解析:
首先明确N=4(有四个输入信号),输出是2位二进制代码,形成如下图编码表:
输入信号 | A1 | A0 |
X0 | 0 | 0 |
X1 | 0 | 1 |
X2 | 1 | 0 |
X3 | 1 | 1 |
注:A0、A1为两位二进制输出码
根据下图(a)真值表(只有当输入一个有效时才有输出),使用图(b)卡诺图化简可得
;
,得到下图(c)中逻辑电路
因为要求具有相互排斥,在任意时刻仅有一个输出信号有效,若不满足这个条件,输出将出现错误(例如:同时使X2和X1为有效电平输入为1,由于表达式A1A0=11,与X3代码发生混淆)
优先编码器
与相互排斥的编码器不同,它允许多个输入有效,根据优先级优先输出,与相互排斥的编码器相同的是,它也只有一个输出
3.1.1.2 实例
试设计一个具有优先级的输入条件的编码器,将X1、X2、X3、X4,4个输入信号(高电平有效)编成二进制代码。
解析:
首先允许多个输入端同时高电平有效,并先规定输入信号的优先级X3-X2-X1-X0,X3优先级最高,X0优先级最低,根据此条件列出真值表下图(a),并且表中新加入EO输出端,EO=1表示无信号输入。将给出的真值表进行图(b)的卡诺图化简,图(c)为逻辑设计出的电路。
3.1.2 二-十进制编码器
二-十进制编码器,使用BCD码对这十个输入信号进行编码的电路,很明显,有十个输入,四个输出(因为BCD码是用四位二进制代码进行编码的),所以又称为10线-4线编码器。该编码器也可以分成互相排斥和优先级编码器,但设计思路与二进制编码器相同,在此不再赘述。
3.1.3 通用编码器集成电路
下面我们介绍两款常用的优先编码器74LS147和74LS148。
(1)8线-3线优先编码器74LS148
74LS148的逻辑图如下图所示:
ps:
1:因为它有8个输入端和3个输出端,所以叫它8线-3线优先编码器。
2:表示8个输入端,
表示3个输出端(Y2是高权位,Y0是低权位),且输出的是二进制反码的形式,举个栗子,当输入I6有效时,得到的输出是001,实际上要看成110(二进制形式),如果输出是高电平有效则正常读取则可。
3:在每一个的头上加上一个小横线,比如,表示输入端低电平有效,就是说什么呢,当你输入0的时候这个端口才是有效的;当
时,表示输入高电平有效,即当输入1时,这个端口有效。
4:在横线上的数字表示他的管脚号,如的横线上有个数字10,表示它的管脚的编号是10。
5:我们看到5管脚的,表示的是使能输入端,当改管脚输入0时(有效),编码器正常作用;当该管脚输入1时,编码器禁止工作。
6:分别为选通输入端和扩展输出端,具体作用请看下文74LS148真值表
上图为74LS148真值表,图中是使能端,
是选通输入端,
是拓展输出端。
我们发现只有当使能端输入0(有效电平)时,输入端的输入才有效,为什么说这是优先编码器呢,首先优先级是从大到小,我们可以看一下有数字开始的第五行,输入是“XXXXX011”,当前两个优先级高的(I7、I6)都未输入有效时,I5输入端是有效的,因为I0-I4的优先级小于I5,所以无论I0-I4输入1还是0都不影响输出结果,即使都是0,还是选取优先级最高的I5。
(2)10线-4线优先编码器74LS147
下图为74LS147管脚图(实在早不到合适的逻辑图了ToT,用管脚图代替了):
(NC端可以不管,也可以接个接地电容,空着也行)
与前文74LS148相同为输入端(依然是低电平有效),输出端
为输出端,为啥没有I0呢?,因为当各个输入线输入1时(输入无效时)的情况是等效的所以没有显示。
下图为74LS147的功能表,看图方法与前文一致。
(带译码驱动的数码管的输入部分先不看)