欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数字电子技术基础(六):译码器、数据选择器

程序员文章站 2022-07-14 23:19:11
...

译码器:将输入的二进制代码译成对应的高低电平信号或者其它代码。是编码的反操作,通常编码和译码是相依的。

在嵌入式中,译码器的一个功能是节约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等,写出真值表就可以得到了。