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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2413|回復: 2
收起左側

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

[復制鏈接]
ID:249096 發表于 2018-3-6 18:11 | 顯示全部樓層 |閱讀模式
4*4矩陣鍵盤識別
QQ圖片20180306181012.jpg

單片機源程序如下:
  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 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久吹潮日韩动画 | 亚洲一区二区电影网 | 性一交一乱一透一a级 | 四虎永久免费黄色影片 | 成人免费在线电影 | 97影院在线午夜 | 亚洲精品aⅴ | 亚洲精品丝袜日韩 | 蜜桃视频在线观看免费视频网站www | 黄色成人av | 黄色毛片免费视频 | 成人影院一区二区三区 | 国产偷录视频叫床高潮对白 | 久久精品国产一区二区三区不卡 | 亚洲二区视频 | 青青久草 | 精品国产乱码久久久久久老虎 | 欧美日韩国产中文 | av天空| www.99热这里只有精品 | 91在线精品一区二区 | 亚洲免费在线观看 | 国产精品久久久久久久免费大片 | 欧美日韩国产一区二区 | 色久五月 | 一级日韩| 免费不卡视频 | 欧美高清视频在线观看 | 亚洲成人免费观看 | 求毛片 | 蜜臀久久99精品久久久久野外 | 在线免费观看日本 | 欧美日韩国产在线观看 | 嫩草一区二区三区 | 国产精品自拍视频 | 久久久久久久一区 | 在线观看国产三级 | 欧美片网站免费 | 日本韩国欧美在线观看 | 日韩欧美国产一区二区三区 | 91精品国产综合久久国产大片 |