题目
设计电路,仿真实现以下功能:
设计一个电路,有1-8号八个按键输入,当相应按键按下时,数码管显示相应的字型。
要求:
1. 学号尾号位单数者,使用共阳极数码管。
2. 学号尾号位双数者,使用共阴极数码管。
元件介绍
1. 编码器和 译码器
BD4532 (左图)为优先编码器,用于将输入的信号I(高电平有效)转换为二进制输出O(高点平有效), 其优先级为从0到7逐渐增大。EIN为1是正常工作,EIN为0的时候输出端恒为0.(这里不未使用GS和EOUT)
BD4511(右图)为显示译码器,显示译码器用于将输入的二进制信号(高电平有效)转换为数码管可以直接识别的信号(高电平有效),显示出来。其中LT为灯测试,低电平有效,使所有输出均为1.
2. 数码管
共阴极数码管(左图U2)CK端为阴极端,需要接入低电平信号0才可以正常工作显示数字,下方的ABCDEFG输入端口为高电平输入有效。
共阴极数码管(右图U1)CA端为阳极端,需要接入高电平信号1才可以正常工作显示数字,下方的ABCDEFG输入端口为低电平输入有效,因为我选用的BD4511为输出高电平有效,所以我使用74LS04反向器转换一下高低电平信号驱动共阴极数码管。
因为题目要求偶数为共阴极数码管亮、奇数为共阳极数码管亮,因此可以对其CK和CA同时接入高电平有效奇校验,即BD4532输入的O0端口(二进制中的最后一位,如果是0为偶,如果是1为奇)。
分析
基本思路是通过BD4532对输入信号进行编码成二进制,再使用CD4511将二进制转换显示编码。同时通过二进制的最低位进行奇校验控制数码管的显示。
在设计电路完成的差不多的时候,我发现题目中的要求是输入1-8的数字并显示,但我采用的CD4532只有0-7的编码功能,所以需要对设计进行调整。
当时想到的解决方法有:1、采用更高级位数更多的编码器;2、添加一个加法器,对CD4532的结果进行+1
但是这些都需要更换元件或者添加元件,真的不想多加负担。于是我把目光放在了CD4511的LT输入端口上。这个输入端口正常工作时为1,当输入为0的时候为灯测试,所有的灯全量,诶,这不刚好,灯全亮不就是8了吗。
所以最后我采用了这种方法输出信号8,但是我还想防止(因前面的开关闭合而导致)奇偶校验位的影响出错,于是顺便也把BD4532的EIN也接入开关8上面了,这个在闭合8开关后,BD4532不工作输出恒为0,前面的所有开关通断情况不会对后面的电路造成影响。