RM新时代网站-首页

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

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

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

單片機(jī)鍵盤檢測與應(yīng)用

倩倩 ? 來源:電子開發(fā)網(wǎng) ? 2020-09-18 16:34 ? 次閱讀

鍵盤是單片機(jī)應(yīng)用系統(tǒng)中重要的輸入設(shè)備,是實(shí)現(xiàn)人機(jī)對話的紐帶。鍵盤主要分編碼鍵盤和非編碼鍵盤兩大類,其中鍵的開閉的識別由硬件編碼器來實(shí)現(xiàn)的稱為編碼鍵盤,如計(jì)算機(jī)鍵盤。而靠軟件編程來識別鍵的開閉的稱為非編碼鍵盤,單片機(jī)系統(tǒng)中常用的鍵盤為非編碼鍵盤。

鍵盤都是由一個一個小按鍵構(gòu)成的,按鍵實(shí)際上就是一個開關(guān)元件,單片機(jī)系統(tǒng)中常用的按鍵主要有自鎖按鍵和非自鎖按鍵,分別如圖1、圖2所示。

圖1 自鎖按鍵 圖2 非自鎖按鍵

非編碼鍵盤通常又分為獨(dú)立鍵盤和矩陣鍵盤兩大類。所謂獨(dú)立鍵盤是指按鍵在與單片機(jī)相連時,每一個按鍵都與一個單片機(jī)單片機(jī)的I/O口相連,如圖3所示;而對于一些應(yīng)用系統(tǒng)中若需要較多按鍵時,采用獨(dú)立鍵盤的連接方法,則比較耗費(fèi)單片機(jī)的I/O口,此時我們一般會用到矩陣鍵盤,如圖4所示,16個按鍵排成4行4列,稱為4X4矩陣鍵盤,如按獨(dú)立按鍵法,需要16個I/O口,而按圖4的接法只需要8個I/O.

圖3 獨(dú)立鍵盤

圖4 4X4矩陣鍵盤

由于在單片機(jī)在應(yīng)用系統(tǒng)中,更多的會用到獨(dú)立鍵盤,加之兩者的檢測原理基本相似,所以這一節(jié)里我主要講解獨(dú)立鍵盤的檢測原理及程序?qū)崿F(xiàn)的方法。

1、 按鍵的檢測原理

按鍵與單片機(jī)的連接如圖5所示,按鍵的一端與地相連,另一端直接與單片機(jī)的I/O口相連。此時我們在程序中先給I/O口賦值高電平,然后不斷的檢測I/O口電平的變化。當(dāng)按鍵沒有被按下時,此I/O口的電平一直為高;當(dāng)按鍵被按下時,由于按鍵的另一端直接與地相連,相當(dāng)于低電平,此時我們從I/O口讀出的即為高電平,程序一旦檢測到I/O口由高電平變?yōu)榈碗娖綍r,說明按鍵被按下,此時馬上執(zhí)行相應(yīng)的動作,這就是按鍵檢測的原理。

圖5 按鍵與單片機(jī)連接圖

2、 按鍵的抖動與消除

由于機(jī)械觸點(diǎn)的彈性作用,一個按鍵開關(guān)在閉合時不會馬上穩(wěn)定地接通,在斷開時也不會一下子斷開。因而在閉合及斷開的瞬間均伴隨有一連串的抖動,與單片機(jī)I/O口相接的一端的電壓會出現(xiàn)相應(yīng)的變化,如圖6所示。

圖6 按鍵按下時電壓的變化情況

從圖6中我們可以看出,實(shí)際的電壓波形在按下松手的時候都會出現(xiàn)一定的抖動,經(jīng)過實(shí)驗(yàn)知道,這個一時間大概在5-10ms。所在在做單片機(jī)與按鍵相關(guān)的系統(tǒng)時必須考慮消抖的環(huán)節(jié)。按鍵消抖的方法有兩種,一個是硬件方法 一個是軟件的方法,而從節(jié)約成本和盡量簡化硬件電路的角度出發(fā),一般是采用在程序中加上消抖的方法實(shí)現(xiàn),通常是采用延時的方法。具體的作法是:

檢測出鍵閉合后執(zhí)行一個延時程序,產(chǎn)生5ms~10ms的延時,讓前沿抖動消失后再一次檢測鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認(rèn)為真正有鍵按下。當(dāng)檢測到按鍵釋放后,也要給5ms~10ms的延時,待后沿抖動消失后才能轉(zhuǎn)入該鍵的處理程序。后面會結(jié)合到程序進(jìn)行講解。

下面我寫一個簡單的程序,功能為:當(dāng)一個鍵按下時,讓一個發(fā)光二極管發(fā)光,我們先看下按鍵模塊在實(shí)驗(yàn)板上的原理圖,如圖7和圖8所示。

圖7 發(fā)光二極管模塊原理圖

圖8 按鍵模塊原理圖

例1 按鍵檢測程序

//功能:當(dāng)按下S8鍵時,L1燈發(fā)光,松手后,L1燈熄滅。相應(yīng)程序如例1.

#include 《reg52.h》

#define uint unsigned int

#define uchar unsigned char

sbit D1=P1^0;

sbit S1=P3^4;

void main()

{

P3=0xff;

while(1)

{

if(S1==0)

delay(20);//消除按下時的抖動

if(S1==0)

{

D1=0;

while(!S1);//松手檢測

delay(20);//消除松手時的抖動

}

else

D1=1;

}

}

例2 按鍵檢測程序

//功能:當(dāng)每按下S8鍵時,數(shù)碼管自動加1,當(dāng)加到F時又從零開始。

#include《reg52.h》

#define uint unsigned int

#define uchar unsigned char

sbit duan=P2^6;

sbit wei=P2^7;

sbit S1=P3^4;

uchar temp;

uchar code table[]=

{0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

void delay(uint z )

{

uint x ,y;

for(x=z;x》0;x--)

for(y=110;y》0;y--);

}

void main()

{

P3=0xff;

wei=1;

P0=0xfe;

wei=0;

temp=0;

while(1)

{

if(S1==0)

{

delay(20);//消除按下時的抖動

if(S1==0)//

{

temp++;

if(temp==16)temp=0;

}

while(!S1);//松手檢測,防止temp一次多加

delay(20);//消除松手時的抖動

while(!S1);

}

duan=1;

P0=table[temp];

duan=0;

}

}

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

    關(guān)注

    6035

    文章

    44554

    瀏覽量

    634614
  • 電平
    +關(guān)注

    關(guān)注

    5

    文章

    360

    瀏覽量

    39883
  • 鍵盤
    +關(guān)注

    關(guān)注

    4

    文章

    859

    瀏覽量

    39647
收藏 人收藏

    評論

    相關(guān)推薦

    基于單片機(jī)的矩陣鍵盤檢測案例

    /O端口資源,導(dǎo)致單片機(jī)與其它外部設(shè)備無法連接。在這種情況下,可以使用矩陣鍵盤,實(shí)現(xiàn)多個按鍵與單片機(jī)的連接,而且不浪費(fèi)單片機(jī)的I/O端口資源。
    的頭像 發(fā)表于 10-31 14:35 ?1248次閱讀
    基于<b class='flag-5'>單片機(jī)</b>的矩陣<b class='flag-5'>鍵盤</b><b class='flag-5'>檢測</b>案例

    如何實(shí)現(xiàn)基于單片機(jī)鍵盤檢測

    鍵盤單片機(jī)與用戶交互設(shè)備之一,用戶通過鍵盤輸入數(shù)據(jù)或命令到單片機(jī)。最簡單的鍵盤僅有一個按鍵,復(fù)雜一些的
    的頭像 發(fā)表于 10-31 14:39 ?1905次閱讀
    如何實(shí)現(xiàn)基于<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>鍵盤</b><b class='flag-5'>檢測</b>

    現(xiàn)在想學(xué)以下51單片機(jī)鍵盤檢測,有木有相關(guān)資料???

    新人加入,好激動啊!現(xiàn)在想學(xué)以下51單片機(jī)鍵盤檢測,有木有相關(guān)資料啊,,,拜求!
    發(fā)表于 10-27 16:58

    單片機(jī)鍵盤上的應(yīng)用

    單片機(jī)鍵盤上的應(yīng)用 鍵盤擔(dān)負(fù)著向系統(tǒng)發(fā)出命令和查詢系統(tǒng)工作狀態(tài)的重任。由于各種單片機(jī)所提供的片內(nèi)外資源不同,所以在進(jìn)行鍵盤擴(kuò)展時其硬件電
    發(fā)表于 03-29 14:34 ?39次下載

    單片機(jī)教程二十四:單片機(jī)鍵盤接口程序設(shè)計(jì)

    單片機(jī)教程二十四:單片機(jī)鍵盤接口程序設(shè)計(jì) 鍵盤是由若干按鈕組成的開關(guān)矩陣,它是單片機(jī)系統(tǒng)中最常用的輸入設(shè)備,用戶能通過鍵
    發(fā)表于 05-15 23:19 ?1305次閱讀
    <b class='flag-5'>單片機(jī)</b>教程二十四:<b class='flag-5'>單片機(jī)</b><b class='flag-5'>鍵盤</b>接口程序設(shè)計(jì)

    3.3V單片機(jī)系統(tǒng)中矩陣鍵盤檢測電路的改進(jìn)

    本文提出了一種解決3.3V單片機(jī)系統(tǒng)中矩陣式鍵盤檢測問題的方法
    發(fā)表于 03-24 15:35 ?1次下載

    單片機(jī)總線模式的鍵盤檢測與液晶顯示技術(shù)

    鍵盤和顯示器是使用最頻繁的外設(shè),本文將通過Proteus仿真軟件驗(yàn)證單片機(jī)總線模式的鍵盤檢測與液晶顯示技術(shù)。
    發(fā)表于 03-28 15:26 ?12次下載

    單片機(jī)實(shí)驗(yàn)--鍵盤掃描

    單片機(jī)實(shí)驗(yàn)--鍵盤掃描
    發(fā)表于 12-23 02:00 ?0次下載

    單片機(jī)8x8矩陣鍵盤原理說明

    本文主要介紹了介紹基于51單片機(jī)接矩陣鍵盤原理以及單片機(jī)8x8矩陣鍵盤原理說明,另外還詳細(xì)的附上了單片機(jī)8x8矩陣
    的頭像 發(fā)表于 02-24 16:14 ?2.6w次閱讀
    <b class='flag-5'>單片機(jī)</b>8x8矩陣<b class='flag-5'>鍵盤</b>原理說明

    單片機(jī)與顯示器件及開關(guān)鍵盤的接口設(shè)計(jì)學(xué)習(xí)課件免費(fèi)下載

    單片機(jī)系統(tǒng)顯示及開關(guān)檢測、鍵盤輸入是其基本功能。本章介紹單片機(jī)與顯示器件、開關(guān)及鍵盤的接口設(shè)計(jì)與軟件編程。
    發(fā)表于 10-10 16:34 ?16次下載
    <b class='flag-5'>單片機(jī)</b>與顯示器件及開關(guān)<b class='flag-5'>鍵盤</b>的接口設(shè)計(jì)學(xué)習(xí)課件免費(fèi)下載

    51單片機(jī)鍵盤檢測原理

    一、獨(dú)立鍵盤檢測1、按鍵的檢測原理單片機(jī)的I/O口既可以作為輸出也可以作為輸入使用,檢測按鍵時用的是輸入功能。把按鍵的一端接地,另一端與
    發(fā)表于 11-10 18:46 ?39次下載
    51<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>鍵盤</b><b class='flag-5'>檢測</b>原理

    51單片機(jī)按鍵檢測--獨(dú)立按鍵與矩陣鍵盤

    按鍵,每個按鍵對應(yīng)一個IO口,通過循環(huán)或者中斷去檢測,這種方法常用于按鍵個數(shù)較少得時候。如果按鍵的個數(shù)較多,每個按鍵都分配一個IO口,會占用大量的資源,所以就有了矩陣鍵盤。矩陣鍵盤是通過單片機(jī)
    發(fā)表于 11-12 11:06 ?15次下載
    51<b class='flag-5'>單片機(jī)</b>按鍵<b class='flag-5'>檢測</b>--獨(dú)立按鍵與矩陣<b class='flag-5'>鍵盤</b>

    PIC單片機(jī)矩陣鍵盤檢測原理及實(shí)現(xiàn)

    PIC單片機(jī)矩陣鍵盤檢測原理及實(shí)現(xiàn)
    發(fā)表于 11-16 11:51 ?2次下載
    PIC<b class='flag-5'>單片機(jī)</b>矩陣<b class='flag-5'>鍵盤</b><b class='flag-5'>檢測</b>原理及實(shí)現(xiàn)

    PIC單片機(jī)矩陣鍵盤檢測原理及實(shí)現(xiàn)

    PIC單片機(jī)矩陣鍵盤檢測原理及實(shí)現(xiàn)
    發(fā)表于 11-16 12:51 ?7次下載
    PIC<b class='flag-5'>單片機(jī)</b>矩陣<b class='flag-5'>鍵盤</b><b class='flag-5'>檢測</b>原理及實(shí)現(xiàn)

    單片機(jī)-鍵盤檢測

    彈起斷開按鍵與單片機(jī)的連接方式如下圖所示 :從上圖可以看出,理想波形與實(shí)際波形之間是有區(qū)別的,實(shí)際波形再按下和釋放的瞬間都有抖動的現(xiàn)象,抖動時間的長短和按鍵的機(jī)械特性有關(guān),一般...
    發(fā)表于 11-24 11:06 ?12次下載
    <b class='flag-5'>單片機(jī)</b>-<b class='flag-5'>鍵盤</b><b class='flag-5'>檢測</b>
    RM新时代网站-首页