久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

單片機(jī)按鍵程序設(shè)計(jì)及電路設(shè)計(jì)

作者:mcu110   來(lái)源:51hei   點(diǎn)擊數(shù):  更新時(shí)間:2007年08月06日   【字體:

    在單片機(jī)應(yīng)用系統(tǒng)中,按鍵主要有兩種形式:1、直接按鍵; 2、矩陣編碼鍵盤。直接按鍵的每個(gè)按鍵都單獨(dú)接到單片機(jī)的一個(gè)I/O口上,直接按鍵則通過(guò)判斷按鍵端口的電位即可識(shí)別按鍵操作;而矩陣鍵盤通過(guò)行列交叉按鍵編碼進(jìn)行識(shí)別。下面我們以S51增強(qiáng)型單片機(jī)實(shí)驗(yàn)板的直接按鍵來(lái)學(xué)習(xí)單片機(jī)輕觸按鍵在單片機(jī)系統(tǒng)中的應(yīng)用。

S51增強(qiáng)型單片機(jī)實(shí)驗(yàn)板的4個(gè)輕觸按鍵原理圖。。。

S51增強(qiáng)型單片機(jī)輕觸按鍵原理圖
圖 1

    一、按鍵時(shí)序分析

    通常所用的按鍵為輕觸機(jī)械開(kāi)關(guān),正常情況下按鍵的接點(diǎn)是斷開(kāi)的,當(dāng)我們按壓按鈕時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開(kāi)關(guān)在閉合時(shí)不會(huì)馬上穩(wěn)定地接通,在斷開(kāi)時(shí)也不會(huì)一下子斷開(kāi)。因而機(jī)械觸點(diǎn)在閉合及斷開(kāi)的瞬間均伴隨有一連串的抖動(dòng),按鍵的時(shí)序如下圖2所示,抖動(dòng)時(shí)間的長(zhǎng)短由按鍵的機(jī)械特性及操作人員按鍵動(dòng)作決定,一般為5ms~20ms;按鍵穩(wěn)定閉合時(shí)間的長(zhǎng)短是由操作人員的按鍵按壓時(shí)間長(zhǎng)短決定的,一般為零點(diǎn)幾秒至數(shù)秒不等。

輕觸按鍵操作時(shí)序示意圖
圖 2

    從上面圖2中我們可以看到,一次完整的擊鍵過(guò)程,包含以下5個(gè)階段:
    1. 等待階段: 此時(shí)按鍵尚未按下,處于空閑階段。
    2. 前沿(閉合)抖動(dòng)階段:此時(shí)按鍵剛剛按下,但按鍵信號(hào)還處于抖動(dòng)狀態(tài),這個(gè)時(shí)間一般為5~20ms。為了確保按鍵操作不會(huì)誤動(dòng)作,此時(shí)必須有個(gè)前沿消抖動(dòng)延時(shí)。
    3. 鍵穩(wěn)定階段:此時(shí)抖動(dòng)已經(jīng)結(jié)束,一個(gè)有效的按鍵動(dòng)作已經(jīng)產(chǎn)生。系統(tǒng)應(yīng)該在此時(shí)執(zhí)行按鍵功能;或?qū)存I所對(duì)應(yīng)的鍵值記錄下來(lái),待按鍵釋放時(shí)再執(zhí)行。
    4. 后沿(釋放)抖動(dòng)階段:一般來(lái)說(shuō),考究一點(diǎn)的程序應(yīng)該在這里再做一次消抖延時(shí),以防誤動(dòng)作。但是,如果前面“前沿抖動(dòng)階段”的消抖延時(shí)時(shí)間取值合適的話,可以忽略此階段。
    5. 按鍵釋放階段:此時(shí)后沿抖動(dòng)已經(jīng)結(jié)束,按鍵已經(jīng)處于完全釋放狀態(tài),如果按鍵是采用釋放后再執(zhí)行功能,則可以在這個(gè)階段進(jìn)行按鍵操作的相關(guān)處理。


    二、按鍵實(shí)驗(yàn)例程

    下面我們通過(guò)幾個(gè)實(shí)驗(yàn)例程來(lái)學(xué)習(xí)按鍵掃描編程及按鍵軟件消抖動(dòng)的編程,通過(guò)這些對(duì)比實(shí)驗(yàn),給大家一個(gè)更加感性的認(rèn)識(shí)。

    1、按鍵K1控制LED指示燈實(shí)驗(yàn):本程序通過(guò)實(shí)驗(yàn)板上的按鍵K1控制P1.0上的LED亮滅。程序功能如下:當(dāng)K1按下開(kāi)關(guān)時(shí)指示燈亮,再次按下時(shí)指示燈滅。

   輕觸按鍵K1控制指示燈的實(shí)驗(yàn)例程(沒(méi)有軟件消抖動(dòng)處理)
 
實(shí)驗(yàn)結(jié)果分析:


      ORG     0000H
      AJMP    START       ;跳轉(zhuǎn)到初始化程序

      ORG     0033H
START:MOV     SP,#60H     ;SP初始化
      MOV     P3,#0FFH    ;端口初始化

MAIN: JB      P3.2,MAIN   ;檢測(cè)按鍵K1有沒(méi)有按下
      CPL     P1.0        ;執(zhí)行按鍵命令,改變P1.0指示燈狀態(tài)
      JNB     P3.2,$      ;等待按鍵K1釋放
      AJMP    MAIN        ;返回重新檢測(cè)按鍵

      END

 


    由于本實(shí)驗(yàn)程序中沒(méi)有進(jìn)行軟件消抖動(dòng)延時(shí)處理,我們把程序燒寫到單片機(jī)上運(yùn)行時(shí),多次按壓K1控制LED的亮滅,發(fā)控制不太穩(wěn)定,大約按十次,LED發(fā)光二極管的輸出狀態(tài)有2到3次是錯(cuò)誤的。

    這就是因?yàn)闆](méi)有軟件去抖動(dòng)的原因,在按鍵的前沿抖動(dòng)或后沿抖動(dòng)期間,抖動(dòng)脈沖均有可能被程序檢測(cè)而錯(cuò)誤執(zhí)行,此時(shí)相當(dāng)于按鍵被按壓和松開(kāi)了N次,LED的輸出狀態(tài)也已經(jīng)改變了N次,故松開(kāi)按鍵后LED的狀態(tài)是一個(gè)隨機(jī)結(jié)果。

 


   2、改進(jìn)的按鍵K1控制LED指示燈實(shí)驗(yàn):本程序通過(guò)實(shí)驗(yàn)板上的按鍵K1控制P1.0上的LED亮滅。程序功能如下:當(dāng)K1按下開(kāi)關(guān)時(shí)指示燈亮,再次按下時(shí)指示燈滅。

    改進(jìn)的輕觸按鍵K1控制指示燈的實(shí)驗(yàn)例程(經(jīng)過(guò)軟件消抖動(dòng)處理)
 
實(shí)驗(yàn)結(jié)果分析:


      ORG     0000H
      AJMP    START       ;跳轉(zhuǎn)到初始化程序

      ORG     0033H
START:MOV     SP,#60H     ;SP初始化
      MOV     P3,#0FFH    ;端口初始化

MAIN: JB      P3.2,MAIN   ;檢測(cè)按鍵K1有沒(méi)有按下
      ACALL   YS20ms      ;消前沿抖動(dòng)延時(shí),實(shí)現(xiàn)軟件去抖動(dòng)
      JB      P3.2,MAIN   ;再次檢測(cè)按鍵,如果為高電平,則是抖動(dòng)
      CPL     P1.0        ;執(zhí)行按鍵命令,改變P1.0指示燈狀態(tài)
      JNB     P3.2,$      ;等待按鍵K1釋放
      AJMP    MAIN        ;返回重新檢測(cè)按鍵

YS20ms:
      MOV     R7,#40      ;延時(shí)20ms子程序
YS1:  MOV     R6,#229
      DJNZ    R6,$
      DJNZ    R7,YS1
      RET

      END

 


    由于本實(shí)驗(yàn)程序中對(duì)按鍵的前沿抖動(dòng)進(jìn)行20ms的軟件消抖動(dòng)延時(shí)處理,我們把程序燒寫到單片機(jī)上運(yùn)行,多次按壓K1控制LED的亮滅,發(fā)控制就很穩(wěn)定了,不會(huì)出現(xiàn)控制錯(cuò)誤的現(xiàn)象。

    通過(guò)本實(shí)驗(yàn),可以看出軟件去抖動(dòng)延時(shí)還是很重要的,消抖動(dòng)延時(shí)時(shí)間一般在5~20ms之間,實(shí)際應(yīng)用時(shí)候根據(jù)實(shí)驗(yàn)取得最佳延時(shí)。

    本程序沒(méi)有對(duì)按鍵松開(kāi)時(shí)的后沿抖動(dòng)進(jìn)行消抖動(dòng),如果在要求很嚴(yán)格的系統(tǒng)中,建議增加后沿消抖動(dòng)延時(shí)處理,這樣可以確保按鈕不會(huì)產(chǎn)生誤動(dòng)作。

 

 

    3、帶按鍵音效的按鍵掃描實(shí)驗(yàn)例程:下面的按鍵掃描實(shí)驗(yàn)例程除了有軟件消抖動(dòng)功能外,還具有按鍵音效,當(dāng)按壓按鍵K1~K4時(shí)候,按鍵號(hào)碼會(huì)顯示在實(shí)驗(yàn)板的數(shù)碼管上,同時(shí)可以聽(tīng)到按鍵音。

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 国产在线精品一区二区三区 | 久久久福利 | 中文字幕观看 | 成人在线视频网站 | 国产福利精品一区 | 性福视频在线观看 | 亚洲va中文字幕 | 久久精品免费看 | 91在线中文字幕 | 久久久精彩视频 | 黄色片免费看视频 | 欧美日韩视频 | 性欧美精品一区二区三区在线播放 | 国产成人午夜高潮毛片 | 在线视频国产一区 | av中文字幕在线播放 | 在线免费观看日本视频 | 日韩精品一区二区三区四区 | 中文字字幕一区二区三区四区五区 | 久久国产秒 | 国产激情一区二区三区 | 亚洲丝袜天堂 | 伦理午夜电影免费观看 | 超碰人人人 | 国产精品99久久久久 | 黄色男女网站 | 国产美女在线观看 | 黄色三级毛片 | 国产乱码精品一区二区三区五月婷 | 久久9热 | 久久精品一区 | 亚洲精品影院 | 成人av电影网 | 天天干天天操天天看 | 日韩在线电影 | 国产一级一级 | 日韩国产在线观看 | 欧美区日韩区 | 久产久精国产品 | 天堂资源最新在线 | 亚洲三区在线观看 |