您的位置: 网站首页 > 电子与嵌入式 > 数字电子技术与逻辑设计教程 > 第5章 组合逻辑电路 > 【5.3 编 码 器】

5.3 编 码 器

 

5.3     

把二进制码按照不同的规律编排的过程叫做编码,实现编码的电路为编码器。实际上,编码是译码的逆过程。为了不使输出端出现混乱,规定在任意给定的时刻,输入端中只有一个输入出现。常见的编码器有二进制编码器﹑二-十进制编码器和优先编码器。下面分别举例来讲解。

【例5-10设计一个3位二进制编码器。

解:3位二进制编码器有8个输入端,设为:X0X1X2X3X4X5X6X73个输出端设为:Z2Z1Z0。其真值,如表5-11所示。

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

X0

X1

X2

X3

X4

X5

X6

X7

Z2

Z1

Z0

1

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

1

续上表

X0

X1

X2

X3

X4

X5

X6

X7

Z2

Z1

Z0

0

0

1

0

0

0

0

0

0

1

0

0

0

0

1

0

0

0

0

0

1

1

0

0

0

0

1

0

0

0

1

0

0

0

0

0

0

0

1

0

0

1

0

1

0

0

0

0

0

0

1

0

1

1

0

0

0

0

0

0

0

0

1

1

1

1

根据该真值表可以直接写出输出函数的逻辑表达式:

Z2=X4+X5+X6+X7

Z1=X2+X3+X6+X7

Z0=X1+X3+X5+X7

于是可以画出其或门逻辑电路图如图5-26所示。

若将表达式两次取反,得到:

Z2=X4' X5' X6' X7''

Z1=X2' X3 ' X6' X7''

Z0=X1' X3' X5' X7''

于是逻辑电路图可以用与非门改画为图5-27所示。

               

5-26  3位二进制编码器或门逻辑电路图         5-27  3位二进制编码器与非门逻辑电路图

【例5-11设计一个二-十进制编码器。

解:-十进制编码器就是将09十个字符编为BCD码。本题以8421 BCD码为例。首先给出该二-十进制编码器的真值,如表5-12所示。

5-12  -十进制编码器真值表

输入

Z3

Z2

Z1

Z0

输入

Z3

Z2

Z1

Z0

0

0

0

0

0

5

0

1

0

1

1

0

0

0

1

6

0

1

1

0

2

0

0

1

0

7

0

1

1

1

3

0

0

1

1

8

1

0

0

0

4

0

1

0

0

9

1

0

0

1

可以写出输出函数的表达式为:

Z3=8+9

Z2=4+5+6+7

Z1=2+3+6+7

Z0=1+3+5+7+9

由此可以画出其或门逻辑电路图,如图5-28所示。

5-28  -十进制编码器逻辑电路图

注意到以上的设计都没有0输入,是因为只要19输入均为0,输出就为0000。同例5-10一样,只要经过适当变换就可以将或门逻辑电路转换为与非门电路。

下面介绍优先编码器。

通过前面的学习知道,二进制编码器和二-十进制编码器都要求在给定时刻,只有一个输入端出现。优先编码器就克服了这个约束条件,优先编码器允许多个输入端同时出现,但因为它们的优先级不同,优先编码器会对其中优先级最高的输入进行编码,而对优先级较低的输入不予理睬,因此不会产生混乱和错误。下面给出二进制优先编码器的真值,如表5-13所示。

5-13  二进制优先编码器真值表

   

   

E1'

0

1

2

3

4

5

6

7

A2

A1

A0

Gs

E0

1

d

d

d

d

d

d

d

d

1

1

1

1

1

0

1

1

1

1

1

1

1

1

1

1

1

1

0

0

d

d

d

d

d

d

d

0

0

0

0

0

1

0

d

d

d

d

d

d

0

1

0

0

1

0

1

0

d

d

d

d

d

0

1

1

0

1

0

0

1

0

d

d

d

d

0

1

1

1

0

1

1

0

1

0

d

d

d

0

1

1

1

1

1

0

0

0

1

0

d

d

0

1

1

1

1

1

1

0

1

0

1

0

d

0

1

1

1

1

1

1

1

1

0

0

1

0

0

1

1

1

1

1

1

1

1

1

1

0

1

由表可见,该电路有8条数据输入线07,其中0为输入数据的最高位,7为最低位。A2A0为数据输出线,其中A2为最高位,A0为最低位。优先编码器的优先编码规则是:当有两根或两根以上输入线的输入信号为0时,它就优先将序号最大的0输入信号编码。例如,7线输入为0时,即使它前面有其他的0输入,优先编码器仍然按照7线编码。需要注意,在这里A2 A1A0是按照反码输出的。电路输入有一个使能端E1'。当E1' =0时,允许电路编码;当E1' =1时,禁止电路编码,而且电路输出还设有使能端E0和优先编码输出端Gs。只有当输入的数据中出现0时,E0=1Gs=0,表明编码器正在对数据进行优先编码。根据该真值表可以写出输出函数的逻辑表达式,并画出逻辑电路图,这里略去,只给出该优先编码器的逻辑符号,如图5-29所示。

5-29  二进制优先编码器的逻辑符号