这些单片机按键设计方案,请拿好,不谢!

发布时间:2022-12-20  

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


一是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左右的电容。软件上基本不用处理即可避免抖动。


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


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


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


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    结构和启闭方式的系列化自动控制的节能窗体系统。 自动窗控制逻辑关系复杂,并且该产品尚处于研发和试生产阶段,需要经常修改设计。如果采用普通逻辑电路将会使电路复杂化,不利于功能的添加和逻辑关系的修改。为此选定AT89C2051单片机作为电路主要逻辑部件来实现......
    ,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。 一、 pc机上的 串口通信编程过程如下: 1.建立项目 打开VC++6.0,建立一个基于对话框的MFC......
    属于自己的电子制作,你的单片机水平就会有一个质的提高。 第一步:数字I/O的使用 使用按钮输入信号,发光二极管显示输出电平,就可以学习引脚的数字I/O功能,在按下某个按钮后,某发......
    种低功耗,高性能的8位微控制器,是加强版的80C51单片机,但是与80C51单片机一样不具备PWM硬件模块,所以我们需要自己写一个程序来软件模拟PWM方波。 PWM是一种方波,可以实现......
    、 相与即可分辨出每次旋钮的转动。 最后的输出为⑥和⑦,正旋时⑦线有脉冲,⑥线一直为低,反旋则两根线相反。至此完成了鉴相,下面要解决如何与单片机接口的问题。 1.2 扫描电路设计 用户操作面板时,为了能及时准确地识别哪个按钮......
    控制的双向电机 下面显示的电路是基于8051单片机的双向电机,其方向可以使用2个按钮开关控制。除了两个按钮开关之外,该电路与前一个电路非常相似。这些按钮开关连接到单片机的P0rt3。电阻R2和R3分别是P3.0和......
    STM32的复位与电源管理;复位功能是一个非常重要的功能,大到PC,小到单片机,每一台计算机系统都有。在我小时候,去网吧的时候,但凡是电脑出现任何一点小问题,网管的第一回答一定是重启。重启和复位就是同一个......
    认识STM32的复位与电源管理;复位功能是一个非常重要的功能,大到PC,小到单片机,每一台计算机系统都有。在我小时候,去网吧的时候,但凡是电脑出现任何一点小问题,网管的第一回答一定是重启。重启和复位就是同一个......
    ,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有......
    页面的索引号要执行的显示函数,这是一个函数指针 注意:对于菜单显示的操作,用到了3个按键,分别是向下、向下和确认,如果单片机上的IO资源较为紧张,还可以把“向上翻”按钮省去,只通过“向下翻”按钮来实现......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>