编码器的作用是将电平信号转换为具有一定含义的二进制编码。
8线-3线编码器属于普通编码器,普通编码器的特点是在任何时刻只允许输入一个编码信号,其内部电路由3个或门组成,输入为 I0 ~ I7 八个电平信号,输出为一个3位二进制代码 Y2Y1Y0 。从真值表可以看出,将I0 ~ I7分别取高电平1,其余取低电平0,可以输出 000 ~ 111 八个二进制编码。
【逻辑框图】
【真值表】
【逻辑表达式】
【内部电路】
优先编码器的特点是允许同时输入多个电平信号,但是只对其中优先权最高的一个输入信号进行处理。通常,I7的优先权最高,I0的优先权最低,I7 ~ I0的优先权依次递减。因此,当I7’=0时,输出端只给出I7相应的二进制编码111,而 I6 ~ I0相当于没用,在真值表中用×代替它们。
74HC148为低电平有效,即输入输出端为低电平0时才有效果。
为了更好地控制电路,我们为74HC148增加了一个总开关——选通输入端S’。74HC148只有在S’=0的条件下才能工作;S’=1时所有的输入端都被锁定在高电平1。
为了通过输出端Y的结果来了解输入端I的情况,我们还需要增加两个附加输出信号——选通输出端YS’和扩展输出端YEX’。YS’的低电平输出信号表示“电路工作,但没有信号输入”;YEX’的低电平输出信号表示“电路工作,且有信号输入”。
【逻辑框图】
【功能表】
【逻辑表达式】
除了74HC148以外,二-十进制优先编码器74HC147也是较为常用的编码器。它可以实现将10个输入电平信号转换为十进制编码(BCD码的反码)。从某种意义上讲,可以将其称为10线-4线编码器。
74HC147也是低电平有效,I9的优先权最高,I0的优先权最低。
【逻辑框图】
【功能表】
以74HC148为基本单元,使用多片74HC148可以组装成更复杂的2^n线-n线编码器,如16线-4线编码器、32线-5线编码器等。
如用四片74HC148构成32线-5线编码器的方法为:
设32线-5线优先编码器的输入为I0~I31,输入有效电平是低电平,其中I31的优先权最高,I0的优先权最低。输出为D4、D3、D2、D1、D0,输出有效电平是高电平。
假设用到的四块74HC148芯片分别为1~4号芯片,且4号芯片的优先权最高,1号芯片的优先权最低。
由于4号芯片优先权最高,因此只要4号芯片的输入端有信号输入,就能对输入信号进行编码,故4号芯片的选通输入端S始终要接低电平。
又根据3号芯片的优先权次之,它只有在4号芯片的所有输入端都没有输入低电平信号时,即4号芯片的选通输出端YS=0时,才能进行编码,故3号芯片的S端应接到4号芯片的YS端。同理:2号芯片的S端应接到3号芯片的YS上;1号芯片的S端应接到2号芯片的YS上。
译码和编码互为反操作,故译码器的作用是将二进制编码转换成电平信号。译码器在任何情况下都能组成组合逻辑电路。
3线-8线译码器的真值表正好与8线-3线编码器的真值表相反。最简单的3线-8线译码器通过二极管与门阵列构成,但与门阵列这种方式存在严重缺点,即输入电阻低、输出电阻高、输出电平信号会发生偏移。
【逻辑框图】
【真值表】
为了消除与门阵列的不利影响,我们通常用CMOS门电路组成3线-8线译码器74HC138。
此外,74HC138还加入了片选控制端S1、S2、S3,利用片选作用可以将多片74HC138连接起来从而扩展译码器的功能。只有当S=S1S2’S3’=S1(S2’+S3’)=1时,整个译码器才处于工作状态。
【逻辑框图】
【功能表】
与二-十进制编码器74HC147功能相反,二-十进制译码器74HC42可以将输入端的4位BCD码转换成10个电平信号。74HC42具有拒绝伪码的功能,对于除BCD码以外的1010~1111这6个伪码不予以翻译。
【逻辑框图】
【功能表】
BCD-七段显示译码器7448又被称为代码转换器,也属于广义上的译码器。
7448有两个主要的附加控制端:灯测试输入LT’和灭零输入RBI’。
只要置LT’=0,驱动的七段数码管即可同时点亮,平常应该让LT’置于1。而设置RBI’的目的是为了把不希望显示的多于的零全部熄灭。
要实现对多位数码显示系统的控制,则需要在7448中再加入一个双功能的输入/输出端BI’/RBO’:其作为输入端使用时,称为灭灯输入控制端;其作为输出端使用时,称为灭零输出端。 BI’/RBO’相当于一个总开关:只要加入灭灯信号BI’=0,无论输入端A是什么情况,数码管的各段必熄灭。而当RBO’=0则表示7448已经将本该显示的零熄灭了。将灭零输入端和灭零输出端配合使用即可以实现对多位数码显示系统的控制。
【逻辑框图】
【驱动七段数码管】
比如,我们可以用两片74HC138构成一个4线-16线译码器。只需要将两片的三个输入端分别相连,第一片的S2和S3并接入第二片的S1,并将其作为第四个输入端即可。
先将逻辑函数转换成最小项形式,之后根据Yi=mi便可以轻松找到每个逻辑函数需要使用的输出端,最后将所需输出端使用与非门并联从而输出得到逻辑函数。
数据选择器可以实现从一组数据中选出某一个特定数据。
二选一数据选择器是最简单的数据选择器。其逻辑表达式为:
Y = SEL · A + SEL’ · B
【真值表】
【电路图】
74HC153是最常用的数据选择器元件,其内含有两个完全相同的4选1数据选择器。这两个数据选择器有着公共的输入端A0、A1,但其各自的输入端D和输出端Y却是相互独立的。
S1’和S2’为附加控制端,用于控制电路状态和扩展功能。当S’=1时数据选择器工作,而S’=1时输出被封锁为低电平0。
【逻辑框图】
半加器不考虑进位,其实现的功能是两个1位二进制数相加,属于最简单的加法逻辑。若设输入端为A和B,A和B相加的结果为S,进位信号为CO。则半加器的逻辑表达式为:
S = A’B + AB’
CO = AB
【真值表】
【电路图】
而全加器考虑来自低位的进位,其中双全加器 74LS183是最简单的全加器,用CI表示其输入的进位信号,CO表示其输出的进位信号。。
【真值表】
【电路图】
串行进位加法器由低位全加器的CO接入高位全加器的CI构成。串行进位加法器的优点是结构简单,缺点是运算速度慢。
【逻辑框图】
由于加到第i位的进位输入信号是两个加数第i个加数第i位以前各位(0 ~ j-1)的函数,故可在相加前由A,B确定进位。基于这个原理,4位超前进位加法器74HC283可以实现每一位的和与最后的进位同时产生。超前进位加法器的优点是速度快,缺点是电路复杂。 当加法器的位数增加时,其电路复杂度会爆发级增长。
【逻辑框图】
【电路图】
数值比较器可以实现两个数值大小的比较。数值比较器在任何情况下都可以组成组合逻辑电路。
对逻辑变量A和B进行数值大小的比较,用Y(A>B)、Y(A=B)、Y(A
【电路图】
4位数值比较器74HC85是最常用的数值比较元件,其可以比较两个4位数的大小。在比较多位数时,必须自高向低地逐位比较,只有在高位相等时才需要继续比较低位。则其比较结果的关系式为:
Y(A>B) = ( Y(A Y(AB) + Y(A=B) )'
利用三个输入端可以将多片74HC85组合成位数更多的数值比较器电路。
【逻辑框图】
用两片74HC85可以构成一个八位数值比较器,只需要将第一片的Y(AB)不接任何地方,其余的I输入高电平即可:
第一步:进行逻辑抽象
第二步:写出逻辑函数式
第三步:将逻辑函数式转换为适当的形式
第四步:将变换后的逻辑函数式与选用器件的函数式对照比较
1.若两者形式完全相同,则直接使用该器件。
2.若两者形式大体相同,且所选器件的逻辑函数式包含更多的输入变量和乘积项,则此时需要对多余的变量输入端和乘积项做处理。
3.若选用的器件的逻辑函数式是逻辑函数的一部分,则此时可以采用多片联用或者附加少量其他器件来组成逻辑电路。
第五步:根据对照比较的结果,即可确定所用器件各个输入端应该接入的变量和常量,以及明确各片之间的连接方式。
第六步:按照得到的连接方式画出设计的逻辑电路图。