数字电子技术及应用
上QQ阅读APP看书,第一时间看更新

第二节 编码器

在数字系统中,经常需要把某种特定含义的信号变换成二进制代码。所谓编码就是用一组代码来表示文字、符号或者数码等特定信息对象的过程。能够实现编码功能的组合电路称为编码器。例如,计算机的键盘就是由编码器组成的,每按一次键,编码器就将该键信号转换成二进制代码。

在编码器中采用二进制数作为代码,一位二进制数仅有0和1两个代码,表示两个相反的信号;两位二进制数有00、01、10、11四个代码,可以表示四个不同的信号。一般地说,n位二进制数有2n个代码,可表示2n个信号。所以,对N个信号进行编码时,可用公式2n≥N来确定所需的二进制代码的位数n。常见的编码器有二进制编码器、二-十进制编码器和优先编码器等。

一、二进制编码器

将N=2n个输入信号变换成n位二进制代码的编码电路,称为二进制编码器。图2-7是3位二进制编码器示意图。现以8线-3线编码器为例说明二进制编码器的工作原理。

这种编码器有8条输入信号线I0、I1、…、I7,3条输出线Y2、Y1、Y0,所以称为8线-3线编码器。对于每个输入信号都有一组相应的输出代码,其真值表见表2-3。

图2-7 3位二进制编码器示意图

根据逻辑表达式可画出用与非门组成的3位二进制编码器,如图2-8所示。在图中,I0的编码是隐含着的,当I1~I7均为0时,电路的输出就是I0的编码。应当指出,编码器在任一时刻只能对一个输入信号进行编码,在输入端不允许出现两个同时为1的信号,否则输出将发生混乱,所以输入信号之间是互相排斥的。

表2-3 3位二进制编码器真值表

图2-8 用与非门组成的3位二进制编码器

二、二-十进制编码器

将十进制数0~9的10个数码编成相应的二进制代码的电路,称为二-十进制编码器。图2-9为二-十进制编码器示意图,其输入信号有N=10个,用I0、I1、…、I9表示,根据2n≥10确定编码位数,则n=4。这样的输出就是一组4位二进制代码,用Y3、Y2、Y1、Y0表示。

由于4位二进制代码共有16个不同组合,可任选其中10种表示0~9的10个数码,这就有不同的编码方式。现以常用的8421BCD编码器为例说明其电路结构与工作原理。

8421BCD编码器有10条输入线I0、I1、…、I9,用它们表示1位十进制数的10个数码,有4条输出线Y3、Y2、Y1、Y0,表示4位二进制代码。电路在任一时刻只允许对输入的一个十进制数进行编码,不允许出现两个或两个以上输入信号同时为1的情况。8421BCD编码器真值表见表2-4。

图2-9 二-十进制编码器示意图

由真值表可得

根据逻辑表达式可画出8421BCD编码器逻辑电路图,如图2-10所示。由逻辑电路图可知,当I8端有信号(I8=1),而其他输入端无信号时,输出代码为Y3Y2Y1Y0=1000,完成对I8的编码,其余类似。当输入端全无信号时,即I1~I9均为0,则输出代码为Y3Y2Y1Y0=0000,隐含对I0的编码。

表2-4 8421BCD编码器真值表

图2-10 8421BCD编码器逻辑电路图

三、8421BCD码优先编码器

前面讨论的编码器其输入信号是相互排斥的。实际应用中,有时存在两个以上的输入信号同时输入,要求输出不出现混乱,而且能按预定的优先顺序对信号进行编码,这种组合电路称为优先编码器。至于优先级别的高低,可由设计人员根据问题的轻重缓急决定。

例如,旅客列车分特快、直快和普快三种,它们的优先级顺序是特快最高,其次是直快,最低级是普快。显然,在同一时刻只允许一趟列车从车站开出,只能给出一个发车信号,用优先编码器可满足上述要求。

在计算机中,常有许多输入设备,可能同时向主机发出中断请求,而在同一时刻只能给其中一个设备发出操作指令。因此,必须事先对这些设备规定优先级别。所以,计算机的优先中断系统也会用到优先编码器。

常用的集成优先编码器器件型号见表2-5。现讨论8421BCD码优先编码器74LS147的工作原理。

图2-11(a)为74LS147的逻辑图,图2-11(b)为它的引脚排列图。它有10条输入信号线,输入低电平有效,即为0时表示有信号,为1时表示无信号;有4条输出信号线,输出是8421BCD码的反码。根据逻辑图可写出的逻辑表达式:

表2-5 常用的集成优先编码器器件型号

图2-11 二-十进制优先编码器74LS147

表2-6是10线-4线74LS147优先编码器的真值表,的优先权最高,次之,依次类推为最低。当几个输入端同时出现为0的信号时,编码器只对优先级别最高的进行编码。即编码器只对优先级别最高位出现0的输入端进行编码,而不管优先级别比它低的各位是否出现0,因此比它级别低的输入端均用“×”表示。例如,当时,不管其他输入端是什么,输出的是与相对应的8421BCD码的反码,即,而不是1001;如果均为1时,则,它是8421BCD码“0”的反码,隐含着对的编码。

表2-6 74LS147优先编码器的真值表

74LS147用作键盘编码器的电路如图2-12所示。通过编码器将按键表示的十进制数转换成相应的二进制数,送入计算机系统。由于编码器的输入信号与输出信号均为低电平有效,故在按键的一端接地,另一端通过电阻接电源,当按键按下时,为低电平,表示有信号输入;而按键松开时,为高电平,表示无有效信号输入。对于输出端,则采用反相器输出,使输出信号反相为高电平。

图2-12 74LS147用作键盘编码器的电路