【电路设计】基于CD4511的八路抢答器电路解析
文章目录
- 0 前言
- 1 CD4511
- 2 电路解析
- 3 锁存分析
- 4 电路优化思考
- 5 总结
0 前言
最近收拾东西的时候找到了本科阶段学电路焊接时焊的一个八路抢答器的电路板,如下图所示。
一共有9个按键,左侧8个为抢答按键,依次对应1-8,按下之后会有蜂鸣器响声,同时数码管显示1-8;最右侧按键为清零按键,按下数码管显示0,蜂鸣器不响。数码管显示可以锁存,即按下1-8之后,再按下其他按键,数码管显示不变,只有重新清零之后才能改变。
给电试了一下,电路还可以正常运行,突然想到好像我还没搞明白这个电路是咋实现的,于是找了一些资料,详细介绍一下这个的原理。
参考链接 —— 主要参考了仿真图
1 CD4511
想明白这个电路设计原理,必须了解CD4511这个芯片的原理。
CD4511 是一片 CMOS BCD—锁存/7 段译码/驱动器,用于驱动共阴极 LED (数码管)显示器的 BCD 码-七段码译码器。 具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流。 可直接驱动共阴LED数码管。其引脚如下图所示。
其中,右侧的QA到QG分别对应7段数码管各段的阳极,左侧的ABCD对应4位二进制,A为低位,D为高位,由于是BCD码,所以这里二进制值不超过9. 左侧下方的三个控制引脚分别是
- LT:测试输入端,有效时(低电平)7段全部输出高电平,数码管全亮
- BI:消隐控制输入,有效时(低电平)7段全部输出低电平,数码管全灭,显然,BI和LT不能同时有效
- LE/STB:低电平,数码管正常输出;高电平(有效)输出锁存。
其真值表如下图所示。
参考链接中的真值表有问题,以这张图为准
2 电路解析
先放上仿真图:
再来看看电路是咋实现的。
左侧的8个开关分别通过几个二极管连到CD4511的二进制输入端,当有按键按下时,对应的引脚为高电平,至于每个按键后面有几个二极管是来自二进制编码。比如5号按键按下,A和C为高,对应二进制为0101,即是5;再来看看8号按键,按下时只有D为高,对应二进制为1000,即为8.
然后是各二进制引脚上都连上了下拉电阻,这是为了保证初始状态为0;通过二极管连到一个蜂鸣器上,这是为了实现按下按键时蜂鸣器都会响一声。
再是三个控制引脚,LE引脚连接有点复杂,待会再详细介绍。LT始终接高,不使能;BI连接一个上拉电阻和一个按键接到地,可以实现复位功能,即按下按键后,消隐,但由于二进制输入带下拉,松开按键又马上变成零,所以最后的效果就是按下按键之后,数码管清零。
输出端没啥好说的,7个引脚分别连接数码管的7段,然后注意共阴极要接地。
3 锁存分析
为了实现锁存功能,需要使用到LE引脚,根据芯片的介绍,这个引脚需要保持高电平才能锁存,不是只需要一个上升沿或下降沿就行的。那自然的想法就是当有输出时,就在输出中找一个高电平接到LE引脚,从而锁定输出。但这里需要注意的是复位时能够取消锁存,即输出0时是不能锁存的,否则也不用抢答了,其他按键直接失效。所以这里的关键就是如何区分0输出和其他输出。
再来看看真值表
红色框为显示0时的输出,可以看到,最具区分度的引脚就是G(蓝色框线),可以一下子区分出多个状态,因此当G为高电平时,肯定要锁存,所以,可以直接在G端接个二极管到LE引脚;
那G为低时如何区分呢?此时还有两个状态——1和7(绿色框线),G输出和0一致,所以得看其他引脚。但是很遗憾,并不能找到一个引脚,1和7为高,0状态为低的引脚。怎么办呢?一个不行就找两个,然后就发现0状态除了G都是高电平,而1和7状态有些引脚为低,所以就可以找一组高低电平来进行区分。可以看到,C和D引脚在1,7状态中为一高一低,而在0状态中都为高(黑色框线),所以可以加上一个三极管,当C为高D为低时,输出高电平,使能LE。因此也就有了上面的三极管电路。
当然,可以看到,一高一低的组合不是只有C和D,这些任选一对都行,只要能区分出0状态和1,7状态。
4 电路优化思考
- 增加第9路
根据上面的分析我们可以发现,BCD码为0-9,所以其实可以再加上第9路抢答,电路如下所示,实测没有问题。
-
如果两个按键一起按下,会出现什么
假设真的存在两个按键完全同时按下,会出现什么结果?这个是有可能出现“加法”的效果,比如同时按下1和2号键,因为触发了两个二进制,所以最后显示的结果应该是3。 -
输入端二极管的作用是什么
实现ABCD四个引脚输入电平的独立性,即一个引脚的电平不会影响另一个引脚的电平,有点类似于总线。
5 总结
本文对八路抢答器的电路进行了深入的解析,并用Proteus对电路进行了仿真,最后提出了一些对该电路的思考,电路虽小,但知识还是挺多的。
Proteus仿真源文件获取——基于Proteus 8.13