使用软件去抖的方法如下:
延时消抖
检测到按键状态变化后,先等待一个大约10ms的延时时间,让抖动消失后再进行一次按键状态检测。
如果与刚才检测到的状态相同,就可以确认按键已经稳定的动作了。
逻辑表达式消抖
设置3个变量:Kready、Ktemp和Kinput。
设置定时中断周期为20ms,在定时中断服务程序中读取按键,并把读取的数据存于变量Kinput中。
Kready中是所需要的稳定的按键信息,Ktemp是中间变量,它的值是上一次的Kinput。
根据当前按键的状态,考虑到Kready中是20ms抖动后的有效键信息,则Kready、Ktemp和Kinput之间,在不同时刻的状态关系如下:
Ktemp = Kinput
Kready = Ktemp ⊙ Kinput + Kreadyn - 1
通过这种运算逻辑,可以获得消除抖动的按键消息。
这两种方法都可以有效地减少或消除按键抖动带来的影响,具体选择哪种方法可以根据实际应用的需求和硬件资源情况来决定。