首页 / 行业
四种单片机按键软硬件设计方案介绍
2019-08-05 16:40:00
在单片机系统里,按键是常见的输入设备。本文将介绍四种按键硬件设计上的方案和一些软件设计方面的技巧。
一、直接检测GPIO口单个按键,如图1所示。
图1:方案一
二、在按键较多的情况下,则使用矩阵键盘,如图2所示。
图2:方案二
三、将按键接到外部中断引脚上,利用按键按下产生的边沿信号进行按键检测,如图3所示。
图3:方案三
四、利用单片机的数字转换器(ADC - Analog-to-digital converter),设定按键按下前后经过ADC接口电压的不同,根据电压的差別来识别按键,如图4所示。
图4:方案四
以上四种设计分別各有优点和不足。
第一种设计是最简单、最基础的做法,对于单片机初学者很容易理解和使用,但缺点是需要在主循环中不断检测按键是否按下,并且需要做消抖处理。若主循环中某个函数任务占用时间较长,则按键会有不同程度的“失灵”。
第二种设计的优点是能够在GPIO数量有限的情况下,扩展尽可能多的按键。但缺点同上,需要不停检测按键是否按下。
第三种设计的效率最高,不需要循环检测按键是否按下,但缺点是需要单片机有足够的外部中断接口供使用。
第四种设计的优点是只需要单片机有一个ADC接口、一根线,就能对多个按键进行识别,缺点是按键内部一旦接触不良,则可能导致按键串位,并且按键产生的抖动有可能会造成识别错误。
在以上常见按键设计的基础上,分享一下我学习和工作中总结的按键方案。
改进一:在原方案一的基础上,加上与门电路,使得任何一个按键按下都能产生中断,然后在中断里面识别是哪个按键被按下。这改动令电路不需要循环扫描,大大提高了效率。方案如图5所示。只需要在每个按键对应地增加一个二极管,利用二极管的线与特性,就可以实现按下任何按键都能产生中断信号,同時按键之间互不影响。二极管选用普通整流二极管即可,经过测试,可靠可行。
图5:改进一
改进二:在原有ADC按键的基础上,也可以增加二极管的方式,实现按键中断,并在中断服务程序里进行AD转换,从而识别按键。电路如图6所示。
图6:改进二
改进三:按键时难免会作成抖动,因此必需按键消抖。消抖也可以通过硬件消抖和软件消抖,这里分享一个十分简单且有效的硬件消抖方法:给按键并联一个104左右的电容,这样软件上基本不用处理即可消除抖动。
改进四:在按键扫描检测的方案下,如果主循环中有某个函数占用时间较长,按键或会发生长短不一的“失灵”。对此可以将按键扫描放到定时器中断里面,这样就可周期性地检测按键按下的情况,在不受主循环的影响下解析出按键的不同状态。(按下、按住、弹起和未按下)
如果都設置了以上的改进,仍要注意以下两点:
一、定时器的定时时间不可过长也不可过短。过长容易检测不到按下,过短会占用大量时间资源。
二、中断服务程序需简单明了。只做检测用,通过全局变量传递,在主循环内完成按键响应,尽量不要在中断服务函数内占用太多时间。
最新内容
手机 |
相关内容
位移传感器结构类型及工作原理与应
位移传感器结构类型及工作原理与应用,工作原理,类型,结构,位移传感器,常见,效应,FDV302P位移传感器是一种用于测量物体位移或位置的半导体主控技术:驱动自动驾驶革命的
半导体主控技术:驱动自动驾驶革命的引擎,自动驾驶,交通,自动驾驶系统,数据,车辆,自动,随着科技的不断进步,自动驾驶技术已经成为现实晶振在激光雷达系统中的作用
晶振在激光雷达系统中的作用,作用,系统,激光雷达,晶振,可靠性,选择,激光雷达(Lidar)是一种利用激光进行测距的技术,广泛应用于自动驾驶光耦仿真器简介和优势
光耦仿真器简介和优势,仿真器,参数,接收器,设计方案,耦合,器件,光耦仿真器是一种用于模拟光耦合器件的工具,它可以帮助工程师在设计变频器与电动机使用中需要了解的常
变频器与电动机使用中需要了解的常识,常识,变频器,转速,安装,调节,选择,BAT54S-7-F变频器与电动机是现代工业中常见的设备,常用于调Arbe 4D成像雷达以高分辨率雷达技
Arbe 4D成像雷达以高分辨率雷达技术和先进处理技术消除“幽灵刹车”问题,刹车,成像,分辨率,系统,目标,数据,Arbe 4D成像雷达是一种浅析动力电池熔断器的基础知识及选
浅析动力电池熔断器的基础知识及选型,动力电池,时切,系统安全,作用,产品,系统,BA4558F-E2动力电池熔断器是用于保护动力电池系统安电源滤波器的设计原则和参数选择
电源滤波器的设计原则和参数选择,设计原则,参数,选择,滤波器,噪声,高频,AM26LV32CDR电源滤波器是用来净化电源信号的装置,能够阻止高