译码器与编码器正好是相反的操作,编码器是把高低电平转换成二进制信号
译码是把二进制编码转换成高低电平输出
译码器的逻辑功能是将每一个对应的二进制编码转化成高低电平或者另一种信号,是编码的另一种逆向的操作,编码器有二进制,有二十进制
译码器还有一种非常特殊的显示译码器,要把字形显示出来,需要显示译码器的驱动
二进制的译码器
输入的端口和输出端口的关系呈现出
符合这种关系的译码器,我们把它归为二进制的译码器,有三条线进来,那么就有八条线出去
和编码器的称呼很像,只是反过来,那我们接下来就以三线到八线的译码器来分析一下译码器的功能以及输入输出之间的关系
图中表示出了三线到八线
我们现在假设转换成一个高电平的输出,我们假设要来设计这样三线到八线的译码器,二进制代码的01就是确定的,在这样的情况下,我们就可以列出它的真值表
这样我们就把译码输出信号输出出来了,整个看下来,每一列只有一个1
只要将函数值为一取出来
乘积项的表示和三变量的最小项是一致的,三变量有八个乘积项
每一个译码器的输出,都对应输入变量的一个最小项
我们可以看出二进制译码器有一个特点,输出是输入其中的一个最小项
我们把这个特性称为最小项译码
每一个输出端都能代表一个最小项
所以我们可以用译码器来设计组合逻辑
二进制的译码器具有最小项的译码
所以从这里分析,我们可看出一个二进制译码对应最小项,并且所有最小项都是包含在里面的
集成电路中不仅考虑输入输出,还要有一些控制信号,所以真正在构成集成电路的时候,我们还需要在基础之上做出一些改变,我们在看一个典型的集成电路
此处是反变量的表达,我们还需要把我们的真值表,所有的输出全部取反
这个电路还有三个控制信号,为什么要安排这样三个控制信号
输入输出电源线地线就有十三条,剩下的三条我们安排给了控制信号线
除了控制信号外,我们依然可以用作扩展的用途
因为编码器的扩展在输出端上,所以安排在输出端上,译码器安排仍然是出于同样的考虑
所以我们先来考虑这样的三个信号的使用方法
1用的是原变量,2,3取的是反变量
1的话是片选信号,是高电平有效,电路正常工作必须要接1
对于剩下两个,低电平有效,必须要同时为0,才可以开始工作
如果不符合其中任何一个的要求,都不会工作的
首先看前三行当中,都不符合这样的工作条件的要求
输入和输出我们什么地方需要考虑?
一个芯片有八条输出,两条输出有16条译码信号
所以我们现在需要关注的是,怎么样把三位二进制代码变成四位
三位二进制代码从000~111,四位从0000~1111
我们可以对四位二进制代码进行处理,我们先从方法上进行考虑,可以考虑把它分成两段
后三位都是一样的,并且可以跟三位二进制代码做对应,高位的表达是不一样的,所以我们要考虑的是轮流工作
我们用两个芯片来扩展,首先要考虑轮流工作,我们要把这样的二进制代码,它的高位,他去控制电路的工作,低三位可以直接加给二进制代码,还需要有两条线,控制片选信号
就可以完成十六种状态的输出
我们现在在构建电路的时候,扩展是放在输入端上的
有了这样的一个方法之后,我们来看4.3.10的例子
低三位直接接到接口上
最高位来控制片选信号
除了二进制译码器,我们还有二十进制的译码器
最小项并不完整,这里只用到了其中的十个,但是这边也有这个译码的特点
从000~1001,都有对应的低电平译码输出信号,后面还有六组,我们叫做伪码,没有任何输出,我们不做任何处理,完全看不到,我们叫做拒绝伪码
这就是二十进制译码器的功能,所以我们就不多讲了
显示译码器
在实际的数字系统中,我们经常要将数字的字形显示出来,直接去驱动数码管
数码管
数码管的构成是由七段发光二极管构成的,我们分别称之为a,b,c,d,e,f,g
通过操纵这些的亮灭,我们来显示字形
所以我们可以控制七发光二极管的亮灭,一般情况下,有两种,共阴或者共阳
共阴:共同接地,通过保护电阻接到二极管上,加了一个高电平后,发光二极管就会亮起来
共阳:它的正极接在一起,需要负电压去点亮,在选择的时候,是有要求的
外围电路要去接数码管,要看数码管是高电平还是低电平驱动
假设现在都是共阴的
通过刚才的分析,我们可以通过发光二极管的亮与不亮来显示字符
我们不能直接把四位全放入,我们需要把四位二进制代码转成其中不同的状态,来控制亮与不良
我现在要设计的是译码器这样的电路,输入的是四位的二进制代码,用输出来控制七段二极管
我们要确定输入输出变量
输入四位二进制代码
输出有七条线
分别接到七条二极管上
输入与输出之间的逻辑关系
六个没有用到的伪码,可以设计成自己想要的器件
因为驱动的是七段数码管,我们可以称之为七段显示译码器