历史上的今天
返回首页

历史上的今天

今天是:2025年12月20日(星期六)

2022年12月20日 | 这些单片机按键设计方案,请拿好,不谢!

2022-12-20 来源:zhihu

在单片机系统里,按键是常见的输入设备,在本文中介绍几种按键硬件、软件设计方面的技巧。一般的在按键的设计上,一般有四种方案。


一是GPIO口直接检测单个按键,如图1.1所示;

二是按键较多则使用矩阵键盘,如图1.2所示;

三是将按键接到外部中断引脚上,利用按键按下产生的边沿信号进行按键检测,如图1.3所示;

四是利用单片机的ADC,在不同的按键按下后,能够使得ADC接口上的电压不同,根据电压的不同,则可以识别按键,如图1.4所示。




图1.1方案一




图1.2方案二




图1.3方案三




图1.4方案四


在以上四种设计上,各有优点和不足。


第一种是最简单和最基础的,对于单片机初学者很容易理解和使用,但是缺点是,需要在主循环中不断检测按键是否按下,并且需要做消抖处理。若主循环中某个函数任务占用时间较长,则按键会有不同程度的“失灵”。


第二种,优点是能够在有限的GPIO情况下,扩展尽可能多的按键。但缺点同上,需要不停检测按键是否按下。


第三种方式是效率最高,不需要循环检测按键是否按下,但是缺点是,需要单片机有足够的外部中断接口以供使用。


第四种的优点是,只需要单片机的一个ADC接口,一根线,就能对多个按键进行识别,缺点是按键一旦内部接触不良,则可能按键串位,且按键产生的抖动,会造成一定的识别错误。


在以上的三种常见按键设计的基础上,现在分享我学习和工作中总结的按键方案。


改进一:在原方案一的基础上,加上与门电路,使得任何一个按键按下,都能产生中断,然后在中断里面识别是哪个按键被按下。因此不需要循环扫描,大大提高了效率。方案如图1.5所示。只需要每个按键对应地增加一个二极管,利用二极管的线与特性,可以实现按下任何按键,都能产生中断信号,但是按键之间互不影响。二极管选用普通整流二极管即可,本人亲测可行。




图1.5 改进一


改进二:在原有的ADC按键的基础上,也可用增加二极管的方式,实现按键中断,并在中断服务程序里进行AD转换,从而识别按键。电路如图1.6所示。




图1.6 改进二


改进三:因为按键不可避免的有抖动,因此按键消抖可以通过硬件消痘和软件消抖。现在分享一个十分简单且有效的硬件消痘方法:给按键并联一个104左右的电容。软件上基本不用处理即可避免抖动。


改进四:在按键扫描检测的方案下,如果主循环中有某个函数占用时间较长,则按键会发生或长或短的“失灵”,现分享我的一个解决方案。将按键扫描放到定时器中断里面,这样就可周期性地检测按键按下情况,不受主循环的影响。


并且,能解析出按键的不同状态,即按下、按住、弹起、为按下这四种状态,用以实现更丰富的功能。


但需注意两点:一是定时器的定时时间,不可过长也不可过短,过长容易检测不到按下,过短会占用大量时间资源。二是中断服务程序需简单明了,只做检测用,通过全局变量传递,在主循环内完成按键响应,中断服务函数内尽量不要占用太多时间。


推荐阅读

史海拾趣

EPCOS/TDK公司的发展小趣事

自上世纪60年代起,TDK就开始在中国布局。首先,在台湾建立合资公司,随后在香港设立销售网络及生产线。进入80年代后,TDK正式踏足中国大陆,在华东及华南多个地区建立生产基地,并逐渐将业务扩展至全国。TDK在中国的发展不仅推动了当地电子工业的进步,也为公司自身赢得了广阔的市场空间。目前,TDK在中国的员工人数近6万人,占TDK全球员工总数的近55%。

Frequency Electronics Inc公司的发展小趣事

为了进一步扩大市场份额,高频电子积极实施全球化战略。公司在全球范围内建立了销售网络和服务体系,与众多国际知名企业建立了长期合作关系。同时,高频电子还针对不同地区的市场需求,定制化开发符合当地标准的产品和服务。这些努力使得高频电子的产品和服务能够覆盖全球多个国家和地区,为公司带来了稳定的收入来源和持续增长的动力。

Comtronic Gmbh-Verbindungstechnik公司的发展小趣事

高频电子深知技术创新是企业持续发展的核心动力。因此,公司一直保持着对研发的持续投入,不断推出新产品、新技术和新服务。同时,高频电子还积极与高校、科研机构等合作,共同开展前沿技术的研发和应用。这些努力使得高频电子在技术创新方面始终保持着领先地位,为公司的长期发展奠定了坚实的基础。

综上所述,高频电子通过战略转型、技术创新、全球化布局、多元化业务布局以及持续投入研发等举措,实现了从一家小型国防合同制造商到全球领先的高科技供应商的华丽蜕变。这些故事不仅展现了高频电子的发展历程和成就,也为我们揭示了企业成功背后的关键因素。

AIC [Analog Intergrations Corporation]公司的发展小趣事

高频电子的业务范围广泛且多元化,主要包括FEI-NY、Gillam-FEI和FEI-Zyfer三个部门。FEI-NY部门主要负责纽约总部设施和子公司FEI-Asia与FEI-Elcom的运营;Gillam-FEI部门则负责比利时与法国的业务,并专注于电缆网络同步产品的设计、研发和生产;FEI-Zyfer部门则主要经营公司加州业务,并设计生产附带GPS技术的产品。这种多元化业务布局不仅降低了公司的经营风险,还实现了各业务之间的战略协同和资源共享。

台湾君耀(Brightking)公司的发展小趣事

君耀(Brightking)公司于1996年在台湾新竹高科技园区创立,初期专注于防雷元器件的研发和生产。凭借对技术的深入研究和市场需求的敏锐洞察,君耀逐步在台湾的电子器件市场上占得一席之地。随着产品质量和技术含量的提升,君耀的产品开始受到国内外客户的青睐,销售网络逐渐拓展至全球。

E-Mark Inc公司的发展小趣事

ABC公司专注于研发先进的驾驶辅助系统。为了确保产品的合规性和市场竞争力,ABC公司主动寻求E-Mark认证。在认证过程中,公司不断优化产品设计,提高产品性能,成功获得了E-Mark认证。凭借这一认证,ABC公司的产品在欧洲市场得到了广泛应用,公司也因此获得了技术革新的声誉和市场份额的扩大。

问答坊 | AI 解惑

USB转RS232的下载线

我用的是笔记本,没有RS232串口, 做单片机的实验时很不方便 自己想做一个 求各位高手给个电路图啊…

查看全部问答>

C/C++数组名与指针区别深层探索

作者:宋宝华 e-mail:21cnbao@21cn.com 1. 引言 指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多 程序设计者就被搞糊涂了。而许多的大学老师,他们在C 语言的教学过程中也错误得给学生 ...…

查看全部问答>

【藏书阁】计算电磁场的矩量法

目录: 第一章 确定论问题 第二章 静电场 第三章 二维电磁场 第四章 线天线及散射体 第五章 广义网络参数 第六章 多端口系统 第七章 本征值问题 第八章 柱形波导 第九章 谐振腔 第十章 最优化 详细信息: 名:计算电磁场的矩量法  ...…

查看全部问答>

请教如何通过按键控制切换输入法??

各位好:    目前我的PDA上有一个软键盘和一个汉王的手写输入法 默认情况下都是在任务栏中,通过触摸屏点击选择的 可是现在要用一个键盘来控制切换输入法, 请问各位高手需要怎么才能实现 谢谢各位!!…

查看全部问答>

哪位朋友有云台解码器的资料

哪位朋友有云台解码器的资料..…

查看全部问答>

IAR+EK_SMT32F调试警告信

                                   …

查看全部问答>

自己画的STM32F的OrCAD原理图符号,LQFP48、64、100三种封装。

相关链接:https://bbs.eeworld.com.cn/upfiles/img/200710/200710112506800.zip…

查看全部问答>

这个是不是STM32芯片自身的BUG(纯属个人观点)

程序没有问题,说程序有问题的基本上都是在那里装,有什么问题你可以说出来,这个问题我已经解决了。 …

查看全部问答>

IAR下,出现warning:***ERROR**:unable to start execution 0x00000004

     IAR环境下,调试已有hello例程,点击“download and debug”后,programming flash memory时候出现             “Warning:***ERROR**:unable to start exec ...…

查看全部问答>

学模拟+《运算放大器噪声优化手册》笔记一 仿真工具安装

本帖最后由 dontium 于 2015-1-23 11:33 编辑 经历了多天的等待之后,昨天收到了《运算放大器噪声优化手册》一书。非常感谢论坛,不得不说,这本书非常好。 就是那个快递太潮了,叫芝麻开门,我当时好一会儿才闹明白,这不是暗号。 本书作者用 ...…

查看全部问答>