專注電子技術(shù)學習與研究
當前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

單片機中按鍵消抖動

作者:海盜工作室   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年04月28日   【字體:

 對于單片機中的按鍵消抖動,本節(jié)Bingo根據(jù)自己當年寫過的單片機其中的一個代碼來講解,代碼如下所示:

unsigned char key_scan(void)

{

if(key == 0) //檢測到被按下

{

delay(5); //延時5ms,消抖

if(key != 0)

retrurn 0; //是抖動,返回退出

while(!key1); // 確認被按下,等下釋放

delay(5); //延時5ms,消抖

while(!key1); //確認被釋放

return 1; //返回按下信號

}

return 0; //沒信號

}

針對以上代碼,消抖動的順序如下所示:

(1)檢測到信號

(2)延時5ms,消抖動

(3)繼續(xù)檢測信號,確認是否被按下

a) 是,則開始等待釋放

b) 否,則返回0,退出

(4)延時5ms,消抖動

(5)確認,返回按下信號,退出

當然在單片機中也可以循環(huán)計數(shù)來確認是否被按下。如此,太耗MCU資源。

關(guān)閉窗口

相關(guān)文章