数字电子技术基础(六):译码器、数据选择器
译码器:将输入的二进制代码译成对应的高低电平信号或者其它代码。是编码的反操作,通常编码和译码是相依的。
在嵌入式中,译码器的一个功能是节约IO口,可以用很少的IO来输出更多的状态。
常用的译码器有 二进制译码器、二-十进制译码器和显示译码器三类。
1、二进制译码器
二进制译码器的输入是一组二进制代码,输出是一组与输入对应的高低电平。
二进制译码器一般对应普通编码器
二进制译码器中,最广为人知的就是3—8译码器了,和8—3编码器对应。
下面举一个经典3-8译码器74HC138
从表中可以看出,74HC138和优先编码器74HC148有共通之处,也有控制信号,S1,S2’和S3’。
只有当S1= 1,S2’ + S3’ = 0时,译码器才正常工作。否则译码器锁住,输出全为高电平。
2、二-十进制译码器
二-十进制译码器的功能是将输入的十进制BCD码译成10个高低电平输出信号。
BCD码是用四位二进制来描述10进制,即从二进制0000到1001对应十进制数0到9,从1010开始就算是BCD伪码。
下面列出经典二-十进制译码器74HC42的真值表
可以看到,0000到1001被翻译成只有一位低电平的高低电平序列。
该译码器也有default功能,所有输入的伪码都翻译成1111111111,没有任何一个低电平,这时候接收到1111111111的主机就可以知道输入的BCD码错误,从而定位错误来源。
3、显示译码器
显示译码器常用于7段(或者8段,8段有小数点)字符显示器,也就是所说的数码管。
半导体数码管的每段都是一个二极管,数码管分为共阴极和共阳极。
上图可知
左图为共阳极,即所有二极管的正极都接到VCC上,当abcdefg和dp为低电平时,二极管点亮。
右图为共阴极,即所有二极管的负极都接到GND上,当abcdefg和dp为高电平时,二极管点亮。
其实,这两种都可以,但是,一般来说,如果不考虑功耗的话,我们选用共阳极。
因为共阴极的二极管想要点亮,需要IO输出高电平,但是在很多芯片的输出端电压普遍不高(为了降低芯片功耗),二极管的驱动电压较低,显示不够亮。
而共阳极数码管,因为阳极接VCC(5V或者3.3V),驱动能力大,显示更亮。
显示译码器有多种型号,下面就列出BCD-7段显示译码器的真值表
在这个表中,10到15显示的乱码,但是在大多数数码管设计中,10到15显示输出都会设置为A到F,具体显示什么,可以自己决定。
4、数据选择器
数据选择器的作用是:当外部输入多个信号时,我们从中选出某一个。
下面以最小的2选1多路选择器来介绍。
如图,有a、b两个输入,一个选择输入s,一个输出。
假设当s = 1时,选择a输出;s = 0时,选择b输出。
则 y的表达式为 y = s * a + s’ * b (*表示与,+表示或)
Verilog代码
y = (s && a ) || ( (!s) && b)
可以用多个2选1多路选择器扩展为4选1,8选1等,写出真值表就可以得到了。
上一篇: 数字电子技术基础(五):编码器
下一篇: 实验六 有源滤波器