目录
说明
按键消抖在机械按键中很有必要,保护电路的安全性。一般来说,机械按键抖动持续时间约为20ms,本文从状态机的角度进行按键消抖以及按键状态判别的实现。
场景说明:
按键默认上拉到高电平,按下时为低电平。
代码仅供设计参考,编程方式不唯一。主要是设计思路和功能需求到状态转移图的映射。
不足之处,评论区留言~
1、功能分析
首先状态划分:
1、空闲状态:此时按键没有按下,处于等待按键按下的状态;
2、按下消抖:此时按键按下,进行消抖操作;
3、等待释放:按下消抖已经完成,确认按键已经稳定按下,等待释放;
4、释放消抖:此时按键释放,进行消抖操作;
状态转移条件分析:
当前状态为状态 1 :
- 若检测到有下降沿到来,进入状态 2并开始计时 ;
- 否则一直处于状态 1 等待。
当前状态为状态 2 :
- 若检测到有