久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5385|回復: 0
打印 上一主題 下一主題
收起左側

51單片機 4X4矩陣鍵盤(查表法)

[復制鏈接]
跳轉到指定樓層
樓主
ID:318620 發表于 2018-6-3 20:04 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/*行線接P1.0-P1.3,列線接P1.4-P1.7。


根據掃描鍵盤返回的鍵值編碼查鍵值編碼表,從而得到鍵值并送數碼管顯示。

開機時,數碼管顯示“-”。

當鍵按下時,數碼管顯示按下鍵的鍵值,蜂鳴器響一聲。*/

#include <reg52.h>
#include <intrins.h>

#define uchar unsigned char
#define uint  unsigned int

sbit BEEP = P3^6;                  //蜂鳴器驅動線

uchar  key;

unsigned char code disp_code[]={
              0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
              0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf};

unsigned char code key_code[]={
              0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,
              0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77 };

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

  延時子函數

**********************************************************/
void delayms(uint ms)
{
   uchar t;
   while(ms--)
   {
     for(t = 0; t < 120; t++);
   }
}

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

  x*0.14MS 延時子函數

**********************************************************/
void delay0(uchar x)   
{
   uchar i;
   while(x--)
   {
     for (i = 0; i<13; i++) {;}
   }
}

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

  蜂鳴器驅動子函數

**********************************************************/
void beep()
{
  uchar i;
  for (i=0;i<180;i++)
  {
    delay0(5);
    BEEP=!BEEP;       //BEEP取反
  }
   BEEP=1;            //關閉蜂鳴器
   delayms(250);      //延時     
}

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

鍵盤掃描子函數

**********************************************************/
uchar  keyscan()
{
   uchar  scan1,scan2,keycode,j;

   P1=0xf0;
   scan1=P1;
   if((scan1&0xf0)!=0xf0)           //判鍵是否按下
   {
     delayms(30);                   //延時30ms
     scan1=P1;
     if((scan1&0xf0)!=0xf0)         //二次判鍵是否按下
     {
        P1=0x0f;
        scan2=P1;
        keycode=scan1|scan2;         //組合成鍵編碼

        for(j=0;j<=15;j++)
        {
           if(keycode== key_code[j])  //查表得鍵值
           {
              key=j;
              return(key);
           }
        }
     }
   }
   else  P1=0xff;

   return (16);
}

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

  判鍵是否按下子函數

**********************************************************/
void  keydown()
{  
   P1=0xf0;
   if((P1&0xf0)!=0xf0)
   {
     keyscan();
     P0=disp_code[key];
     beep();
   }
}

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

主函數

**********************************************************/
main()
{
   P0 = 0xbf;
   P2 = 0x7f;            //數碼管顯示"-"
    P1 = 0xff;

   while(1)
   {
     keydown();     
   }
}

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

4X4矩陣鍵盤(查表法).rar

12.15 KB, 下載次數: 23, 下載積分: 黑幣 -5

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成年免费视频 | 草久久 | 久久av在线播放 | 日韩在线视频免费观看 | 久久久久久久久国产 | 亚洲v区| 国产免费一区二区三区免费视频 | 国产91久久久久蜜臀青青天草二 | 国产成人短视频在线观看 | 日韩欧美中文字幕在线观看 | 91在线区 | 成人av资源在线 | 伊人网站在线 | 国产一区二区三区在线 | 欧美性久久 | 一级国产精品一级国产精品片 | 欧美日韩综合精品 | 刘亦菲国产毛片bd | 国产一区二区麻豆 | 在线国产一区二区 | 99精品电影| 99国内精品久久久久久久 | av影片在线| 精品久久久久久亚洲综合网 | 91高清视频在线观看 | 久久午夜精品福利一区二区 | 国产精品三级 | 国产午夜一级 | 岛国av在线免费观看 | 99精品视频一区二区三区 | 九九色九九| 麻豆av网站| 精品欧美久久 | 韩日一区二区三区 | 一级做a爰片久久毛片 | 欧美中文字幕一区二区三区亚洲 | 精品一二区| 麻豆精品一区二区三区在线观看 | 日韩福利在线 | 精品国产一区二区久久 | 久久久影院 |