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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機4*4矩陣鍵盤識別源碼

[復制鏈接]
跳轉到指定樓層
樓主
4*4矩陣鍵盤識別


單片機源程序如下:
  1. #include "reg51.H"
  2. unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0x7c,0xc1,0x86,0x8d};
  3. unsigned char temp;
  4. unsigned char key;
  5. unsigned char i,j;
  6. sbit P3_4=P3^4;
  7. sbit P3_5=P3^5;
  8. sbit P3_6=P3^6;
  9. sbit P3_7=P3^7;
  10. sbit P1_0=P1^0;

  11. void main (void)
  12. {
  13.     while(1)
  14. {
  15. P3=0xff;
  16. P3_4=0;
  17. temp=P3;
  18. temp=temp & 0x0f;
  19. if (temp!=0x0f);
  20. {
  21.    for(i=50;i>0;i--)
  22.    for(j=200;j>0;j--);
  23.    temp=P3;
  24.    temp=temp&0x0f;
  25.    if (temp!=0x0f)
  26.    {
  27.      temp=P3;
  28.          temp=temp & 0x0f;
  29.          switch(temp)
  30.          {
  31.            case 0x0e:
  32.            key=7;
  33.            break;
  34.            case 0x0d:
  35.            key=8;
  36.            break;
  37.            case 0x0b:
  38.            key=9;
  39.            break;
  40.            case 0x07:
  41.            key=10;
  42.            break;
  43.          }
  44.          temp=P3;
  45.          P1_0=~P1_0;
  46.          P0=table[key];
  47.          temp=temp&0x0f;
  48.          while(temp!=0x0f)
  49.          {
  50.             temp=P3;
  51.                 temp=temp&0X0f;
  52.          }
  53.    }
  54. }

  55. P3=0xff;
  56. P3_5=0;
  57. temp=P3;
  58. temp=temp&0x0f;
  59. if(temp!=0x0f)
  60. {
  61.    for(i=50;i>0;i--)
  62.    for(j=200;j>0;j--);
  63.    temp=P3;
  64.    temp=temp&0x0f;
  65.    if(temp!=0x0f)
  66.    {
  67.       temp=P3;
  68.           temp=temp&0x0f;
  69.           switch(temp)
  70.           {
  71.              case 0x0e:
  72.                  key=4;
  73.                  break;
  74.                  case 0x0d:
  75.                  key=5;
  76.                  break;
  77.                  case 0x0b:
  78.                  key=6;
  79.                  break;
  80.                  case 0x07:
  81.                  key=11;
  82.                  break;
  83.           }
  84.           temp=P3;
  85.           P1_0=~P1_0;
  86.           P0=table[key];
  87.           temp=temp&0x0f;
  88.           while(temp!=0x0f)
  89.           {
  90.             temp=P3;
  91.             temp=temp&0x0f;
  92.           }
  93.    }
  94. }

  95. P3=0xff;
  96. P3_6=0;
  97. temp=P3;
  98. temp=temp&0x0f;
  99. if(temp!=0x0f)
  100. {
  101.    for(i=50;i>0;i--)
  102.    for(j=200;j>0;j--);
  103.    temp=P3;
  104.    temp=temp&0x0f;
  105.    if(temp!=0x0f)
  106.    {
  107.       temp=P3;
  108.           temp=temp&0x0f;
  109.           switch(temp)
  110.           {
  111.              case 0x0e:
  112.                  key=1;
  113.                  break;
  114.                  case 0x0d:
  115.                  key=2;
  116.                  break;
  117.                  case 0x0b:
  118.                  key=3;
  119.                  break;
  120.                  case 0x07:
  121.                  key=12;
  122.                  break;
  123.           }
  124.           temp=P3;
  125.           P1_0=~P1_0;
  126.           P0=table[key];
  127.           temp=temp&0x0f;
  128.           while(temp!=0x0f)
  129.           {
  130.              temp=P3;
  131.                  temp=temp&0x0f;
  132.           }
  133.    }
  134. }

  135. P3=0xff;
  136. P3_7=0;
  137. temp=P3;
  138. temp=temp&0x0f;
  139. if(temp!=0x0f)
  140. {
  141.     for(i=50;i>0;i--)
  142.         for(j=200;j>0;j--);
  143.         temp=P3;
  144.         temp=temp&0x0f;
  145.         if(temp!=0x0f)
  146.         {
  147.            temp=P3;
  148.            temp=temp&0x0f;
  149.            switch(temp)
  150.                   {
  151.                       case 0x0e:
  152.                       key=0;
  153.                       break;
  154.                       case 0x0d:
  155.                       key=13;
  156.                       break;
  157.                       case 0x0b:
  158.                   key=14;
  159.                       break;
  160.                       case 0x07:
  161.                       key=15;
  162.                       break;
  163.                   }
  164.                   temp=P3;
  165.                   P1_0=~P1_0;
  166.                   P0=table[key];
  167.                   temp=temp&0x0f;
  168.                   while(temp!=0x0f)
  169.                   {
  170.                      temp=P3;
  171.                          temp=temp&0x0f;
  172.                   }
  173.            }
  174.         }
  175.   }
  176. }
復制代碼

所有資料51hei提供下載:
程序.doc (22.5 KB, 下載次數: 13)



評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:66287 發表于 2018-3-7 10:50 | 只看該作者
這種鍵盤子程序寫的很垃圾,延時處理在實際的應用中及其誤事。建議用定時中斷消抖,讀鍵用反轉法較好!
回復

使用道具 舉報

板凳
ID:249096 發表于 2018-3-8 09:53 | 只看該作者
bhjyqjs 發表于 2018-3-7 10:50
這種鍵盤子程序寫的很垃圾,延時處理在實際的應用中及其誤事。建議用定時中斷消抖,讀鍵用反轉法較好!

   新手,菜鳥一個,見笑了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲视频在线观看免费 | 亚洲巨乳自拍在线视频 | 999国产视频 | 精品视频在线播放 | 欧美一级欧美三级在线观看 | 男人久久天堂 | 涩涩视频在线看 | 天天综合天天 | 国产一区91精品张津瑜 | 美女视频一区二区三区 | 粉色午夜视频 | 日本在线网站 | 一片毛片 | 精品伊人 | www.99re5.com| 国户精品久久久久久久久久久不卡 | 日韩免费一区 | 国产精品视频在线观看 | 国产成人精品免费视频大全最热 | 久久国产精品免费视频 | 91国产精品 | 久久精品视频亚洲 | 国产成人精品a视频一区www | 天天色影视综合 | 狠狠爱免费视频 | 51ⅴ精品国产91久久久久久 | 久久久久久av | 99re热精品视频国产免费 | 视频第一区| 欧美一级做性受免费大片免费 | 国产精品欧美一区二区三区不卡 | 久久国产精品-国产精品 | 久久久久网站 | 国产精品久久久久久久久 | 久久大陆| 国产精品a一区二区三区网址 | 精品视频在线观看 | 99亚洲精品 | 毛片一区二区 | 久久成人av电影 | 久久久久久久综合色一本 |