基于单片机的按键电路设计(1)

描述

(21种方案的简单介绍,及部分展示)

按键作为一个输入模块,在单片机开发板中必不可少,本文来讨论按键的设计方案。本文1500字。下篇文章将展示出电路图。

按键的模块的设计,主要内容是:按键数量和需要IO口的数量,当然有些不常见的按键电路,需要一些其他器件,芯片辅助完成。

下表为按键设计的一些方案(占用IO口数量在8个IO口以内,可使用扩展芯片。只列出来一部分,有些专用的按键检测芯片,因为本人没有使用过,所以这里没有列出来,欢迎评论区留言)

表1 一些按键检测方案

开发板

表1为我整理的一些按键检测方案,这些方案都是可以实现的。我在这里解释一下,表头内容IO口数量,为实际需要使用的单片机IO口数量,这部分IO口都是要被占用的,按键数量是指这个设计方案中的按键数量,也是可以检测区分出的按键数量。短,长,双击这个是指检测按键的状态,这个都是可以实现检测的,所以都是1,不能检测的标记为0。这里的可以检测出来是指可以通过算法实现,如果你实现不了,那就是你的问题了。2按键同时,这个指的是多个按键同时按下,能否检测出来,这个对按键的算法要求更高了,这个大部分特殊的按键电路都是无法实现的,一般常见的按键电路可以实现。特殊,这一列是描述设计方案存在的特殊之处,一般的独立按键,都是没啥特殊的,所以都标记了0,其他设计方案中,列出了设计方案所用的除了按键之外的器件。一列内容为按键/IO口,这个值越大,表明相同的IO口数量,检测的按键多。

分析表中所有的设计方案:

1, 普通的矩阵按键,8个IO口一般是44矩阵16个按键,33矩阵9个按键,2*2矩阵需要4个IO口,还不如4个独立按键,所以这里没有列出来。普通的矩阵按键检测思路一般是行列扫描,这里就不进行展开描述了。

2, 独立按键。独立按键太常见了,一般我们使用一两个按键,都会选择独立按键,独立按键的话,我们一般设计的数量在1-4个,如果需要更多的按键,再用独立按键就不是很划算了,可以考虑其他方案了,独立按键的检测是学习单片机最基础的程序了。

3, 2IO6按键,3IO21按键,4IO52按键,这几个是比较特殊的按键电路,检测按键的程序也是比较复杂的,当然电路也是有点复杂,前两种方案我都分享过了,第三个,4个IO口检测52个按键,我还没有测试,但是是可行的。这个部分在逐个展开吧,东西太多了。

4, 按键二极管,这个是第三种方案的部分,使用的二极管数量下降了,但是使用IO口数量增加了。程序上会比第三个简单点吧。

5, 剩下的方案,每个都是一个电路,基本都涉及芯片或ADC的使用。

5.1 一个IO口检测两个按键,这个是检测IO口的高电平和低电平区分出按键是哪一个的,需要使用单片机IO口的模式配置,STC89C52单片机是无法实现的,需要使用STC12及之后的系列。

5.2 74HC138译码器+IO口,这个是将8个按键的一端都连接在一起,另一端都连接译码器的输出,单片机控制译码器进行按键扫描,当有按键按下时,按下按键的标号就是此时译码器的输入。

5.3 矩阵按键8*8,这个是我之前设计的电路了,这个涉及两个芯片,这里就不进行展开后,之后详细分析

5.4 一路ADC,16个按键。这个方案不一定非要16个,只是16这个数字比较“完整“,这个是需要ADC的,一般都是使用单片机内置的ADC,同时需要一些电阻,这些电阻的精度,还可能影响按键检测的准确性。

5.5 8路触摸按键,这个是我之前设计的42路触摸按键电路的部分电路。这个触摸按键的实现没有借助专门的芯片,所以电路中的元件可能比较多,但是影响不大。

实物展示(已经做出来的方案实物/电路)

开发板

开发板

开发板

开发板

开发板

开发板

开发板

结束语:本文简单介绍了21种按键电路,连原理图都没有贴上,接下来的文章会附上电路图,供有需要的人参考,本文到此结束,你如果有更好的方案,可以评论留言。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分