色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

CHANBAEK ? 來源:滑小稽筆記 ? 作者:電子技術園地 ? 2023-01-17 16:23 ? 次閱讀

12.1 項目分析

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

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

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

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

12.2 原理圖

現在我們以原理圖為例,實現如下功能,用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 仿真效果

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 原理圖
    +關注

    關注

    1299

    文章

    6347

    瀏覽量

    234436
  • 單片機
    +關注

    關注

    6039

    文章

    44574

    瀏覽量

    636323
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10877

    瀏覽量

    212129
  • 51單片機
    +關注

    關注

    274

    文章

    5704

    瀏覽量

    123779
  • 矩陣鍵盤
    +關注

    關注

    7

    文章

    206

    瀏覽量

    31498
收藏 人收藏

    評論

    相關推薦

    51單片機矩陣鍵盤控制設計

    51單片機矩陣鍵盤控制設計
    發表于 05-30 11:33

    51單片機矩陣鍵盤c語言程序

    51單片機矩陣鍵盤c語言程序,c51單片機實現矩陣
    發表于 07-21 09:20

    基于51單片機矩陣鍵盤電子密碼鎖

    基于51單片機矩陣鍵盤電子密碼鎖,使用矩陣鍵盤輸入四位密碼,有錯誤和正確提示音。
    發表于 07-21 11:23 ?117次下載

    C51單片機矩陣鍵盤設計程序的詳細資料免費下載

    本文檔的主要內容詳細介紹的是C51單片機矩陣鍵盤設計程序的詳細資料免費下載。
    發表于 11-27 16:37 ?26次下載
    C<b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>矩陣</b><b class='flag-5'>鍵盤</b>設計程序的詳細資料免費下載

    51單片機矩陣鍵盤的原理說明和實驗程序及電路圖免費下載

    本文檔的主要內容詳細介紹的是51單片機矩陣鍵盤的原理說明和實驗程序及電路圖免費下載。
    發表于 04-18 17:27 ?7次下載

    使用51單片機矩陣鍵盤模擬密碼鎖的C語言程序免費下載

    本文檔的主要內容詳細介紹的是使用51單片機矩陣鍵盤模擬密碼鎖的C語言程序免費下載。
    發表于 08-15 17:32 ?17次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>矩陣</b><b class='flag-5'>鍵盤</b>模擬密碼鎖的C語言程序免費下載

    51單片機-矩陣鍵盤模塊-長短按鍵&數碼管顯示-模塊化編程模板

    51單片機-矩陣鍵盤模塊-長短按鍵&數碼管顯示-模塊化編程模板
    發表于 11-21 09:21 ?28次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>-<b class='flag-5'>矩陣</b><b class='flag-5'>鍵盤</b>模塊-長短按鍵&數碼管顯示-模塊化編程模板

    51單片機矩陣鍵盤的原理圖

    51單片機矩陣鍵盤的原理圖
    發表于 12-30 11:32 ?69次下載

    基于AT89C51單片機矩陣鍵盤電子琴

    方案介紹AT89C51單片機矩陣鍵盤電子琴通過16個按鍵彈奏16種音調;數碼管根據按鍵顯示。
    發表于 12-15 17:08 ?11次下載

    基于89C51單片機矩陣鍵盤反轉掃描源程序

    基于89C51單片機矩陣鍵盤反轉掃描源程序
    發表于 05-15 11:02 ?3次下載

    基于89C51單片機矩陣鍵盤簡易計算器源程序

    基于89C51單片機矩陣鍵盤簡易計算器源程序
    發表于 05-15 11:01 ?30次下載

    基于89C51單片機矩陣鍵盤密碼鎖源程序

    基于89C51單片機矩陣鍵盤密碼鎖源程序
    發表于 05-15 11:01 ?4次下載

    基于89C51單片機矩陣鍵盤行列掃描源程序

    基于89C51單片機矩陣鍵盤行列掃描源程序
    發表于 05-15 11:00 ?3次下載

    基于89C51單片機矩陣鍵盤中斷掃描源程序

    基于89C51單片機矩陣鍵盤中斷掃描源程序
    發表于 05-15 11:00 ?2次下載

    51單片機矩陣鍵盤掃描程序

    51單片機矩陣鍵盤掃描程序
    發表于 05-17 17:20 ?11次下載
    主站蜘蛛池模板: 色婷婷综合激情中文在线| 亚洲蜜桃AV色情精品成人| 一本之道高清在线3线观看| 国产人妻人伦精品A区| 亚洲国产在线视频中文字| 久久棋牌评测| chinese耄耋70老太性| 丝瓜视频樱桃视频在线观看免费| 国产精品…在线观看| 伊人久久青草青青综合| 欧美性爱 先锋影音| 国产精品成人免费| 亚洲永久精品ww47app| 墨西哥美女主播| 国产成人无码精品久久久影院| 雪恋电影完整版免费观看| 九九热精品在线| 99精品在线观看| 洗濯屋H纯肉动漫在线观看| 久久精品影院永久网址| c了瑜伽老师嗷嗷叫一节课视频| 久久成人国产精品一区二区| 百性阁综合社区| 小黄飞二人转| 久久精品一区二区三区资源网| 97精品国产亚洲AV高清| 色人阁影视| 久久www免费人成_看片高清| ccc36色小姐电影| 小黄文污到你湿| 美女撒尿无遮挡免费中国| WWW国产精品内射熟女| 伊人久久精品99热超碰| 欧美卡1卡2卡三卡2021精品| 国产精品亚洲精品日韩电影| 在线观看精品视频看看播放| 日本女人bbb| 久久99精品AV99果冻传媒| 被老总按在办公桌吸奶头| 亚洲精品九色在线网站| 欧美精品成人a多人在线观看|