《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 其他 > 教程:基于51單片機的矩陣鍵盤設計

教程:基于51單片機的矩陣鍵盤設計

2023-01-31
來源:滑小稽筆記

  12.1 項目分析

  矩陣鍵盤,是一種在節省端口的前提下控制大量按鍵的一種方法,對于傳統的獨立對地鍵盤,一個按鍵就需要占用一個單片機IO口,雖然有時候會加一些擴展芯片之類的用于一個端口控制多個按鍵,但是電路結構比較復雜,矩陣鍵盤則是一種盡可能的既不用驅動芯片又能最大限度的使用大量按鍵的方法,一個a行b列的矩陣鍵盤,它所占用的端口數量是a+b個端口,所控制的按鍵數量則是a×b個按鍵,比如常見的4×4矩陣鍵盤只需要占用8個端口就可以控制16個按鍵,矩陣鍵盤的接法如下圖所示。

276.JPG

  從圖中可以看出,每一列的按鍵取一端接在一起,每一行的按鍵取按鍵的另一列接在一起,這樣就會引出四條行掃描線和列掃描線,假設某個端口產生了低電平,那么對應的就會有四個按鍵變成了獨立對地鍵盤,當這四個鍵按下的時候,對應的端口電平就會拉低,所以矩陣鍵盤的按鍵檢測主要就是進行掃描檢測,在短暫的時間內不停的掃描鍵盤,可以根據行掃描判斷,也可以根據列掃描判斷,矩陣鍵盤的識別主要有以下幾種判斷方法:

  算法1 :對矩陣鍵盤的行(或者列)不停的掃描,然后檢測對應的列(或者行),當掃描的頻率超過人的反應時間時,便不會被感覺出來,但是這種方法的優點是程序編寫較為簡單,但是代碼很長,且浪費CPU的資源。

  算法2: 對矩陣鍵盤的列(或者行)全部賦低電平,然后判斷是否有行(或者列)的端口有低電平產生,沒有,證明按鍵沒有被按下,如果有,那么此時將端口對應的數據存放入一個變量,并同時將列(或者行)的低電平轉移到行(或者列)上,此時列(或者行)必然也會有一個低電平的端口,將這時候的數據存放入第二個變量,最后,撤銷所有的低電平,將兩個變量的數據相加,則必然會得出所有按鍵值的其中一個,那么這個按鍵值所對應的按鍵必然就是按下的按鍵,這種算法比較復雜,編程或者理解起來比較困難,但是代碼短,節省CPU資源。

  12.2 原理圖

275.JPG

  現在我們以原理圖為例,實現如下功能,用0~F代表按鍵的編號,按下某個按鍵后,在數碼管上顯示按鍵的編號(要求采用算法2方式實現)。

  **12.3 **源代碼

  /*********************************************************************************************************

  頭    文    件    引    用

  *********************************************************************************************************/

  #include <reg51.h>                                            //導入51單片機頭文件

  #include <intrins.h>

  /*********************************************************************************************************

  數    據    類    型    定    義

  *********************************************************************************************************/

  #define u8 unsigned char                                        //定義無符號字符型數據(0~255)

  #define u16 unsigned int                                        //定義無符號整型數據(0~65535)

  /********************************************************

  Name    :KEY_Scan

  Function  :鍵盤掃描

  Paramater  :None

  Return    :None

  ********************************************************/

  void KEY_Scan()

  {

  u8 x, y ;

  u8 TAB[] = { 0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78, 0x00, 0x10, 0x08, 0x03, 0x46, 0x21, 0x06, 0x0E } ;

  P2 = 0xF0 ;

  if( P2!=0xF0 )

  {

  x = P2 ;

  P2 = 0x0F ;

  if( P2!=0x0F )

  {

  y = P2 ;

  switch( x+y )

  {

  case 0xEE:  P0 = TAB[ 0 ] ;    break ;

  case 0xDE:  P0 = TAB[ 1 ] ;    break ;

  case 0xBE:  P0 = TAB[ 2 ] ;    break ;

  case 0x7E:  P0 = TAB[ 3 ] ;    break ;

  case 0xED:  P0 = TAB[ 4 ] ;    break ;

  case 0xDD:  P0 = TAB[ 5 ] ;    break ;

  case 0xBD:  P0 = TAB[ 6 ] ;    break ;

  case 0x7D:  P0 = TAB[ 7 ] ;    break ;

  case 0xEB:  P0 = TAB[ 8 ] ;    break ;

  case 0xDB:  P0 = TAB[ 9 ] ;    break ;

  case 0xBB:  P0 = TAB[ 10 ] ;  break ;

  case 0x7B:  P0 = TAB[ 11 ] ;  break ;

  case 0xE7:  P0 = TAB[ 12 ] ;  break ;

  case 0xD7:  P0 = TAB[ 13 ] ;  break ;

  case 0xB7:  P0 = TAB[ 14 ] ;  break ;

  case 0x77:  P0 = TAB[ 15 ] ;  break ;

  }

  }

  }

  }

  /*********************************************************************************************************

  主    函    數

  *********************************************************************************************************/

  void main()

  {

  while( 1 )

  {

  KEY_Scan() ;

  }

  }

12.4 仿真效果

274.JPG



更多信息可以來這里獲取==>>電子技術應用-AET<<

mmexport1621241704608.jpg

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久av二区| 午夜伦理片一区| 亚洲无人区一区| 亚洲日本中文字幕区| 好吊一区二区三区| 国产一区二区中文字幕免费看| 国产精品欧美久久| 国产精品久久久久aaaa九色| 欧美三级特黄| 欧美日韩综合网| 欧美日韩亚洲一区二区三区| 欧美激情亚洲自拍| 欧美韩国一区| 欧美护士18xxxxhd| 欧美国产一区视频在线观看| 欧美激情中文不卡| 欧美乱人伦中文字幕在线| 欧美激情一区二区| 欧美国产日产韩国视频| 欧美高清视频| 欧美日韩国产精品成人| 欧美日本一区二区三区| 欧美精品日韩精品| 欧美日韩大陆在线| 欧美性天天影院| 国产精品福利在线观看| 国产精品女人网站| 国产午夜精品久久| 狠狠久久亚洲欧美| 在线观看视频欧美| 亚洲另类在线视频| 中日韩高清电影网| 午夜日韩在线观看| 亚洲国产经典视频| 亚洲精品一区二区三区av| 一区二区av在线| 亚洲欧美第一页| 久久精品国产69国产精品亚洲| 久久久福利视频| 中文在线资源观看网站视频免费不卡 | 亚洲成色999久久网站| 国产欧美精品日韩| 国产欧美日韩亚洲精品| 国产一区二区三区免费在线观看| 国产日韩欧美a| 黄色亚洲在线| 亚洲人在线视频| 亚洲视频国产视频| 亚洲欧美日韩直播| 亚洲激情午夜| 亚洲一区二区毛片| 久久狠狠久久综合桃花| 欧美成人免费观看| 国产精品黄视频| 国产一区美女| 亚洲精品一区在线观看香蕉| 亚洲一区二区三区激情| 亚洲第一页自拍| 中文欧美日韩| 久久久激情视频| 欧美日韩成人免费| 国产亚洲欧洲997久久综合| 亚洲黄色影片| 亚洲自拍偷拍色片视频| 亚洲国产日韩综合一区| 亚洲综合欧美日韩| 免费91麻豆精品国产自产在线观看| 欧美日韩精品一区| 国产综合视频| 99精品国产99久久久久久福利| 欧美一区二区三区视频免费播放| 亚洲精品网址在线观看| 欧美一区二区三区免费在线看| 欧美18av| 国产九九精品视频| 亚洲国产欧美在线| 亚洲无线视频| 亚洲大胆av| 亚洲欧美在线免费| 欧美韩日一区| 国产综合久久| 亚洲一区二区精品| 99re热精品| 久久最新视频| 国产欧美一区二区三区另类精品 | 亚洲三级电影在线观看| 亚洲欧美日本伦理| 欧美成人四级电影| 国产精品影视天天线| 亚洲九九精品| 久久精品视频在线| 欧美亚洲一区二区三区| 欧美日韩不卡在线| **性色生活片久久毛片| 欧美一区三区二区在线观看| 亚洲男人的天堂在线aⅴ视频| 欧美电影免费观看| 国产一区二区黄| 亚洲免费在线电影| 亚洲制服少妇| 欧美日韩黄视频| 亚洲国产精品一区二区www在线| 欧美自拍偷拍午夜视频| 欧美一区日韩一区| 国产精品狠色婷| 一本色道久久88综合亚洲精品ⅰ| 亚洲乱码国产乱码精品精可以看| 久久伊人免费视频| 国产一区二区日韩精品欧美精品| 亚洲伊人第一页| 亚洲在线一区二区| 国产精品v日韩精品| 亚洲毛片在线观看.| 日韩一区二区电影网| 欧美大片免费| 亚洲国产日本| 亚洲欧洲精品一区二区三区| 久久综合99re88久久爱| 国语精品一区| 亚洲高清视频在线观看| 久久久免费精品视频| 国产亚洲一区二区在线观看| 香蕉乱码成人久久天堂爱免费| 香蕉久久a毛片| 国产精品视频网| 亚洲尤物在线| 欧美在线观看一区| 国产色视频一区| 性欧美暴力猛交69hd| 久久成人在线| 国外成人在线| 亚洲国产欧美一区二区三区久久 | 亚洲一区二区三区久久| 欧美性事免费在线观看| 亚洲网站在线播放| 欧美一区二区三区日韩视频| 国产日韩高清一区二区三区在线| 午夜一区在线| 久久久久久尹人网香蕉| 合欧美一区二区三区| 91久久国产综合久久| 欧美丰满高潮xxxx喷水动漫| 亚洲精品在线电影| 亚洲一本视频| 国产日韩欧美在线一区| 亚洲大胆av| 欧美日本国产精品| 在线视频欧美一区| 欧美一级二区| 一区二区亚洲精品国产| 日韩一级黄色大片| 国产精品videossex久久发布| 亚洲男人的天堂在线aⅴ视频| 欧美在线高清| 亚洲高清一区二| 亚洲天堂av图片| 国产麻豆精品久久一二三| 久久成人精品无人区| 欧美激情女人20p| 一区二区三区四区在线| 欧美在线视频免费观看| 在线播放精品| 在线视频亚洲一区| 国产精品一区二区欧美| 亚洲国产天堂网精品网站| 欧美精品大片| 亚洲欧美日产图| 免费视频亚洲| 一区二区激情视频| 久久久久高清| 日韩一二三在线视频播| 久久精品国产成人| 亚洲国内自拍| 性欧美xxxx视频在线观看| 在线观看一区二区精品视频| 亚洲一区二区三区欧美| 国精产品99永久一区一区| 夜夜爽av福利精品导航| 国产精品综合网站| 亚洲精品国精品久久99热| 国产精品手机在线| 亚洲欧洲精品一区| 国产精品一卡| 日韩亚洲视频在线| 国产日韩精品久久| 妖精视频成人观看www| 国产欧美亚洲日本| 一区二区三区免费网站| 韩国一区二区三区美女美女秀| a91a精品视频在线观看| 韩国在线一区| 亚洲一区免费看| 亚洲国产精品高清久久久| 欧美一区二区国产| 99精品视频免费全部在线| 久久综合久久综合这里只有精品 | 久久久免费精品| 亚洲另类自拍| 久久综合久久88| 亚洲女同在线|