第三节 译码器
译码是将代码的特定含义“翻译”出来,是编码的逆过程。实现译码功能的组合电路称为译码器。目前,数字电路中所用的译码器均采用集成器件,它有多个输入线和输出线,输入是一组二进制代码,输出是具有特定含义的逻辑信号,常见的输出信号是高电平或低电平。每个输出信号只对应于一组输入代码,因此一个输出信号与一组输入代码有着一一对应关系。
译码器的用途很广,种类很多,按照功能的不同,可分三类:
①变量译码器:用于表示输入变量状态,如二进制译码器。常见的有2线-4线译码器、3线-8线译码器、4线-16线译码器等。
②码制变换译码器:用于同一个数据的不同代码间的变换,如二-十进制译码器。常见的有BCD-十进制译码器。
③显示译码器:将数字、文字或符号的代码按其原意译成相应的输出信号,并通过显示器件显示。常见的有七段数码显示器。
二进制译码器和二-十进制译码器等又统称通用译码器。
一、二进制译码器
将二进制代码按其原意翻译成相应的输出信号的组合电路,称为二进制译码器。也称为n线-2n线译码器,即它有n条输入线,2n条输出线。其功能是将n位二进制代码译成2n种输出状态。图2-13所示为3线-8线译码器的示意图,图中有3条输入线,即输入变量数为3,可组成3位二进制代码;有8条输出线,分别对应于8个输出状态。每条输出线对应于一组输入代码,在某一时刻只有一条输出线为有效电平,其余输出线为无效电平。
常用的中规模集成二进制译码器器件型号见表2-7。现以3线-8线74LS138译码器为例说明译码器的工作原理。
图2-13 3线-8线译码器的示意图
表2-7 常用的中规模集成二进制译码器器件型号
74LS138译码器的逻辑图、引脚排列图如图2-14(a)、(b)所示。A0、A1、A2为3条输入线,为8条输出线,输出低电平有效,即输出低电平时表示有信号,高电平时表示无信号。输出信号与输入代码有着对应关系,只有对应于某组输入代码的输出线才会输出有效电平。例如,当A2A1A0=000时,输出,因此为有效电平,而此时均为1,它们均为无效电平;当A2A1A0=001时,输出,而均为1,此时只有是有效电平。依次类推,其真值表见表2-8。
图2-14 74LS138译码器的逻辑图、引脚排列图
电路附加3个使能端,用来控制电路的工作状态。当时,译码器处于正常译码状态,这时输出的状态由输入变量确定,由逻辑图可写出各输出的逻辑表达式:
表2-8 74LS138译码器真值表
当时,译码禁止,所有输出端同时出现高电平。端又称选通端,合理使用,可以实现片选功能,可以将多片译码器连接起来,以扩展译码器的位数。例如用两片74LS138可组成4线-16线译码器,如图2-15所示。将输入的4位二进制代码A3A2A1A0译成16个独立的低电平信号。由图2-14(a)可见,74LS138仅有3个地址输入端A2A1A0。如果想对4位二进制代码译码,只能利用一个选通端(当中的一个)作为第四个地址输入端。我们希望当输入为0000~0111时,第一片74LS138工作;当输入为1000~1111时,第二片74LS138工作。可见,用代码最高位控制两片译码器的选通端实现片选功能,可以使它们交替工作。
图2-15 用两片74LS138组成4线-16线译码器
用译码器还可实现组合逻辑函数。因为二进制译码器输出能产生输入变量的所有最小项。低电平输出时:,而任何一个组合逻辑函数都可以变换为最小项之和的标准形式。因此,用译码器和门电路可实现任何单输出或多输出的组合逻辑函数。当译码器输出低电平有效时,选用与非门共同实现。
【例2-3】 用译码器和门电路实现逻辑函数: 。
解:①选择译码器。由于Y中有3个变量A、B、C,故应选3线-8线译码器,如74LS138。因74LS138输出为低电平有效,故选用与非门。
②将Y变换为标准与或表达式。
③令A2=A、A1=B、A0=C,可画出逻辑电路如图2-16所示。
图2-16 逻辑电路
二、二-十进制译码器
将二-十进制代码翻译成对应的10个十进制数字信号的组合电路,称为二-十进制译码器。现以4线-10线74LS42译码器为例说明其工作原理,其真值表见表2-9。
表2-9 二-十进制译码器真值表
图2-17(a)、(b)为74LS42译码器的逻辑图、引脚排列图。这种译码器有4条输入线A0、A1、A2、A3,输入是4位BCD码,有10条输出线,分别对应十进制的10个数字,输出低电平有效。当A3A2A1A0=0110时,输出,其余均为1,只有为有效电平。当A3A2A1A0=1001时,输出,其余均为1,为有效电平,以此类推。根据逻辑图可写出各输出端的逻辑表达式:
图2-17 74LS42译码器的逻辑图、引脚排列图
74LS42译码器采用完全译码方式,未使用约束项,故能自动拒绝伪码输入,当输入为1010~1111这6个无效状态时,输出端均为1,译码器拒绝译出。
若输出和闲置不用时,可将A2A1A0作为三位代码输入线,而将A3作为使能端(低电平有效),此时,74LS42译码器可作为3线-8线译码器使用。按这种使用方法,还可将两片74LS42接成4线-16线译码器。
三、显示译码器
将数字、符号或文字的二进制编码翻译成人们习惯的形式,并能直观显示的电路,称显示译码器。数字显示电路一般由译码器、驱动器和显示器组成,用于数字测量仪表、计算机和其他数字系统中。目前,显示器件种类较多,现仅介绍几种常用的数码显示器和七段显示译码器。
1.常用的数码显示器
数码显示器是用来显示数字、符号和文字的器件。常用的数码显示器有辉光数码管、荧光数码管、半导体数码管、液晶显示器等。
(1)半导体数码管(LED)
半导体数码管是用发光二极管组成的字形显示器件。常用磷砷化镓、磷化镓、砷化镓等半导体制成PN结,并且其掺杂浓度很高。当PN结外加正向电压而导通时,能辐射发光。发出光线的波长与磷和砷的比例有关,磷的比例越大波长越短,通常能发出红、绿、黄等不同颜色的可见光。
将七个条形的发光二极管排列成“日”字形,封装在一起即构成了半导体数码管。七个条形的发光二极管组成七个字段,利用七个字段的组合,便可显示0~9十个数字。图2-18(a)为国产BS202七段数码管的外形及引脚排列图,图2-18(b)为各段组合显示的字形。有些数码管的右下角还增加了一个小数点DP,成为字形的第八段。当译码器输入代码为0011时,a、b、c、d、g段亮,显示“3”字;当译码器输入代码为1000时,七段全亮,显示“8”字。
图2-18 BS202七段数码管
LED数码管内部接线有共阳极和共阴极两种,如图2-19(a)、(b)所示。由于LED数码管工作电压较低,可以直接用TTL或CMOS集成电路驱动,也可以用七段显示译码器驱动。对于共阴极的LED数码管,字段在接高电平时发光,可以直接用输出高电平的七段显示译码器74LS48驱动;对于共阳极的LED数码管,字段在接低电平时发光,可以直接用输出低电平的七段显示译码器74LS47驱动。否则,需加一级反相器进行电平转换。
图2-19 LED数码管内部电路接法
LED数码管的优点是工作电压低(1.5~3V)、字形清晰、亮度高、体积小、寿命长、可靠性强、响应速度快、颜色种类多,能与集成电路直接连接,在各种数字系统和数字仪表中应用广泛,缺点是工作电流比较大。常用的LED数码管型号见表2-10。
表2-10 常用的LED数码管型号
(2)液晶显示器(LCD)
液晶显示器是利用液态晶体在电场作用下对光的反射变化的原理实现显示的。液态晶体简称液晶,是一种介于晶体和液体之间的有机化合物。液晶具有液体的流动性,又具有晶体的光学特性,利用液晶的颜色和透明度受电场影响的特点制成显示器。液晶显示器有分段式和点阵式显示屏两种。它是一种被动式显示器件,液晶本身不发光,仅借助环境光来显示字形,因此不能在黑暗中显示。
在无外加电场下,液晶分子取向规则排列,如图2-20(a)所示,液晶呈透明状态,射入的光线大部分由反射电极反射回来,显示器呈白色。当各段电极外加电场后,液晶因电离而产生正离子,这些正离子在电场下运动并碰撞其他液晶分子,破坏了液晶分子的规则排列,使液晶呈混浊状态,如图2-20(b)所示,对入射光产生散射,仅有少量光反射回来,显示器呈暗灰色,可显示相应的字形。当外加电场消失,液晶又恢复规则状态。
液晶分段式显示屏的结构示意图如图2-20(c)所示,它在一块很平整的玻璃上喷上二氧化锡透明导电层,将它光刻成七段透明电极,作为正面电极。用同样的方法,在另一块玻璃上制成“日”字形电极,作为反面电极(公共电极),然后封装成间隙约为10μm的液晶盒,注入液晶后密封,即成了液晶显示器。如在正面电极的某些段和公共电极间加上适当的电压时,这些段的夹层液晶就会受到电场作用,吸收环境光后就把字形显示出来。只要选择不同的电极组合,并加上适当电压,就能显示0~9各个字形。
图2-20 液晶显示器结构
液晶显示器的最大优点是工作电流极小,功耗很低,工作电压也很低,但它的缺点是亮度差,响应速度慢。一般使用在电子钟表、电子计算器以及各种便携式仪器仪表中。液晶显示器需要专用译码器驱动,常用的有C4055、C4056、C306等。图2-21所示、1为用C4056直接驱动LCD的电路。
2.七段显示译码器
使用半导体数码管和液晶显示器时,必须配合使用七段显示译码器。通过七段显示译码器先将输入的BCD码译出,然后经驱动电路点亮对应的字段。因此,七段显示译码器的功能就是将4个输入端的BCD码翻译成可驱动七段数码管所需的电平,以显示BCD码所对应的十进制数。
现以A0~A3表示输入的8421BCD码,以Ya~Yg表示输出的驱动七段数码管对应段的电平信号,并以1表示显示段亮,以0表示灭。七段显示译码器74LS48的真值表以及相应显示字形见表2-11,其中还规定了1010~1111这六种状态的字形。
图2-21 用C4056直接驱动LCD的电路
表2-11 七段显示译码器74LS48的真值表以及相应显示字形
续上表
实现七段显示译码功能的电路可以用若干与非门组成。目前,中规模集成显示译码器已广泛使用,且品种也比较多。现以74LS48为例说明其工作原理。74LS48的逻辑图、引脚排列图如图2-22所示,它由字段译码电路和辅助控制电路两部分组成。
图2-22 74LS48的逻辑图、引脚排列图
(1)字段译码电路
在辅助控制信号均为1时,电路实现正常译码。根据逻辑图可写出各段输出信号的逻辑表达式:
(2)辅助控制电路
为了增加器件的功能,电路中增加了试灯、灭灯、灭零辅助功能。各辅助控制信号均为低电平有效,当它们接高电平或悬空时,不影响译码电路的正常工作。
①试灯输入。的功能是用来测试数码管各段能否正常发光。当时,G12~G14输出均为1,而G8~G10输出均为0,等效于A2A1A0=000,由Ya~Yf逻辑表达式可知,各表达式中的所有乘积项都至少带有A0~A2的一个因子,使Ya~Yf输出均为1,而Yg逻辑表达式中因有,所以Yg输出也为1,这时七段全亮,显示“8”。若某一段不亮,说明该段有问题,以此达到测试的目的。
②灭灯输入。的功能是用来控制数码管的显示或消隐。当时,G16输出为0,G8~G11的输出均为1,与试灯情况恰好相反,等效于A3A2A1A0=1111,译码输出Ya~Yg均为0,七段全暗,实现了灭灯作用。信号为高电平时,能正常显示,这样可利用信号实现显示或消隐。
③灭零输入。的功能是用来熄灭不希望显示的零。例如,由6个数码管连成6位十进制数字显示系统时,在显示46.8时将出现046.800字样,为了显示清晰,应将前后多余的零熄灭。
当输入A3A2A1A0=0000时,本该显示0,如果需要将这个零熄灭,可加入的信号。由逻辑图可知,当时,若输入A3A2A1A0=0000,则G17的输入全为1,使G17、G16为0,G8~G11的输出均为1,Ya~Yg输出均为0,使本该显示的0熄灭,实现了灭零要求。
当输入其他非零数码时,G12~G15的输出中至少有一个为0,G17输出就为1,解除了对G8~G11门的封锁,所以对非零数码可正常显示。
④灭零输出。灭零输出与灭灯输入共用一个引出端。的功能是用作灭零指示,又称动态灭零,其输出表达式为
上式表明,当A3A2A1A0=0000、 时,且有灭零输入 时, 才会输出0,因此 表示该数位已将本来应显示的0熄灭了,说明本位处在灭零状态。此时可输出一个灭零信号 到低位的灭零输入 ,允许低一位灭零;但当 时,低一位就不能灭零。这样可消去混合小数的前零和无用的尾零,而保留非0数码和有效的0数码。例如,0605.300可显示为605.3,如图2-23所示。
图2-23 有灭零控制的6位数码显示系统
将与配合使用,可实现多位数码显示系统的灭零控制。在图2-23中使各译码器的,并使整数部分的最高位接0,最低位接1,高位的接低位的;而对小数部分的最高位接1,最低位接0,低位的接高位的,这样就能将前后多余的零灭掉。
在这种连接方式下,只有整数部分的最高位的零会灭掉,并且在熄灭的情况下,低位才有灭零输入信号;而小数部分的最低位的零会灭掉,在熄灭的情况下,高位才有灭零输入信号。本例中,片1的零会熄灭,片3的零不会熄灭,而片6、片7的零会熄灭。如果各位全为0,则只有小数点的前一位和后一位的零被显示,即显示为0.0。这种灭零控制方法使显示结果更醒目。
常用的七段显示译码器见表2-12。其中74LS47与74LS48显示字形相同,46与74LS49显示字形相同,74LS48与74LS49的差别仅在于显示6和9的字形不同,另外46与246、47与247、48与248的差别也在于显示6和9的字形不同,它们的显示译码原理相同。
表2-12 常用的七段显示译码器
七段显示译码器74LS48可直接驱动共阴极的LED数码管。74LS48的输出端内部有上拉电阻(2kΩ),因此在与LED数码管连接时无须外接电阻。但当VCC=5V时,输出电流仅2mA,如果数码管需要较大电流时,需要在上拉电阻上并联适当电阻,图2-24给出了74LS48驱动BS202数码管的连接方法。
图2-24 74LS48驱动BS202数码管的连接方法