数字电路基础那些事1——组合逻辑:从译码器到编码器
声明:本文部分内容选自《数字电子技术基础系统方法》与 华中科技大学的《电子技术基础 数字部分》,笔者将其两者精华加上自身的理解整理成一篇文章,使知识点易于理解!
如有疏漏欢迎指出!
译码器
1. 译码器定义
译码器是一种用以检测输入位(码)的特定组合是否存在,并以特定的输出电平来指示这种特定码的存在的数字电路。——《数字电子技术基础系统方法》
译码器的功能是将具有特定含义的二进制码转换成对应的输出信号, 具有译码功能的逻辑电路称为译码器。——《电子技术基础 数字部分》华中科技大学
洋羽的解释:我们把译码器看做一个转换器,他的任务就是把一个我们不想要的的信号格式转换成另外一种我们想要的信号格式(两种信号表示的信息是一样的,变得只有格式),从“译”字下手,就是将难得化成简单的(此处的简单是指对于我们当前需求的简单)。做一个可能不太恰当的比喻:就是将我们难以利用的数字码(但对于机器与电路来说传输较为简单)来转换成我们易于利用的数字码(对于机器和电路来说传输较为麻烦)。
2. 举例说明
- 理论说明例子1:BCD码——>十进制码
输入4位8421BCD码,转换成10个十进制数中的一个数所对应的输出(10选1译码器)
实例芯片:74HC138
我们知道3位2进制码可以表示8个十进制数,A0,A1,A2对应的就是三位二进制数,而输出的Y0~Y7就相当于8个十进制数,当哪个输出为0,就相当于哪个十进制数
- 理论说明例子2:BCD码—7段译码器(举例说明)
首先我们得知道数码管的原理:
数码管位号图
数码管的本质就是LED,一个数码管里面有8个LED,分别对应为a,b,c,d,e,f,g,p
当我们需要表示什么数字时,我们就点亮相应的LED,如我们需要表示9这个数字,我们直接点亮a,f,g,b,c,d这6盏LED即可表示为9
厂家为了节省开发人员的时间,让我们不用总是去思考需要怎么点亮数码管,就设计出显示专用的译码器(把易于程序处理与信号传输的信号转换为我们所需要,利于我们开发的编码)所以开发出这款芯片,我们只要输入对应的BCD码,就可以转换成该如何点亮LED的信息码。
3. 实操:DATASHEET解读时间: TI CD54HC4511
芯片引脚图
逻辑门表示电路
真值表
三大扩展功能:
功能3对应DATASHEET真值表中中倒数第二行英文
译码器有时候可以用作复用器(详情看下一篇从复用器到解复用器)
编码器
1. 编码器的定义
编码器接收若干输入中有一个有效电平,每个输入表示一个数,例如十进制数或者八进制数,并且把这个数转换成代码输出,如BCD码或二进制码。 ——《数字电子技术基础系统方法》
数字系统中存储或处理的信息,常常是用二进制码表示的。用一个二进制代码表示特定含义的信息称为编码。具有编码功能的逻辑电路称为编码器。 ——《电子技术基础数字部分》华中科技大学
洋羽的理解:把我们熟悉的符号或者数字转换成一种代码形式的电路我们称为编码器(即译码器的相反作用)
2. 编码器的分类:普通编码器和优先编码器
(1)普通编码器
普通编码器任何时刻只允许一个输入信号有效,否则将产生错误输出。
举例:
(2)优先编码器
普通编码器的升级版:按照规定的优先级设计电路
在实际应用中, 经常会遇到两个以上的输入同时为有效信号的情况。因此,必须根据轻重缓急,事先规定好这些输入编码的先后次序,即优先级别。
优先编码器允许同时在几个输入端有输入信号,编码器按输入信号排定的优先顺序,只对同时输入的几个信号中优先权最高的一个进行编码
举例:
结合生活应用:
小彩蛋:数字键盘功能演示(证明我们使用的键盘不是简单的、只用一个优先编码器就做出来的数字键盘)
以笔者的笔记本电脑来作为实例测试:
测试步骤1:测试同时按下123键时系统的输出
123 213 312 312 312 213 321 132 132 231 321 312 132 321 321 321 321 132 132 312 321 3211 321 312 321 321 321 312 312 123 123 312 321 231 321 123 132 123 132 321 132 321 123 312 123 321
可以得出结论:人手指误差不可避免,所以每次的输出不一定一样,但是不会出现缺失一个数字的情况,即按键每次按下都能得到响应键盘开发人员设定的扫描频率很快
测试步骤2:测试同一时间按下12键
1222222222222222222222222222222222222222222222222222222
211111111111111111111111111111111111111111111111111111111111111
1222222222222222222222222222222222222222222222222222222
1222222222222222222222222222222222222222222222222222222
211111111111111111111111111111111111111111111111111111111111111
211111111111111111111111111111111111111111111111111111111111111
1222222222222222222222222222222222222222222222222222222
211111111111111111111111111111111111111111111111111111111111111
211111111111111111111111111111111111111111111111111111111111111
211111111111111111111111111111111111111111111111111111111111111
211111111111111111111111111111111111111111111111111111111111111
211111111111111111111111111111111111111111111111111111111111111
1222222222222222222222222222222222222222222222222222222
1222222222222222222222222222222222222222222222222222222
1222222222222222222222222222222222222222222222222222222
实验结论:按下去由于人手指的误差,不可能同时按下,所以最后只能有一个信号是有效的。所以我们可以看到最后只有一个信号是持续输出的
测试步骤3:按下1之后,在不松开1的情况下按下并长按2(测试5次)
111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222
1111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222
12222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
1111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
11111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
测试步骤4:按下2之后,在不松开2的情况下按下1并长按1(测试5次)
22222222222222111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
2111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
222222211111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
22222222222222222222222222222222222221111111111111111111111111111111111111111111111111111111111111111111111111111111
测试步骤5:长按1不松开,轻轻按一次2并保持1不松开(测试5次)
111111111111111111111111111111111111111111111111111112
1111111111111111111111112
111111111111111111111111111111111111111111111111111111111111111111111111111111112
11111111111111111111111111111111111111111111112
111111111111111111111111111111112
根据测试步骤3、4我们可以得出结论:只要键盘检测到新的输入,则旧的输入虽然没有变,但是内部已经将旧的作废并优先输出新的输入
根据测试步骤5,我们进一步证实结论:一旦数字键盘检测到新的输入,旧输入优先级下降,转为新的输入,虽然新的输入信号已经停止输入,但是旧的输入信号仍为低优先级状态,系统等待新的输入来作为高优先级信号