找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 8295|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)-矩陣鍵盤掃描函數(shù) 方便大家直接調(diào)用

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:123210 發(fā)表于 2017-6-27 22:59 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
方便大家直接調(diào)用

unsigned char KeyScan(void)  //鍵盤掃描函數(shù),使用行列逐級(jí)掃描法
{
unsigned char Val;
KeyPort=0xf0;//高四位置高,低四位拉低
if(KeyPort!=0xf0)//表示有按鍵按下
   {
   DelayMs(10);  //去抖
       if(KeyPort!=0xf0)
         {          //表示有按鍵按下
           KeyPort=0xfe; //檢測(cè)第一行
              if(KeyPort!=0xfe)
                    {
                       Val=KeyPort&0xf0;
                   Val+=0x0e;
                      while(KeyPort!=0xfe);
                       DelayMs(10); //去抖
                       while(KeyPort!=0xfe);
                   return Val;
               }
       KeyPort=0xfd; //檢測(cè)第二行
              if(KeyPort!=0xfd)
                    {
                       Val=KeyPort&0xf0;
                   Val+=0x0d;
                      while(KeyPort!=0xfd);
                       DelayMs(10); //去抖
                       while(KeyPort!=0xfd);
                   return Val;
               }
           KeyPort=0xfb; //檢測(cè)第三行
              if(KeyPort!=0xfb)
                    {
                       Val=KeyPort&0xf0;
                   Val+=0x0b;
                      while(KeyPort!=0xfb);
                       DelayMs(10); //去抖
                       while(KeyPort!=0xfb);
                   return Val;
               }
           KeyPort=0xf7; //檢測(cè)第四行
              if(KeyPort!=0xf7)
                    {
                       Val=KeyPort&0xf0;
                   Val+=0x07;
                      while(KeyPort!=0xf7);
                       DelayMs(10); //去抖
                       while(KeyPort!=0xf7);
                   return Val;
               }
    }
   }
return 0xff;
}
/*------------------------------------------------
        按鍵值處理函數(shù),返回掃鍵值
------------------------------------------------*/
unsigned char KeyPro(void)
{
switch(KeyScan())
{
case 0x7e:return 0;break;//0 按下相應(yīng)的鍵顯示相對(duì)應(yīng)的碼值
case 0x7d:return 1;break;//1
case 0x7b:return 2;break;//2
case 0x77:return 3;break;//3
case 0xbe:return 4;break;//4
case 0xbd:return 5;break;//5
case 0xbb:return 6;break;//6
case 0xb7:return 7;break;//7
case 0xde:return 8;break;//8
case 0xdd:return 9;break;//9
case 0xdb:return 10;break;//a
case 0xd7:return 11;break;//b
case 0xee:return 12;break;//c
  case0xed:return 13;break;//d
case 0xeb:return 14;break;//e
case 0xe7:return 15;break;//f
default:return 0xff;break;
}
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂1 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:65651 發(fā)表于 2017-7-3 14:57 | 只看該作者
學(xué)習(xí)了,很有用。
回復(fù)

使用道具 舉報(bào)

板凳
ID:158375 發(fā)表于 2017-7-4 17:06 | 只看該作者
學(xué)習(xí) 。 學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

地板
ID:227227 發(fā)表于 2017-8-14 20:10 | 只看該作者
好貼,學(xué)習(xí)了。
回復(fù)

使用道具 舉報(bào)

5#
ID:508017 發(fā)表于 2019-5-10 23:51 | 只看該作者
很棒
,收藏起來(lái)備用了
回復(fù)

使用道具 舉報(bào)

6#
ID:369321 發(fā)表于 2019-10-4 11:20 來(lái)自觸屏版 | 只看該作者
收藏了
回復(fù)

使用道具 舉報(bào)

7#
ID:777117 發(fā)表于 2020-6-12 11:32 來(lái)自觸屏版 | 只看該作者
keport是啥
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表