<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開(kāi)發(fā)網(wǎng)

      電子開(kāi)發(fā)網(wǎng)電子設(shè)計(jì) | 電子開(kāi)發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
      搜索: 您現(xiàn)在的位置: 電子開(kāi)發(fā)網(wǎng) >> 電子開(kāi)發(fā) >> 單片機(jī) >> 正文

      單片機(jī) 鍵盤(pán)檢測(cè)與應(yīng)用

      作者:佚名    文章來(lái)源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2018/10/8
      鍵盤(pán)是單片機(jī)應(yīng)用系統(tǒng)中重要的輸入設(shè)備,是實(shí)現(xiàn)人機(jī)對(duì)話的紐帶。鍵盤(pán)主要分編碼鍵盤(pán)和非編碼鍵盤(pán)兩大類,其中鍵的開(kāi)閉的識(shí)別由硬件編碼器來(lái)實(shí)現(xiàn)的稱為編碼鍵盤(pán),如計(jì)算機(jī)鍵盤(pán)。而靠軟件編程來(lái)識(shí)別鍵的開(kāi)閉的稱為非編碼鍵盤(pán),單片機(jī)系統(tǒng)中常用的鍵盤(pán)為非編碼鍵盤(pán)。
      鍵盤(pán)都是由一個(gè)一個(gè)小按鍵構(gòu)成的,按鍵實(shí)際上就是一個(gè)開(kāi)關(guān)元件,單片機(jī)系統(tǒng)中常用的按鍵主要有自鎖按鍵和非自鎖按鍵,分別如圖1、圖2所示。
      圖1 自鎖按鍵                  圖2 非自鎖按鍵
      非編碼鍵盤(pán)通常又分為獨(dú)立鍵盤(pán)和矩陣鍵盤(pán)兩大類。所謂獨(dú)立鍵盤(pán)是指按鍵在與單片機(jī)相連時(shí),每一個(gè)按鍵都與一個(gè)單片機(jī)單片機(jī)的I/O口相連,如圖3所示;而對(duì)于一些應(yīng)用系統(tǒng)中若需要較多按鍵時(shí),采用獨(dú)立鍵盤(pán)的連接方法,則比較耗費(fèi)單片機(jī)的I/O口,此時(shí)我們一般會(huì)用到矩陣鍵盤(pán),如圖4所示,16個(gè)按鍵排成4行4列,稱為4X4矩陣鍵盤(pán),如按獨(dú)立按鍵法,需要16個(gè)I/O口,而按圖4的接法只需要8個(gè)I/O.
      圖3 獨(dú)立鍵盤(pán)
      圖4 4X4矩陣鍵盤(pán)
      由于在單片機(jī)在應(yīng)用系統(tǒng)中,更多的會(huì)用到獨(dú)立鍵盤(pán),加之兩者的檢測(cè)原理基本相似,所以這一節(jié)里我主要講解獨(dú)立鍵盤(pán)的檢測(cè)原理及程序?qū)崿F(xiàn)的方法。
      1、 按鍵的檢測(cè)原理
      按鍵與單片機(jī)的連接如圖5所示,按鍵的一端與地相連,另一端直接與單片機(jī)的I/O口相連。此時(shí)我們?cè)诔绦蛑邢冉oI/O口賦值高電平,然后不斷的檢測(cè)I/O口電平的變化。當(dāng)按鍵沒(méi)有被按下時(shí),此I/O口的電平一直為高;當(dāng)按鍵被按下時(shí),由于按鍵的另一端直接與地相連,相當(dāng)于低電平,此時(shí)我們從I/O口讀出的即為高電平,程序一旦檢測(cè)到I/O口由高電平變?yōu)榈碗娖綍r(shí),說(shuō)明按鍵被按下,此時(shí)馬上執(zhí)行相應(yīng)的動(dòng)作,這就是按鍵檢測(cè)的原理。
       
      圖5 按鍵與單片機(jī)連接圖
      2、 按鍵的抖動(dòng)與消除
      由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開(kāi)關(guān)在閉合時(shí)不會(huì)馬上穩(wěn)定地接通,在斷開(kāi)時(shí)也不會(huì)一下子斷開(kāi)。因而在閉合及斷開(kāi)的瞬間均伴隨有一連串的抖動(dòng),與單片機(jī)I/O口相接的一端的電壓會(huì)出現(xiàn)相應(yīng)的變化,如圖6所示。
      圖6 按鍵按下時(shí)電壓的變化情況
      從圖6中我們可以看出,實(shí)際的電壓波形在按下松手的時(shí)候都會(huì)出現(xiàn)一定的抖動(dòng),經(jīng)過(guò)實(shí)驗(yàn)知道,這個(gè)一時(shí)間大概在5-10ms。所在在做單片機(jī)與按鍵相關(guān)的系統(tǒng)時(shí)必須考慮消抖的環(huán)節(jié)。按鍵消抖的方法有兩種,一個(gè)是硬件方法   一個(gè)是軟件的方法,而從節(jié)約成本和盡量簡(jiǎn)化硬件電路的角度出發(fā),一般是采用在程序中加上消抖的方法實(shí)現(xiàn),通常是采用延時(shí)的方法。具體的作法是:
      檢測(cè)出鍵閉合后執(zhí)行一個(gè)延時(shí)程序,產(chǎn)生5ms~10ms的延時(shí),讓前沿抖動(dòng)消失后再一次檢測(cè)鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認(rèn)為真正有鍵按下。當(dāng)檢測(cè)到按鍵釋放后,也要給5ms~10ms的延時(shí),待后沿抖動(dòng)消失后才能轉(zhuǎn)入該鍵的處理程序。后面會(huì)結(jié)合到程序進(jìn)行講解。
      下面我寫(xiě)一個(gè)簡(jiǎn)單的程序,功能為:當(dāng)一個(gè)鍵按下時(shí),讓一個(gè)發(fā)光二極管發(fā)光,我們先看下按鍵模塊在實(shí)驗(yàn)板上的原理圖,如圖7和圖8所示。
      圖7 發(fā)光二極管模塊原理圖
      圖8 按鍵模塊原理圖
      例1 按鍵檢測(cè)程序
      //功能:當(dāng)按下S8鍵時(shí),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);//消除按下時(shí)的抖動(dòng)
      if(S1==0)
      {
                           D1=0;        
      while(!S1);//松手檢測(cè)
                    delay(20);//消除松手時(shí)的抖動(dòng)
      }
                    else
                           D1=1;           
             }
      }
       
       
      例2 按鍵檢測(cè)程序
      //功能:當(dāng)每按下S8鍵時(shí),數(shù)碼管自動(dòng)加1,當(dāng)加到F時(shí)又從零開(kāi)始。
      #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);//消除按下時(shí)的抖動(dòng)
                           if(S1==0)//
                           {
                                  temp++;
                                  if(temp==16)temp=0;
                           }
                           while(!S1);//松手檢測(cè),防止temp一次多加
                           delay(20);//消除松手時(shí)的抖動(dòng)
                           while(!S1);
                    }    
                 duan=1;
                    P0=table[temp];
                    duan=0;
             }
      }
      Tags:單片機(jī),鍵盤(pán),應(yīng)用,單片機(jī)按鍵  
      責(zé)任編輯:admin
      相關(guān)文章列表
      濕敏電阻的應(yīng)用和測(cè)試方法
      基于AT89C52單片機(jī)控制的雙軸太陽(yáng)自動(dòng)跟蹤系統(tǒng)設(shè)計(jì)
      雙向可控硅在小家電中應(yīng)用-咖啡機(jī)/豆?jié){機(jī)/果汁
      ESP32單片機(jī)入門(mén)篇
      超聲波測(cè)距+溫度+報(bào)警的單片機(jī)代碼_51單片機(jī)超聲波測(cè)距C語(yǔ)言程序
      七段數(shù)碼管顯示原理研究_數(shù)碼管顯示0~9對(duì)應(yīng)的段碼
      單片機(jī)C語(yǔ)言編程入門(mén)教程  流水燈程序示例
      基于51單片機(jī)—多功能秒表,多功能計(jì)時(shí)器C語(yǔ)言程序
      STC89C52單片機(jī)數(shù)字電流表電壓表源碼與電路圖  51單片機(jī)電流電壓
      自學(xué)stm32單片機(jī)四個(gè)步驟,實(shí)用又高效!
      先學(xué)51還是先學(xué)STM32?STM32和51單片機(jī)的區(qū)別
      單片機(jī)最小系統(tǒng)介紹及電路設(shè)計(jì) STM32單片機(jī)最小系統(tǒng)
      什么是PIC單片機(jī)
      為什么51單片機(jī)的晶振一般使用11.0592? 51單片機(jī)常用波特率初值表
      51單片機(jī)寄存器功能一覽表
      單片機(jī)寫(xiě)延時(shí)程序的幾種方法
      自學(xué)單片機(jī)編程之中斷與時(shí)鐘程序
      哈佛結(jié)構(gòu)與馮·諾伊曼結(jié)構(gòu)區(qū)別以及X86體系
      單片機(jī)萬(wàn)年歷:公歷日期與農(nóng)歷日期的相互轉(zhuǎn)換程序
      AVR定時(shí)器1的CTC模式設(shè)置
      請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語(yǔ)。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個(gè)字
      [ 查看全部 ] 網(wǎng)友評(píng)論
      最新推薦
      關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁(yè)面
      下到頁(yè)底
      晶體管查詢
      主站蜘蛛池模板: 综合久久给合久久狠狠狠97色| 久久久久青草线蕉综合超碰| 色偷偷狠狠色综合网| 色综合色综合久久综合频道| 91精品国产综合久久久久久| 国产美女亚洲精品久久久综合| 97se亚洲综合在线| 五月天婷亚洲天综合网精品偷| 色欲色香天天天综合网站 | 一本大道久久a久久综合| 狠狠人妻久久久久久综合| 日本一道综合色视频| 国产综合成色在线视频| 久久91精品综合国产首页| 99sescom色综合| 伊人久久亚洲综合| 狠狠综合久久av一区二区| 色综合久久无码五十路人妻| 综合激情区视频一区视频二区 | 久久综合九色综合97_久久久| 国产精品天天影视久久综合网 | 国产成人综合亚洲亚洲国产第一页| 亚洲AV综合永久无码精品天堂| 婷婷五月综合缴情在线视频| 一本大道道无香蕉综合在线| 思思91精品国产综合在线| 狠狠色噜狠狠狠狠色综合久| 久久久久青草线蕉综合超碰| 久久综合噜噜激激的五月天| 亚洲综合伊人久久综合| 综合久久一区二区三区 | 大香网伊人久久综合观看| 中文字幕人成无码人妻综合社区| 久久香综合精品久久伊人| 亚洲综合久久综合激情久久 | 久久综合久久精品| 婷婷综合久久中文字幕蜜桃三电影| 久久无码无码久久综合综合| 久久婷婷五月综合国产尤物app | 国产综合亚洲专区在线| 久久精品综合电影|