独立按钮相对于矩阵按钮。
他们指的是一个按钮占用一个GPIO端口的情况。
它主要用于按钮数量相对较少的场合。
用作按钮输入以实现产品的人机交互。
例如,洗衣机的面板按钮,电饭锅的按钮等。
按键通常由机械按键实现,根据其是否为自锁式按键,可以分为自锁键和非自锁键。
锁定。
自锁按钮,导通和断开需要两个按钮动作。
第一次按下该按钮时,它处于开/关状态,释放后保持该状态,并且在第二次按下后实现复位。
释放按钮后,它将重置而不是自锁按钮。
如果要保持状态,则需要持续按一下。
机械键是通过接触和断开簧片来切换的,因此按下和弹跳时它们会抖动。
如果不处理抖动,将会发生故障。
因此,机械键的去抖动处理是必要的。
如下所示。
按下并弹出时会发生抖动。
通常,抖动会持续5-10ms。
在按钮检测期间,如果未对程序进行过滤,则会有多个按钮误触发。
那么如何设计防抖程序呢?在学习单片机的早期阶段,许多例程告诉我们使用延迟方法来消除抖动。
思路如下:当检测到按钮动作时,首先延迟10ms,然后执行按钮检测,如果仍然检测到按钮动作,则延迟时间为10ms时,如果仍然可以检测到按键,则延迟时间为10ms。
认为已发生按键操作。
这种方法最容易理解,但是浪费资源。
不建议使用。
设计产品时,通常使用以下两种方法。
第一种方法是定义密钥计数变量和标志位。
当检测到按键时,让按键计数变量自己增加。
如果判断密钥计数器的值大于某个值,则标志位将为1,否则标志位将被清除。
第二种方式。
使用计时器中断,设置10ms计时变量,在发生按钮时启动计时器,并在10ms之后进入中断以再次检测按钮事件。
如果仍然检测到该按钮,则表示该按钮有效。
上述防抖方案可以根据实际情况进行优化。
免责声明:本文内容经21ic授权后发布,版权归原作者所有。
该平台仅提供信息存储服务。
本文仅代表作者的个人观点,并不代表该平台的立场。
如有任何疑问,请与我们联系,谢谢!