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