译码器是一种具有“翻译”功能的逻辑电路,这种电路能将输入二进制代码的各种状态,按照其原意翻译成对应的输出信号。有一些译码器设有一个和多个使能控制输入端,又成为片选端,用来控制允许译码或禁止译码。
在图1中,74138是一种3线—8线译码器
,三个输入端cba共有8种状态组合(000—111),可译出8个输出信号y0—y7。这种译码器设有三个使能输入端,当g2a与g2b均为0,且g1为1时,译码器处于工作状态,输出低电平。当译码器被禁止时,输出高电平。
图2时检测74ls138译码器时间波形的电路,使用的虚拟仪器为数字信号发生器和逻辑分析仪。数字信号发生器在一个周期内按顺序送出两组000—111的方波信号。
图3表明如何将两片3线—8线译码器连接成4线—16线译码器。其中第二片74138的使能端g1和第一片的使能端g2a接成d输入端。当d=0时,第一片74138工作,对0000—0111的输入信号进行译码输出。当d=1时,第二片74138工作,对1000—1111的输入信号进行译码输出。
在图4中
,7442为二—十进制译码器,具有4个输入端和10个输出端。输入信号采用8421bcd码,二进制数0000—1001与十进制数0—9对应。当输入超过这个范围是无效,10个输出端均为高电平。7442电路没有使能端,因此只要输入在规定范围内,就会有一个输出端为低电平。
图5位bcd—七段显示译码器电路,led数码管将显示与bcd码对应的十进制数0—9。因为显示译码器电路输出高电平,所以应该采用共阴极led数码管。
编码与译码的过程刚好相反。通过编码器可对一个有效输入信号生成一组二进制代码。有的编码器设有使能端,用来控制允许编码或禁止编码。
优先编码器的功能是允许同时在几个输入端有输入信号,编码器按输入信号排定的优先顺序,只对同时输入的几个信号中优先权最高的一个进行编码。在图6中,74147为bcd优先编码器,输入和输出都是低电平有效。为了取得有效输出高电平,可在每个输出端连接一个反相器。7417只有1—9各输入端,0输入端不接入电路。这是因为7417约定,当无有效输入时,输出0的bcd代码0000。
图7是一个检测优先编码/译码功能的逻辑电路,对每一个接地的逻辑开关,数码管都会显示一个相应的十进制数。在输入端的8个逻辑开关中,代号为[7]的优先级别最高,代号为[0]的优先级别最低。
把所使用的每一种二进制代码状态都赋于特定的含义,表示一个特定的信号或对象,叫编码。如用四位二进制数的0000~1001这十种状太,分别表示0~9这十个十进制数码,称为8421编码。反过来把代码的特定含义翻译出来,称为译码。
计算机在处理各种文字符号或数码时,必须把这些信息进行二进制编码,在编码时所使用的第一种二进制代码状态都赋予了特定的含义,即表示一个确定的信号或者对象,实现这种功能的电路叫编码器,如用于键盘的BCD码,ASCII码编码器等。
单片机外围电路用译码器较多,所以在这节课我们主要与大家一起来学习下译码器的工作原理(购买了本站产品的朋友,在我们配套的多媒体教学光盘中有相关的教学内容,建议大家观看),把代码的含义‘翻译’成相应的输出信号,以表示其原意。其功能恰恰与编码器相反。
译码器可以将输入代码的状态翻译成相应的输出信号,以高、低电平的形式在各自的输出端口送出,以表示其意愿。译码器有多个输入端和多个输出端。假如输入的端个数为,每个输出端只能有两个状态,则输出端个数最多有2n个。常用译码器输入、输出端头数来称呼译码器,如3线-8线译码器,4线-10线译码器等。我们经常用到的74138就是一个三线-八线译码器,朋友们可以到我们网站的《芯片资料》频道下载74138的中文资料。
编码、译码的概念我们了解下,下面我们就来重点来讲一下三-八译码器的工作原理,这在我们51单片机的接口电路中也是经常用到的。
74138的工作原理如下图所示:
从上图可看出,74138有三个输入端:A0、A1、A2和八个输出端Q0~Q7。当输入端A0、A1、A2的编码为000时,译码器输出为Q0=0,而Q1~Q7=1。即Q0对应于A0、A1、A2为000状态,低电平有效。A0、A1、A2的另外7种组合见后面的真值表。
图中S1、S2、S3为使能控制端,起到控制译码器是否能进行译码的作用。只有S1为高电平,S2、S3均为低电平时,才能进行译码,否则不论输入羰输入为何值,每个输出端均为1。
下图是输入端A0、A1、A2为000,控制端S1=1、S1=0、S2=0的电平示意图(红色数字为端口电平),大家可按下图进行分析,也可以分析输出端另外七种组合时的输出情况。
74138 三线-八线译码器真值表: