單片機按鍵程序設計及電路設計
在單片機應用系統中,按鍵主要有兩種形式:1、直接按鍵; 2、矩陣編碼鍵盤(pán)。直接按鍵的每個(gè)按鍵都單獨接到單片機的一個(gè)I/O口上,直接按鍵則通過(guò)判斷按鍵端口的電位即可識別按鍵操作;而矩陣鍵盤(pán)通過(guò)行列交叉按鍵編碼進(jìn)行識別。下面我們以S51增強型單片機實(shí)驗板的直接按鍵來(lái)學(xué)習單片機輕觸按鍵在單片機系統中的應用。
S51增強型單片機實(shí)驗板的4個(gè)輕觸按鍵原理圖
圖 1S51增強型單片機輕觸按鍵原理圖
一、按鍵時(shí)序分析
通常所用的按鍵為輕觸機械開(kāi)關(guān),正常情況下按鍵的接點(diǎn)是斷開(kāi)的,當我們按壓按鈕時(shí),由于機械觸點(diǎn)的彈性作用,一個(gè)按鍵開(kāi)關(guān)在閉合時(shí)不會(huì )馬上穩定地接通,在斷開(kāi)時(shí)也不會(huì )一下子斷開(kāi)。因而機械觸點(diǎn)在閉合及斷開(kāi)的瞬間均伴隨有一連串的抖動(dòng),按鍵的時(shí)序如下圖2所示,抖動(dòng)時(shí)間的長(cháng)短由按鍵的機械特性及操作人員按鍵動(dòng)作決定,一般為5ms~20ms;按鍵穩定閉合時(shí)間的長(cháng)短是由操作人員的按鍵按壓時(shí)間長(cháng)短決定的,一般為零點(diǎn)幾秒至數秒不等。
輕觸按鍵操作時(shí)序示意圖
圖 2
從上面圖2中我們可以看到,一次完整的擊鍵過(guò)程,包含以下5個(gè)階段:
1. 等待階段: 此時(shí)按鍵尚未按下,處于空閑階段。
2. 前沿(閉合)抖動(dòng)階段:此時(shí)按鍵剛剛按下,但按鍵信號還處于抖動(dòng)狀態(tài),這個(gè)時(shí)間一般為5~20ms。為了確保按鍵操作不會(huì )誤動(dòng)作,此時(shí)必須有個(gè)前沿消抖動(dòng)延時(shí)。
3. 鍵穩定階段:此時(shí)抖動(dòng)已經(jīng)結束,一個(gè)有效的按鍵動(dòng)作已經(jīng)產(chǎn)生。系統應該在此時(shí)執行按鍵功能;或將按鍵所對應的鍵值記錄下來(lái),待按鍵釋放時(shí)再執行。
4. 后沿(釋放)抖動(dòng)階段:一般來(lái)說(shuō),考究一點(diǎn)的程序應該在這里再做一次消抖延時(shí),以防誤動(dòng)作。但是,如果前面“前沿抖動(dòng)階段”的消抖延時(shí)時(shí)間取值合適的話(huà),可以忽略此階段。
5. 按鍵釋放階段:此時(shí)后沿抖動(dòng)已經(jīng)結束,按鍵已經(jīng)處于完全釋放狀態(tài),如果按鍵是采用釋放后再執行功能,則可以在這個(gè)階段進(jìn)行按鍵操作的相關(guān)處理。
51單片機相關(guān)文章:51單片機教程
評論