数字电路设计——优先级需求处理与显示
连了快1天的线了,人都给连麻了,逻辑不难,就是在仿真时会因为不熟悉仿真软件和元器件的使用而出现很多bug,下面带来我在连线的电路即心路历程。
附无码电路图
1. 设计任务与要求
任务:设计民航客机客舱服务请求应答系统
要求
某型号民航客机共有9个座位,其中头等舱座位1个,经济舱座位8个;
如下图:
机组客服处设置服务请求显示面板(采用七段码显示),面板上显示当前优先级最高的请求的座位号。头等舱的优先级高于其他舱位;前排舱位优先。各舱内按座位顺序确定优先级,ABCD优先级由高到低。
要求:采用74X148及相应所需电路实现。
仿真软件采用Multisim
2. 设计思路
先看一下题目的给出的思路
题目思路
1.九个输入端设计成开关,闭合为有请求,断开为无请求。
2.座位号不仅有数字还有字母,因此显示时AC使用大写字母表示。
3.座位号优先级顺序由高到低为1A-2A-3A-2B-3B-2C-3C-2D-3D。
4.使用两个74*148编码器,第一个编码器处理头等舱的输入端,第二个译码器处理经济舱的输入端;或者第一个编码器处理行,第二个译码器处理列。再通过译码模块连接七段显示器,把座位号显示在显示屏上。
然后我自己梳理了一下思路
我的思路
开关闭合接地
根据题目要求的输入端为开关,闭合为请求,且使用7X48模块作为编码器,该模块是一个优先编码模块,它的优先编码是针对输入端的优先级达到一个优先输出的作用,可以看看下列它的逻辑测试表(真值表)
输入 | 输出 | ||
---|---|---|---|
EI’ | I7’I6’I5’I4’I3’I2’I1’I0’ | A2’A1’A0’ | GS’ E0’ |
1 | x x x x x x x x | 1 1 1 | 1 1 |
0 | 1 1 1 1 1 1 1 1 | 1 1 1 | 1 0 |
0 | 0 x x x x x x x | 0 0 0 | 0 1 |
0 | 1 0 x x x x x x | 0 0 1 | 0 1 |
0 | 1 1 0 x x x x x | 0 1 0 | 0 1 |
0 | 1 1 1 0 x x x x | 0 1 1 | 0 1 |
0 | |||
-------------- | ------- | ------------------------------------------------------------ | -------------------------------------- |
1 1 1 1 0 x x x | 1 0 0 | 0 1 | |
0 | 1 1 1 1 1 0 x x | 1 0 1 | 0 1 |
0 | 1 1 1 1 1 1 0 x | 1 1 0 | 0 1 |
0 | 1 1 1 1 1 1 1 0 | 1 1 1 | 0 1 |
当EI‘为0时,且输入端不全为高电平时,会根据输入端,三个输出端可以组成0~7 共8个二进制数字编码,这里还有一个优先级的设置,比如I7’的优先级最高,所以当它为0时,无论其他是什么都会输出000,所以,我们可以知道0是编码特征量,而不是1。但是我们常规是使用开关闭合为高电平,断开为低电平,如果按照实验思路要求,那开关得到的高电平,我们需要取反,一个与非门,而我们有9个输入,就算不考虑头等舱,也有8个,至少需要8个与非门去处理开始?
但是,我们为什么要把开关闭合视为高电平呢?
题目只是要求闭合为请求,那我只需开关闭合时接地即可。
显示采用七段式显示器连接
看到设计中的要求需要显示带字母的座位号,个人觉得没有哪个必要,1个七段显示器已经足够了,1一个七段显示器可以显示0~9共10个数字,取其中9个作为舱位的座位号即可。(主要是连线连累了)
优先级思路
该设计的关键在于实现优先级需求处理,所以可以采用优先编码器编码,这里经济舱使用8-3优先编码器,头等舱直接输出即可,那么头等舱的优先级和经济舱优先级如何体现呢?
来看下3-8译码器的逻辑表
不难发现,G1和G2A+G2B决定了能否正常译码,我们可以使用G1接头等舱开关输出,当开关断开时G1为1,满足译码条件。如果闭合,则译码会输出7个1。这时相当于经济舱请求被限制,优先头等舱请求。
一些容易踩到的坑和bug
导线分线
其实简单,选一条基线,然后再空的部分点击和基线连起来即可
显示器连接方式
不能直接连接!!!
译码器8个输出再加上头等舱1个共9个,而显示器有7个接入,有也就是存在显示器一个端口有多个输入的情况,而在不同请求的时候,即同一个接入有高、低两个电平传入时就会出现显示器无法正常显示,报错的原因,因此可以考虑采用与非门来对应显示器端口,我采用了7组14个共与非门来对应显示器的端口。
其实也可以采用7个与门。
显示器的不正常显示
实验中出现了全部断开时出现闪烁,检查后发现是某段电路连接问题,处理后就没事了