單片機按鍵去抖原理
由上圖可以看出理想波形與實際波形之間是有區(qū)別的,實際波形在按下和釋放的瞬間都有抖動的現(xiàn)象,抖動時間的長短和按鍵的機械特性有關(guān),一般為5~10ms。通常我們手動按鍵然后釋放,這個動作中穩(wěn)定閉合的時間超過了20ms。因此單片機在檢測鍵盤是否按下時都要加上去抖動操作,有專用的去抖動電路,也有專門的去抖動芯片,但通常我們采用軟件延時的方法就可以解決抖動問題。
/* 軟件去抖 */
if (0 == K1 ) //如果有鍵按下 { delay_ms(8); //延時一段時間去抖 if (0 == K1) //如果真的有鍵按下,檢測到得是穩(wěn)定閉合狀態(tài) { ... //按鍵以后需要做的事情 } while(!K1); //松手檢測,如果按住不放則一直在循環(huán)里
}
編輯:admin 最后修改時間:2018-05-18