计算机键盘是优先编码器吗,数字电路基础那些事1——组合逻辑:从译码器到编码器...

声明:本文部分内容选自《数字电子技术基础系统方法》与 华中科技大学的《电子技术基础 数字部分》,笔者将其两者精华加上自身的理解整理成一篇文章,使知识点易于理解!

如有疏漏欢迎指出!

译码器

1. 译码器定义

译码器是一种用以检测输入位(码)的特定组合是否存在,并以特定的输出电平来指示这种特定码的存在的数字电路。——《数字电子技术基础系统方法》

译码器的功能是将具有特定含义的二进制码转换成对应的输出信号, 具有译码功能的逻辑电路称为译码器。——《电子技术基础 数字部分》华中科技大学

洋羽的解释:我们把译码器看做一个转换器,他的任务就是把一个我们不想要的的信号格式转换成另外一种我们想要的信号格式(两种信号表示的信息是一样的,变得只有格式),从“译”字下手,就是将难得化成简单的(此处的简单是指对于我们当前需求的简单)。做一个可能不太恰当的比喻:就是将我们难以利用的数字码(但对于机器与电路来说传输较为简单)来转换成我们易于利用的数字码(对于机器和电路来说传输较为麻烦)。

2. 举例说明

理论说明例子1:BCD码——>十进制码

01b87b144d977cf830dfbbd64bac23a0.png

输入4位8421BCD码,转换成10个十进制数中的一个数所对应的输出(10选1译码器)

342000dab88875cc5d72c13a3a4c88df.png

实例芯片:74HC138

0189073a27c23b27e4428abec4106646.png

我们知道3位2进制码可以表示8个十进制数,A0,A1,A2对应的就是三位二进制数,而输出的Y0~Y7就相当于8个十进制数,当哪个输出为0,就相当于哪个十进制数

理论说明例子2:BCD码—7段译码器(举例说明)

c3f458cbd10cee838407e4a74458b026.png

首先我们得知道数码管的原理:

6550f48bc347cad2c9ff47ae03bdd09a.png数码管位号图

45b710ca5a739b54516ec87a89c0fb16.png

数码管的本质就是LED,一个数码管里面有8个LED,分别对应为a,b,c,d,e,f,g,p

当我们需要表示什么数字时,我们就点亮相应的LED,如我们需要表示9这个数字,我们直接点亮a,f,g,b,c,d这6盏LED即可表示为9

72022cb06e7e2f2c63be58f950f9780c.png

厂家为了节省开发人员的时间,让我们不用总是去思考需要怎么点亮数码管,就设计出显示专用的译码器(把易于程序处理与信号传输的信号转换为我们所需要,利于我们开发的编码)所以开发出这款芯片,我们只要输入对应的BCD码,就可以转换成该如何点亮LED的信息码。

3. 实操:DATASHEET解读时间: TI CD54HC4511

芯片引脚图

eafb556a1a985d51905418d82f5bd7fe.png

逻辑门表示电路

afeee9da973681cde01ff800eb12aa8f.png

真值表

fc86e1659da9168b826a56fd2db4f6a0.png

三大扩展功能:

dd93c0b651358f5b5225a070d4a14213.png

功能3对应DATASHEET真值表中中倒数第二行英文

译码器有时候可以用作复用器(详情看下一篇从复用器到解复用器)

编码器

1. 编码器的定义

编码器接收若干输入中有一个有效电平,每个输入表示一个数,例如十进制数或者八进制数,并且把这个数转换成代码输出,如BCD码或二进制码。  ——《数字电子技术基础系统方法》

数字系统中存储或处理的信息,常常是用二进制码表示的。用一个二进制代码表示特定含义的信息称为编码。具有编码功能的逻辑电路称为编码器。  ——《电子技术基础数字部分》华中科技大学

洋羽的理解:把我们熟悉的符号或者数字转换成一种代码形式的电路我们称为编码器(即译码器的相反作用)

2.编码器的分类:普通编码器和优先编码器

(1)普通编码器

普通编码器任何时刻只允许一个输入信号有效,否则将产生错误输出。

举例:

67543bc6bb7e3c9b3a9988ec29ba7f89.png

(2)优先编码器

普通编码器的升级版:按照规定的优先级设计电路

在实际应用中, 经常会遇到两个以上的输入同时为有效信号的情况。因此,必须根据轻重缓急,事先规定好这些输入编码的先后次序,即优先级别。

优先编码器允许同时在几个输入端有输入信号,编码器按输入信号排定的优先顺序,只对同时输入的几个信号中优先权最高的一个进行编码

举例:

b3383715f5ee2fa953c26fd8daa113ba.png

c6bdf1a77689790cbfb330db240ff35e.png

结合生活应用:

37ab107a00b86803cd0543250392c0dc.png                          

1f64148b263d1cfdbb49090139c45f23.png

小彩蛋:数字键盘功能演示(证明我们使用的键盘不是简单的、只用一个优先编码器就做出来的数字键盘)

以笔者的笔记本电脑来作为实例测试:

839d97f58ffe06fce7376ae7a248aa7a.png

测试步骤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,我们进一步证实结论:一旦数字键盘检测到新的输入,旧输入优先级下降,转为新的输入,虽然新的输入信号已经停止输入,但是旧的输入信号仍为低优先级状态,系统等待新的输入来作为高优先级信号

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个关于组合逻辑电路译码器的综合应用题: 某个电路需要根据输入的二进制数码输出相应的十进制数。设计一个基于译码器组合逻辑电路来完成该任务。 假设输入为 4 位二进制数码,输出为 3 位十进制数码。例如,当输入为二进制数码“0110”,输出应该是十进制数码“6”。 解决方案: 首先,我们需要一个 4 位输入译码器来将输入的二进制数码转换为对应的数字。我们可以使用一个 BCD-8421 译码器,它可以将 4 位二进制数码转换为对应的十进制数字。输出为 10 个数字的直接编码,即 0000 到 1001。 接下来,我们需要一个 3 位输出的编码器来将 10 个数字的直接编码转换为 3 位的十进制数码。我们可以使用一个 7 段译码器,它可以将数字的直接编码转换为对应的 7 段 LED 数码管的控制信号。然后,我们需要将这些控制信号组合成一个 3 位的十进制数码输出。 最后,我们需要一个组合逻辑电路来将输入的二进制数码转换为对应的 7 段 LED 数码管的控制信号。这个电路可以使用逻辑门和组合逻辑电路来实现。 例如,我们可以使用以下的逻辑门和电路来完成该任务: ![image.png](attachment:image.png) 在这个电路中,我们使用了一个 4-2 译码器将输入的 4 位二进制数码转换为 2 位的直接编码。然后,我们使用一个 OR 门来将这两个直接编码组合成一个 10 个数字的直接编码。最后,我们使用一个 7 段译码器和一些逻辑门来将数字的直接编码转换为对应的 7 段 LED 数码管的控制信号。 这样,我们就完成了一个基于译码器组合逻辑电路,可以将输入的二进制数码转换为对应的十进制数码输出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值