由于按键是机械弹性按键,具有弹性,在毫秒级别的时间下:按键后有短暂的抖动

如果按键一次用力较轻,按键里的小金属片可能会多次抖动,使得LED闪烁多次
即轻微按一次,小概率出现多次LED闪烁
消除毫秒级别下的抖动有两种方法:
①硬件消除抖动,成本较高
②软件消除抖动,低成本,可修改。
所以采用软件消除抖动的方法:
原理图如下:
以K1为例:
K1左接P31,而P31与P31 TXD连接,所以P3^1口是与k1开关连接的,当k1按键按下时电路就导通了,因为k1右边接了GND,所以P3^1这个io口的输出电平就被拉低变0电平了。(而P31IO口电平能被拉低是因为P3口是准双向io口)
故可以通过P3^1的io口电平获得按键的状态:
P3_1==0(