91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單片機(jī)實(shí)現(xiàn)按鍵的電路和程序設(shè)計(jì)資料說(shuō)明

Wildesbeast ? 來(lái)源:?jiǎn)纹瑱C(jī)教程網(wǎng) ? 作者:?jiǎn)纹瑱C(jī)教程網(wǎng) ? 2020-10-06 18:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

單片機(jī)應(yīng)用系統(tǒng)中,按鍵主要有兩種形式:1、直接按鍵; 2、矩陣編碼鍵盤(pán)。直接按鍵的每個(gè)按鍵都單獨(dú)接到單片機(jī)的一個(gè)I/O口上,直接按鍵則通過(guò)判斷按鍵端口的電位即可識(shí)別按鍵操作;而矩陣鍵盤(pán)通過(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ī)輕觸按鍵原理圖

圖 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í)處理,我們把程序燒寫(xiě)到單片機(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í)處理,我們把程序燒寫(xiě)到單片機(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),如果在要求很?chē)?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)到按鍵音。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    243

    文章

    24592

    瀏覽量

    690747
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6076

    文章

    45492

    瀏覽量

    670137
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3846

    瀏覽量

    85217
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    單片機(jī)按鍵控制程序【匯編版】

    單片機(jī)按鍵控制程序【匯編版】單片機(jī)按鍵控制程序【匯編版】單片機(jī)按鍵控制程序【匯編版】
    發(fā)表于 12-29 11:04 ?0次下載

    PIC系列單片機(jī)程序設(shè)計(jì)基礎(chǔ)

    PIC系列單片機(jī)程序設(shè)計(jì)基礎(chǔ)
    發(fā)表于 10-16 14:27 ?9次下載
    PIC系列<b class='flag-5'>單片機(jī)</b><b class='flag-5'>程序設(shè)計(jì)</b>基礎(chǔ)

    PIC單片機(jī)原理與程序設(shè)計(jì)

    PIC單片機(jī)原理與程序設(shè)計(jì)
    發(fā)表于 10-16 14:57 ?16次下載
    PIC<b class='flag-5'>單片機(jī)</b>原理與<b class='flag-5'>程序設(shè)計(jì)</b>

    單片機(jī)C語(yǔ)言程序設(shè)計(jì)的20例基礎(chǔ)程序設(shè)計(jì)詳細(xì)資料概述

    本文檔介紹的主要內(nèi)容是20例基于單片機(jī)C語(yǔ)言的基礎(chǔ)程序設(shè)計(jì)詳細(xì)資料概述
    發(fā)表于 06-08 08:00 ?88次下載
    <b class='flag-5'>單片機(jī)</b>C語(yǔ)言<b class='flag-5'>程序設(shè)計(jì)</b>的20例基礎(chǔ)<b class='flag-5'>程序設(shè)計(jì)</b>詳細(xì)<b class='flag-5'>資料</b>概述

    單片機(jī)基礎(chǔ)教程之匯編語(yǔ)言程序設(shè)計(jì)知識(shí)的詳細(xì)資料說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是單片機(jī)基礎(chǔ)教程之匯編語(yǔ)言程序設(shè)計(jì)知識(shí)的詳細(xì)資料說(shuō)明包括了:1 編程的步驟、方法和技巧,2 匯編語(yǔ)言源程序的編輯和
    發(fā)表于 01-28 16:47 ?10次下載
    <b class='flag-5'>單片機(jī)</b>基礎(chǔ)教程之匯編語(yǔ)言<b class='flag-5'>程序設(shè)計(jì)</b>知識(shí)的詳細(xì)<b class='flag-5'>資料</b><b class='flag-5'>說(shuō)明</b>

    AVR單片機(jī)讀卡器程序設(shè)計(jì)資料說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是AVR單片機(jī)讀卡器程序設(shè)計(jì)資料說(shuō)明。
    發(fā)表于 01-29 10:04 ?14次下載
    AVR<b class='flag-5'>單片機(jī)</b>讀卡器<b class='flag-5'>程序設(shè)計(jì)</b>的<b class='flag-5'>資料</b><b class='flag-5'>說(shuō)明</b>

    AD轉(zhuǎn)換器CS5550與單片機(jī)的接口程序設(shè)計(jì)的論文資料說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是AD轉(zhuǎn)換器CS5550與單片機(jī)的接口程序設(shè)計(jì)的論文資料說(shuō)明。分析雙通道低成本A/D轉(zhuǎn)換器CS5550的接口特點(diǎn),以 ATmega16
    發(fā)表于 01-29 15:41 ?36次下載
    AD轉(zhuǎn)換器CS5550與<b class='flag-5'>單片機(jī)</b>的接口<b class='flag-5'>程序設(shè)計(jì)</b>的論文<b class='flag-5'>資料</b><b class='flag-5'>說(shuō)明</b>

    單片機(jī)的計(jì)時(shí)程序設(shè)計(jì)資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是單片機(jī)的計(jì)時(shí)程序設(shè)計(jì)資料免費(fèi)下載。
    發(fā)表于 03-20 16:19 ?6次下載
    <b class='flag-5'>單片機(jī)</b>的計(jì)時(shí)<b class='flag-5'>程序設(shè)計(jì)</b><b class='flag-5'>資料</b>免費(fèi)下載

    使用51單片機(jī)進(jìn)行廣告屏和按鍵掃描的C語(yǔ)言程序和設(shè)計(jì)資料說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)進(jìn)行廣告屏和按鍵掃描的C語(yǔ)言程序和設(shè)計(jì)資料說(shuō)明。
    發(fā)表于 05-05 08:00 ?1次下載
    使用51<b class='flag-5'>單片機(jī)</b>進(jìn)行廣告屏和<b class='flag-5'>按鍵</b>掃描的C語(yǔ)言<b class='flag-5'>程序</b>和設(shè)計(jì)<b class='flag-5'>資料</b><b class='flag-5'>說(shuō)明</b>

    STC12C5616AD單片機(jī)實(shí)現(xiàn)16位AD按鍵電路圖和源代碼等資料說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是STC12C5616AD單片機(jī)實(shí)現(xiàn)16位AD按鍵電路圖和源代碼等資料說(shuō)明
    發(fā)表于 11-15 08:00 ?70次下載
    STC12C5616AD<b class='flag-5'>單片機(jī)</b><b class='flag-5'>實(shí)現(xiàn)</b>16位AD<b class='flag-5'>按鍵</b>的<b class='flag-5'>電路</b>圖和源代碼等<b class='flag-5'>資料</b><b class='flag-5'>說(shuō)明</b>

    使用單片機(jī)實(shí)現(xiàn)按鍵發(fā)音的程序和仿真電路圖免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)實(shí)現(xiàn)按鍵發(fā)音的程序和仿真電路圖免費(fèi)下載。
    發(fā)表于 06-02 17:04 ?10次下載
    使用<b class='flag-5'>單片機(jī)</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>按鍵</b>發(fā)音的<b class='flag-5'>程序</b>和仿真<b class='flag-5'>電路</b>圖免費(fèi)下載

    使用單片機(jī)實(shí)現(xiàn)按鍵發(fā)音的程序和仿真電路圖免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)實(shí)現(xiàn)按鍵發(fā)音的程序和仿真電路圖免費(fèi)下載。
    發(fā)表于 06-03 15:48 ?7次下載
    使用<b class='flag-5'>單片機(jī)</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>按鍵</b>發(fā)音的<b class='flag-5'>程序</b>和仿真<b class='flag-5'>電路</b>圖免費(fèi)下載

    使用單片機(jī)實(shí)現(xiàn)門(mén)鈴設(shè)計(jì)的程序資料說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)實(shí)現(xiàn)門(mén)鈴設(shè)計(jì)的程序資料說(shuō)明。
    發(fā)表于 06-08 17:20 ?10次下載
    使用<b class='flag-5'>單片機(jī)</b><b class='flag-5'>實(shí)現(xiàn)</b>門(mén)鈴設(shè)計(jì)的<b class='flag-5'>程序</b>和<b class='flag-5'>資料</b><b class='flag-5'>說(shuō)明</b>

    單片機(jī)按鍵使用程序 (51單片機(jī)

    單片機(jī)獨(dú)立按鍵使用程序 (51單片機(jī))獨(dú)立按鍵單片機(jī)中很重要的一個(gè)器件,在這篇文章里,通過(guò)這個(gè)
    發(fā)表于 11-11 18:36 ?108次下載
    <b class='flag-5'>單片機(jī)</b><b class='flag-5'>按鍵</b>使用<b class='flag-5'>程序</b> (51<b class='flag-5'>單片機(jī)</b>)

    基于51單片機(jī)的串口測(cè)試程序設(shè)計(jì)資料程序文件

    基于51單片機(jī)的串口測(cè)試程序設(shè)計(jì)資料程序文件
    發(fā)表于 04-27 15:05 ?0次下載