编码器是一种数字组合电路,用于将多个输入信号转换为二进制代码。通常情况下,它在任意时刻只激活一个输入,并生成一个代表该激活输入位置的二进制输出。例如,4-2编码器拥有四个输入,并产生一个2位的输出代码。在数字系统中,编码器常用于数据压缩和高效传输。像优先编码器这样的变体,通过为输入分配优先级来处理同时出现的信号。
- 输入的数量通常为 2^n,对应 n 条输出线。
- 输入通常为高电平有效,这意味着高电压代表有效信号。
- 二进制加权编码器根据输入位置使用二进制值分配代码。
- 编码器有助于将并行输入转换为紧凑的二进制格式以便进行处理。
!EncoderEncoder
编码器有几种不同的类型,我们将在下面详细介绍:
4线-2线编码器包含四个输入端 Y3, Y2, Y1 & Y0,以及两个输出端 A1 & A0。在任意时刻,这4个输入中只能有一个为 ‘1’,以便在输出端获得相应的二进制代码。下图展示了4线-2线编码器的逻辑符号。
!4 to 2 Encoder4 to 2 Encoder
真值表
4线-2线编码器的真值表如下:
OUTPUTS(A1A0)
—
00
01
10
11> A1 和 A0 的逻辑表达式:
>
> A1 = Y3 + Y2
> A0 = Y3 + Y1
电路图
我们可以使用两个输入端的或门来实现上述两个 布尔函数 A1 和 A0:
!Implementation using OR GateImplementation using OR Gate
8线-3线编码器(或称为八进制-二进制编码器)包含 8 个输入:Y7 至 Y0,以及 3 个输出:A2, A1 & A0。每个输入线对应一个八进制数字的值,而三个输出端生成相应的二进制代码。下图展示了八进制-二进制编码器的逻辑符号。
!Octal to Binary Encoder (8 to 3 Encoder)Octal to Binary Encoder (8 to 3 Encoder)
真值表
8线-3线编码器的真值表如下:
OUTPUTS(A2A1A0)
—
000
001
010
011
100
101
110
111> A2, A1, 和 A0 的逻辑表达式:
>
> A2 = Y7 + Y6 + Y5 + Y4
> A1 = Y7 + Y6 + Y3 + Y2
> A0 = Y7 + Y5 + Y3 + Y1
电路图
我们可以使用四个输入端的 或门 来实现上述布尔函数 A2, A1, 和 A0:
!Implementation using OR GateImplementation using OR Gate
十进制-二进制编码器通常包含 10 条输入线和 4 条输出线。每条输入线对应一个十进制数字,4 个输出端对应 BCD 码。该编码器接收解码后的十进制数据作为输入,并将其编码为 BCD 输出,这些输出将显示在输出线上。下图展示了十进制-BCD编码器的逻辑符号。
!Decimal to BCD EncoderDecimal to BCD Encoder
真值表
十进制-BCD编码器的真值表如下:
OUTPUTS(A3A2A1A0)
—
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001> A3, A2, A1, 和 A0 的逻辑表达式:
>
> A3 = Y9 + Y8
> A2 = Y7 + Y6 + Y5 +Y4
> A1 = Y7 + Y6 + Y3 +Y2
> A0 = Y9 + Y7 +Y5 +Y3 + Y1
电路图
我们可以使用或门来实现上述布尔函数:
!Implementation using OR GateImplementation using OR Gate
4线-2线优先编码器有 4 个输入:Y3, Y2, Y1 & Y0,以及 2 个输出:A1 & A0。在这里,输入端 Y3 具有最高优先级,而输入端 Y0 的优先级最低。在这种情况下,即使同时有多个输入为 ‘1’,输出端也将生成对应于具有较高优先级输入的(二进制)代码。
真值表
优先编码器的真值表如下:
| I