第四章 组合逻辑模块及其应用
上一章介绍了组合逻辑电路的分析与设计方法。随着微电子技术的发展,现在许多常用的组合逻辑电路都有现成的集成模块,不需要我们用门电路设计。本章将介绍编码器、译码器、数据选择器、数值比较器、加法器等常用组合逻辑集成器件,重点分析这些器件的逻辑功能、实现原理及应用方法。
4.1 编码器
一. 编码器的基本概念及工作原理
编码——将字母、数字、符号等信息编成一组二进制代码。
例:键控8421BCD码编码器。
左端的十个按键S0~S9代表输入的十个十进制数符号0~9,输入为低电平有效,即某一按键按下,对应的输入信号为0。输出对应的8421码,为4位码,所以有4个输出端A、B、C、D。
ABCD≥1VCC1kΩ310S0S1S2S3S4S5S6S7S8S9&&&&GS& 图4.1.1 键控8421BCD码编码器
由真值表写出各输出的逻辑表达式为:
A?S8?S9?S8S9
B?S4?S5?S6?S7?S4S5S6S7
2 C?S2?S3?S6?S7?S2S3S6S7 D?S1?S3?S5?S7?S9?S1S3S5S7S9
表4.1.1 键控8421BCD码编码器真值表 输 入 S9 S8 S7 S6 S5 S4 S3 S2 S1 S0 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 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 1 A 输 出 B C D GS 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1
画出逻辑图,如图4.1.1所示。
其中GS为控制使能标志,当按下S0~S9任意一个键时,GS=1,表示有信号输入;当S0~S9均没按下时,GS=0,表示没有信号输入,此时的输出代码0000为无效代码。
二. 二进制编码器
用n位二进制代码对2n个信号进行编码的电路称为二进制编码器。 3位二进制编码器有8个输入端3个输出端,所以常称为8线—3线编码器,其功能真值表见表4.1.2,输入为高电平有效。
表4.1.2 编码器真值表
输 入 I0 I1 I2 I3 I4 I5 I6 I7 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 输 出 A2 A1 A0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 由真值表写出各输出的逻辑表达式为: A2?I4I5I6I7
3 A1?I2I3I6I7 A0?I1I3I5I7 用门电路实现逻辑电路。
A2&A1&A0&11111111I7I6I5I4I3I2I1I0
图4.1.2 3位二进制编码器
三. 优先编码器
优先编码器——允许同时输入两个以上的编码信号,编码器给所有的输入信号规定了优先顺序,当多个输入信号同时出现时,只对其中优先级最高的一个进行编码。
74148是一种常用的8线-3线优先编码器。其功能如表4.1.3 所示,其中I0~I7为编码输入端,低电平有效。A0~A2为编码输出端,也为低电平有效,即反码输出。其他功能:
(1)EI为使能输入端,低电平有效。
(2)优先顺序为I7→I0,即I7的优先级最高,然后是I6、I5、?、I0。 (3)GS为编码器的工作标志,低电平有效。 (4)EO为使能输出端,高电平有效。
表4.1.3 74148优先编码器真值表 输 入 EI I0 I1 I2 I3 I4 I5 I6 I7 1 3 3 3 3 3 3 3 3 0 1 1 1 1 1 1 1 1 0 3 3 3 3 3 3 3 0 0 3 3 3 3 3 3 0 1 0 3 3 3 3 3 0 1 1 0 3 3 3 3 0 1 1 1 0 3 3 3 0 1 1 1 1 0 3 3 0 1 1 1 1 1 0 3 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 输 出 A2 A1 A0 GS EO 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1 其逻辑图如图所示。
4 EOGSA0≥1A1≥1&&A2≥1≥1&&111111111111I0I1I2I3I4(a)I5I6I7EI
图4.1.3 74148优先编码器的逻辑图
四. 编码器的应用 1.编码器的扩展
集成编码器的输入输出端的数目都是一定的,利用编码器的输入使能端EI、输出使能端EO和优先编码工作标志GS,可以扩展编码器的输入输出端。
图4.1.4所示为用两片74148优先编码器串行扩展实现的16线—4线优先编码器。
Y3Y2&Y1&Y0&GS&GSEI0EIA2A1A0EOEIGSA2A1A0EOEO74148(2)74148(1)I7I6I5I4I3I2I1I0I7I6I5I4I3I2I1I0X15X14X13XX11X10X9X812X7X6X5X4X3X2X1X0
图4.1.4 串行扩展实现的16线—4线优先编码器
它共有16个编码输入端,用X0~X15表示;有4个编码输出端,用Y0~Y3表示。片1为低位片,其输入端I0~I7作为总输入端X0~X7;片2为高位片,其输入端I0~I7作为总输入端X8~X15。两片的输出端A0、A1、A2分别相与,作为总输出端Y0、Y1、Y2,片2的GS端作
5 为总输出端Y3。片1的输出使能端EO作为电路总的输出使能端;片2的输入使能端EI作为电路总的输入使能端,在本电路中接0,处于允许编码状态。片2的输出使能端EO接片的输入使能端EI,控制片1工作。两片的工作标志GS相与,作为总的工作标志GS端。
电路的工作原理为:当片2的输入端没有信号输入,即X8~X15全为1时,GS2=1(即Y3=1),EO2=0(即EI1=0),片1处于允许编码状态。设此时X5=0,则片1的输出为A2A1A0=010,由于片2输出A2A1A0=111,所以总输出Y3Y2Y1Y0=1010。
当片2有信号输入,EO2=1(即EI1=1),片1处于禁止编码状态。设此时X12=0(即片2的I4=0),则片2的输出为A2A1A0=011,且GS2=0。由于片1输出A2A1A0=111,所以总输出Y3Y2Y1Y0=0011。
2.组成8421BCD 编码器
图4.1.5所示是用74148和门电路组成的8421BCD编码器,输入仍为低电平有效,输出为8421DCD码。工作原理为:
当I9、I8无输入(即I9、I8均为高平)时,与非门G4的输出Y3=0,同时使74148的EI=0,允许74148工作,74148对输入I0~I7进行编码。如I5=0,则A2A1A0=010,经门G1、G2、G3处理后,Y2Y1Y0=101,所以总输出Y3Y2Y1Y0=0101。这正好是5的842lBCD码。
当I9或I8有输入(低电平)时,与非门G4的输出Y3=1,同时使74148的EI=1,禁止74148工作,使A2A1A0=111。如果此时I9=0,总输出Y3Y2Y1Y0=1001。如果I8=0,总输出Y3Y2Y1Y0=1000。正好是9和8的842lBCD码。
Y3G1GSEIG4&I9I8Y21Y1G21Y0&G3A0EOA274148A1I7I6I5I4I3I2I1I0I7I6I5I4I3I2I1I0
图4.1.5 74148组成8421BCD编码器
4.2 译码器
一. 译码器的基本概念及工作原理
译码器——将输入代码转换成特定的输出信号。
假设译码器有n个输入信号和N个输出信号,如果N=2n ,就称为全译码器,常见的全译码器有2线—4线译码器、3线—8线译码器、4线—16线译码器等。如果N<2n ,称为部分译码器,如二一十进制译码器(也称作4线—10线译码器)等。
下面以2线—4线译码器为例说明译码器的工作原理和电路结构。