第 4章编码器与译码器
Coder and Decoder
⑴
⑷
⑵
⑶
丁 丙 乙 甲问题,将 4个抢答器的输出信号编为二进制代码,设计一个简单的电路实现此功能 —— 这个过程就是编码。
F0 =A3+A1
F1 =A3+A2
一、编码器
A3 A2 A1 A0
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0
F1 F0
0 0
0 1
1 0
1 1
输 入 输出
4-2线编码器
4( =22)种情况,需 2位二进制码就能将所有情况表示;
2n种情况,只需要 n位二进制码就能完全表示!
2n ≥m
8 ( =23)种情况,需 3位二进制码就能将所有情况表示;
16 ( =24)种情况,需 4位二进制码就能将所有情况表示;
7种情况需几位二进制码表示? 9种呢?
◆ 用 n 位二进制代码对 2n个信号进行编码的电路就是 二进制编码器 。
74LS148是 8-3线优先编码器表 4.10 74LS148编码器功能表
1 1
1 0
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
1 1 1
1 1 1
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
1 X X X X X X X X
0 1 1 1 1 1 1 1 1
0 0 X X X X X X X
0 1 0 X X X X X X
0 1 1 0 X X X X X
0 1 1 1 0 X X X X
0 1 1 1 1 0 X X X
0 1 1 1 1 1 0 X X
0 1 1 1 1 1 1 0 X
0 1 1 1 1 1 1 1 0
GS EOY2Y1Y0EI I7 I6 I5 I4 I3 I2 I1 I0
输 出输 入
74LS148逻辑符号
1,二进制编码器图 4.14所示为利用
74LS148编码器监视 8个化学罐液面的报警编码电路。若 8
个化学罐中任何一个的液面超过预定高度时,其液面检测传感器便输出一个 0电平到编码器的输入端。编码器输出 3位二进制代码到微控制器。
此时,微控制器仅需要 3根输入线就可以监视八个独立的被测点。
微控制器报警编码电路
★ 74LS148 8-3线优先编码器 应用 1
★ 74LS148 8-3线优先编码器 应用 2
用编码器构成 A/D转换器图 4.15为 74LS148构成的 A/D转换器。这个电路主要由比较器、寄存器和编码器 3部分组成。
输入信号 (模拟电压 ),
同时加到 7个比较器的反相端,基准电源经串联电阻分压为 8级,量化单位 q=UR/ 7,各基准电压分别加到比较器的同相端。
这里寄存器 74LS373
由 8个 D触发器构成。 它的作用是把比较器输出的信号经寄存器缓冲。
2,二 — 十进制编码器将十进制数的 0~9编成二进制代码的电路 (8421BCD码编码器 Binary
Coded Decimal)。 如,实训 4中采用的 74LS147优先编码器,
74LS147优先编码器功能表
1 1 1 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1 1 1 1 1 1
0 X X X X X X X X
1 0 X X X X X X X
1 1 0 X X X X X X
1 1 1 0 X X X X X
1 1 1 1 0 X X X X
1 1 1 1 1 0 X X X
1 1 1 1 1 1 0 X X
1 1 1 1 1 1 1 0 X
1 1 1 1 1 1 1 1 0
D C B AI9 I8 I7 I6 I5 I4 I3 I2 I1
输 出输 入
74LS147编码器的逻辑符号
◆ 例,一个简单的两位二进制代码的译码器。
输入是一组两位二进制代码 AB,输出是与代码状态相对应的
4个信号 Y3Y2Y1Y0。
输 入 输 出
A B Y3 Y2 Y1 Y0
0 0
0 1
1 0
1 1
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0
表 4.12 译码器的真值表真值表与我们前面学过的什么很相似? 你发现了吗?
二、译码器
1,二进制译码器 二进制译码器是把二进制代码的所有组合状态都翻译出来的电路。如果输入信号有 n 位二进制代码,输出信号为 m个,m= 2n。
● 74LS138—— 二进制译码器。
321 SSS,、
表 4.13 74LS138译码器功能表输 入 输 出
A2 A1 A0 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
0 ×
× 1
1 0
1 0
1 0
1 0
1 0
1 0
1 0
1 0
× × ×
× × ×
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1
1 0 1 1 1 1 1 1
1 1 0 1 1 1 1 1
1 1 1 0 1 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 1 0 1 1
1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 0
321 SSS?
◆ 另有三个附加的控制端
74LS138译码器的逻辑符号
◆ 在 S1=1,=0时,输出信号才取决于输入信号 A2,A1、
A0的组合。
◆ 当 S1=0时,无论其他输入信号是什么,输出都是高电平,即无效信号。
◆ 为高电平时,输出也都是无效信号。
32 SS?
70 ~YY
32 SS?
三点说明:
例,用两片 3-8线译码器 74LS138构成 4-16线译码器,电路如图 4.7所示。
◆ 电路中,当 D=0时,片( 2)被禁止,片( 1)工作,这时将 DCBA的
0000~0111 这 8 个代码译成片( 1) 8 个低电平信号输出。
◆ 当 D=1时,片( 1)被禁止,片( 2)工作,这时则将 DCBA的
1000~1111 这 8 个代码译成片( 2) 8 个低电平信号输出。
由此,片( 1)、( 2)便构成了 4— 16线译码器。
70 ~YY
70 ~YY
C
B
A
D
例 4.1 用全译码器实现逻辑函数 AB CCBACBACBAf
解 ( 1)全译码器的输出为输入变量的相应最小项之非,故先将逻辑函数式 f 写成最小项之反的形式。由摩根定理
ABCCBACBACBAf
( 2) f 有三个变量,因而选用三变量译码器。
( 3)变量 C,B,A 分别接三变量译码器的 C,B,A 端,则上式变为:
7120 YYYY
图 4.18是用三变量译码器 74LS138实现以上函数的逻辑图。
图 4.18
★ 74LS138 3-8译码器 应用 1—— 实现逻辑函数例如:要将输入信号序列 00100100 分配到 Y0 通道输出。
在图中,如果 D输入的是时钟脉冲,则由地址码的状态将该时钟脉冲分配到 Y0~Y7的某一个输出端,从而构成时钟脉冲分配器。
★ 74LS138 3-8译码器 应用 2—— 数据分配器或时钟分配器译码器的应用 3
译码器作地址译码器图 4.16 四输入变量译码器用于存储器的地址译码 实现微机系统中存储器或输入 /输出接口芯片的地址译码是译码器的一个典型用途。
图 4.16所示是四输入变量译码器用于半导体只读存储器地址译码的一个实例。
图中,译码器的输出用来控制存储器的片选端,而译码器的输出信号取决于高位地址码
A5~A8。 A5~A8四位地址有 16个输出信号,利用这些输出信号从 16
片存储器中选用一片,再由低位地址码 A0~A4从被选片中选中一个字,从而读出选中字的内容 。
2,二 — 十进制译码器将 4位二 — 十进制代码翻译成 1位十进制数字的电路就是二 — 十进制译码器,又称为 BCD— 十进制译码器。
数字输 入 输 出
A3A2A1A0
0
1
2
3
4
5
6
7
8
9
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
0 1 1 1 1 1 1 1 1 1
1 0 1 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1
1 1 1 0 1 1 1 1 1 1
1 1 1 1 0 1 1 1 1 1
1 1 1 1 1 0 1 1 1 1
1 1 1 1 1 1 0 1 1 1
1 1 1 1 1 1 1 0 1 1
1 1 1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 1 1 0
无效
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
74LS42译码器功能表
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9
由功能表可知,该译码器有 4个输入端 A3A2A1A0,并且按 8421BCD编码输入数据。
它有 10个输出端,分别与十进制数 0~9相对应,低电平有效。对于某个 8421BCD
码的输入,相应的输出端为低电平,其他输出端为高电平。当输入的二进制数超过
BCD码时,所有输出端都输出高电平,呈无效状态。
74LS42二 — 十进制译码器的逻辑图所示。
( 1)七段显示译码器
3,字符显示译码器七段 LED(Light Emitting Diode)数码显示器的显示原理,
c
a
b
de
f g
dp
a b
cde
fg
GND
GND
dp 共阴极
a
R? 8
b
c
d
e
f
g
dp
Vcc
Vcc
cde
GND
dp
a
b
cde
f
dp
a bfg
GND
R= 1K?
5V
直流电源
c
a
b
de
f g
dp
a b
cde
fg
GND
GND
dp
cde
GND
dp
a
b
cde
f
dp
a bfg
GND
R= 1K?
c
a
b
de
f g
dp
a b
cde
fg
GND
GND
dp
5V
直流电源显示数字 1
R
5V
直流电源
R
R
显示数字 2
g f a b
e d c dp
c
a
b
de
f g
dpc
a
b
de
f g
dp
a b
cde
fg
GND
GND
dp
R
5V
直流电源
R
R
R
显示数字 3
g f a b
e d c dp
c
a
b
de
f g
dpc
a
b
de
f g
dp
a b
cde
fg
GND
GND
dp
0
0
0
0
1
◆
实训电路
74LS147
二 — 十进制 (8421)
优先编码器
74LS48
与共阴极数码管配合使用字符显示译码器七段显示器实验中用的型号为 WT5101BSD是共阴极数码管由
74LS48驱动
( 4) LCD显示电路 LCD液晶显示器是当今功耗最低的一种显示器,因而特别适合于袖珍显示器、低功耗便携式计算机、仪器仪表等的应用。
图 4.13 一位七段 LCD显示器驱动电路的逻辑图 图中信号 A~G是七段译码器输出的每段信号电平。显示驱动信号 Dfi一般为 50Hz~100Hz(数字钟、表往往是
32Hz或 64Hz)的脉冲信号。该信号同时加到液晶显示器的公共电极。在译码器内部异或门的作用下,送到液晶显示器信号电极上的驱动信号 a~g是信号 Dfi分别与段信号 A~G的异或信号。
要显示的字段上所加的峰峰值电压为电源电压的两倍。
由图可见,送到液晶显示段上的显示信号为脉冲信号,因此液晶显示段的发亮是一个连续脉冲式发亮过程。
由于此脉冲频率较快,视觉上感到是一直在发亮,这是
LCD的特点。
作 业
P 99
4.4
6
Coder and Decoder
⑴
⑷
⑵
⑶
丁 丙 乙 甲问题,将 4个抢答器的输出信号编为二进制代码,设计一个简单的电路实现此功能 —— 这个过程就是编码。
F0 =A3+A1
F1 =A3+A2
一、编码器
A3 A2 A1 A0
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0
F1 F0
0 0
0 1
1 0
1 1
输 入 输出
4-2线编码器
4( =22)种情况,需 2位二进制码就能将所有情况表示;
2n种情况,只需要 n位二进制码就能完全表示!
2n ≥m
8 ( =23)种情况,需 3位二进制码就能将所有情况表示;
16 ( =24)种情况,需 4位二进制码就能将所有情况表示;
7种情况需几位二进制码表示? 9种呢?
◆ 用 n 位二进制代码对 2n个信号进行编码的电路就是 二进制编码器 。
74LS148是 8-3线优先编码器表 4.10 74LS148编码器功能表
1 1
1 0
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
1 1 1
1 1 1
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
1 X X X X X X X X
0 1 1 1 1 1 1 1 1
0 0 X X X X X X X
0 1 0 X X X X X X
0 1 1 0 X X X X X
0 1 1 1 0 X X X X
0 1 1 1 1 0 X X X
0 1 1 1 1 1 0 X X
0 1 1 1 1 1 1 0 X
0 1 1 1 1 1 1 1 0
GS EOY2Y1Y0EI I7 I6 I5 I4 I3 I2 I1 I0
输 出输 入
74LS148逻辑符号
1,二进制编码器图 4.14所示为利用
74LS148编码器监视 8个化学罐液面的报警编码电路。若 8
个化学罐中任何一个的液面超过预定高度时,其液面检测传感器便输出一个 0电平到编码器的输入端。编码器输出 3位二进制代码到微控制器。
此时,微控制器仅需要 3根输入线就可以监视八个独立的被测点。
微控制器报警编码电路
★ 74LS148 8-3线优先编码器 应用 1
★ 74LS148 8-3线优先编码器 应用 2
用编码器构成 A/D转换器图 4.15为 74LS148构成的 A/D转换器。这个电路主要由比较器、寄存器和编码器 3部分组成。
输入信号 (模拟电压 ),
同时加到 7个比较器的反相端,基准电源经串联电阻分压为 8级,量化单位 q=UR/ 7,各基准电压分别加到比较器的同相端。
这里寄存器 74LS373
由 8个 D触发器构成。 它的作用是把比较器输出的信号经寄存器缓冲。
2,二 — 十进制编码器将十进制数的 0~9编成二进制代码的电路 (8421BCD码编码器 Binary
Coded Decimal)。 如,实训 4中采用的 74LS147优先编码器,
74LS147优先编码器功能表
1 1 1 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1 1 1 1 1 1
0 X X X X X X X X
1 0 X X X X X X X
1 1 0 X X X X X X
1 1 1 0 X X X X X
1 1 1 1 0 X X X X
1 1 1 1 1 0 X X X
1 1 1 1 1 1 0 X X
1 1 1 1 1 1 1 0 X
1 1 1 1 1 1 1 1 0
D C B AI9 I8 I7 I6 I5 I4 I3 I2 I1
输 出输 入
74LS147编码器的逻辑符号
◆ 例,一个简单的两位二进制代码的译码器。
输入是一组两位二进制代码 AB,输出是与代码状态相对应的
4个信号 Y3Y2Y1Y0。
输 入 输 出
A B Y3 Y2 Y1 Y0
0 0
0 1
1 0
1 1
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0
表 4.12 译码器的真值表真值表与我们前面学过的什么很相似? 你发现了吗?
二、译码器
1,二进制译码器 二进制译码器是把二进制代码的所有组合状态都翻译出来的电路。如果输入信号有 n 位二进制代码,输出信号为 m个,m= 2n。
● 74LS138—— 二进制译码器。
321 SSS,、
表 4.13 74LS138译码器功能表输 入 输 出
A2 A1 A0 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
0 ×
× 1
1 0
1 0
1 0
1 0
1 0
1 0
1 0
1 0
× × ×
× × ×
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1
1 0 1 1 1 1 1 1
1 1 0 1 1 1 1 1
1 1 1 0 1 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 1 0 1 1
1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 0
321 SSS?
◆ 另有三个附加的控制端
74LS138译码器的逻辑符号
◆ 在 S1=1,=0时,输出信号才取决于输入信号 A2,A1、
A0的组合。
◆ 当 S1=0时,无论其他输入信号是什么,输出都是高电平,即无效信号。
◆ 为高电平时,输出也都是无效信号。
32 SS?
70 ~YY
32 SS?
三点说明:
例,用两片 3-8线译码器 74LS138构成 4-16线译码器,电路如图 4.7所示。
◆ 电路中,当 D=0时,片( 2)被禁止,片( 1)工作,这时将 DCBA的
0000~0111 这 8 个代码译成片( 1) 8 个低电平信号输出。
◆ 当 D=1时,片( 1)被禁止,片( 2)工作,这时则将 DCBA的
1000~1111 这 8 个代码译成片( 2) 8 个低电平信号输出。
由此,片( 1)、( 2)便构成了 4— 16线译码器。
70 ~YY
70 ~YY
C
B
A
D
例 4.1 用全译码器实现逻辑函数 AB CCBACBACBAf
解 ( 1)全译码器的输出为输入变量的相应最小项之非,故先将逻辑函数式 f 写成最小项之反的形式。由摩根定理
ABCCBACBACBAf
( 2) f 有三个变量,因而选用三变量译码器。
( 3)变量 C,B,A 分别接三变量译码器的 C,B,A 端,则上式变为:
7120 YYYY
图 4.18是用三变量译码器 74LS138实现以上函数的逻辑图。
图 4.18
★ 74LS138 3-8译码器 应用 1—— 实现逻辑函数例如:要将输入信号序列 00100100 分配到 Y0 通道输出。
在图中,如果 D输入的是时钟脉冲,则由地址码的状态将该时钟脉冲分配到 Y0~Y7的某一个输出端,从而构成时钟脉冲分配器。
★ 74LS138 3-8译码器 应用 2—— 数据分配器或时钟分配器译码器的应用 3
译码器作地址译码器图 4.16 四输入变量译码器用于存储器的地址译码 实现微机系统中存储器或输入 /输出接口芯片的地址译码是译码器的一个典型用途。
图 4.16所示是四输入变量译码器用于半导体只读存储器地址译码的一个实例。
图中,译码器的输出用来控制存储器的片选端,而译码器的输出信号取决于高位地址码
A5~A8。 A5~A8四位地址有 16个输出信号,利用这些输出信号从 16
片存储器中选用一片,再由低位地址码 A0~A4从被选片中选中一个字,从而读出选中字的内容 。
2,二 — 十进制译码器将 4位二 — 十进制代码翻译成 1位十进制数字的电路就是二 — 十进制译码器,又称为 BCD— 十进制译码器。
数字输 入 输 出
A3A2A1A0
0
1
2
3
4
5
6
7
8
9
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
0 1 1 1 1 1 1 1 1 1
1 0 1 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1
1 1 1 0 1 1 1 1 1 1
1 1 1 1 0 1 1 1 1 1
1 1 1 1 1 0 1 1 1 1
1 1 1 1 1 1 0 1 1 1
1 1 1 1 1 1 1 0 1 1
1 1 1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 1 1 0
无效
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
74LS42译码器功能表
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9
由功能表可知,该译码器有 4个输入端 A3A2A1A0,并且按 8421BCD编码输入数据。
它有 10个输出端,分别与十进制数 0~9相对应,低电平有效。对于某个 8421BCD
码的输入,相应的输出端为低电平,其他输出端为高电平。当输入的二进制数超过
BCD码时,所有输出端都输出高电平,呈无效状态。
74LS42二 — 十进制译码器的逻辑图所示。
( 1)七段显示译码器
3,字符显示译码器七段 LED(Light Emitting Diode)数码显示器的显示原理,
c
a
b
de
f g
dp
a b
cde
fg
GND
GND
dp 共阴极
a
R? 8
b
c
d
e
f
g
dp
Vcc
Vcc
cde
GND
dp
a
b
cde
f
dp
a bfg
GND
R= 1K?
5V
直流电源
c
a
b
de
f g
dp
a b
cde
fg
GND
GND
dp
cde
GND
dp
a
b
cde
f
dp
a bfg
GND
R= 1K?
c
a
b
de
f g
dp
a b
cde
fg
GND
GND
dp
5V
直流电源显示数字 1
R
5V
直流电源
R
R
显示数字 2
g f a b
e d c dp
c
a
b
de
f g
dpc
a
b
de
f g
dp
a b
cde
fg
GND
GND
dp
R
5V
直流电源
R
R
R
显示数字 3
g f a b
e d c dp
c
a
b
de
f g
dpc
a
b
de
f g
dp
a b
cde
fg
GND
GND
dp
0
0
0
0
1
◆
实训电路
74LS147
二 — 十进制 (8421)
优先编码器
74LS48
与共阴极数码管配合使用字符显示译码器七段显示器实验中用的型号为 WT5101BSD是共阴极数码管由
74LS48驱动
( 4) LCD显示电路 LCD液晶显示器是当今功耗最低的一种显示器,因而特别适合于袖珍显示器、低功耗便携式计算机、仪器仪表等的应用。
图 4.13 一位七段 LCD显示器驱动电路的逻辑图 图中信号 A~G是七段译码器输出的每段信号电平。显示驱动信号 Dfi一般为 50Hz~100Hz(数字钟、表往往是
32Hz或 64Hz)的脉冲信号。该信号同时加到液晶显示器的公共电极。在译码器内部异或门的作用下,送到液晶显示器信号电极上的驱动信号 a~g是信号 Dfi分别与段信号 A~G的异或信号。
要显示的字段上所加的峰峰值电压为电源电压的两倍。
由图可见,送到液晶显示段上的显示信号为脉冲信号,因此液晶显示段的发亮是一个连续脉冲式发亮过程。
由于此脉冲频率较快,视觉上感到是一直在发亮,这是
LCD的特点。
作 业
P 99
4.4
6