<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          矩陣鍵盤(pán)掃描程序

          作者: 時(shí)間:2016-11-11 來(lái)源:網(wǎng)絡(luò) 收藏

          #include
          #define uint unsigned int
          #define uchar unsigned char
          uchar temp,key=16;
          sbit duan=P2^6;
          sbit wei=P2^7;
          sbit led0=P1^0;
          sbit led1=P1^1;

          本文引用地址:http://www.ex-cimer.com/article/201611/316930.htm

          uchar code table[]=
          {0x3f,0x06,0x5b,0x4f,
          0x66,0x6d,0x7d,0x07,
          0x7f,0x6f,0x77,0x7c,
          0x39,0x5e,0x79,0x71,0x00};
          void display(uchar);
          uchar scan_key();
          void delay(uchar);

          void main()
          {
          wei=1;
          P0=0x00;
          wei=0;//位全選通

          while(1)
          {
          display(scan_key());
          }
          }

          void display(uchar x)
          {

          duan=1;
          P0=table[x];
          duan=0;
          }

          uchar scan_key()
          {
          P3=0xfe; //檢測(cè)第一橫排
          temp=P3;
          while(temp!=0xfe)
          {
          delay(20);
          while(temp!=0xfe) //防抖檢測(cè)
          {
          switch(temp)
          {
          case 0xee:{key=0;led0=0;break;}
          case 0xde:{key=1;led1=0;break;}
          case 0xbe:{key=2;break;}
          case 0x7e:{key=3;break;}
          default:break;

          }
          while(temp!=0xfe) //松手檢測(cè)
          {
          temp=P3;
          }
          }

          }

          P3=0xfd; //檢測(cè)第二橫排
          temp=P3;
          while(temp!=0xfd)
          {
          delay(20);
          while(temp!=0xfd)
          {
          switch(temp)
          {
          case 0xed:{key=4;break;}
          case 0xdd:{key=5;break;}
          case 0xbd:{key=6;break;}
          case 0x7d:{key=7;break;}
          default:break;

          }
          while(temp!=0xfd)
          {
          temp=P3;
          }
          }

          }

          P3=0xfb; //檢測(cè)第三橫排
          temp=P3;
          while(temp!=0xfb)
          {
          delay(20);
          while(temp!=0xfb)
          {
          switch(temp)
          {
          case 0xeb:{key=8;break;}
          case 0xdb:{key=9;break;}
          case 0xbb:{key=10;break;}
          case 0x7b:{key=11;break;}
          default:break;

          }
          while(temp!=0xfb)
          {
          temp=P3;
          }
          }

          }

          P3=0xf7; //檢測(cè)第4橫排
          temp=P3;
          while(temp!=0xf7)
          {
          delay(20);
          while(temp!=0xf7)
          {
          switch(temp)
          {
          case 0xe7:{key=12;break;}
          case 0xd7:{key=13;break;}
          case 0xb7:{key=14;break;}
          case 0x77:{key=15;break;}
          default:break;

          }
          while(temp!=0xf7)
          {
          temp=P3;
          }
          }

          }


          return key;


          }

          void delay(uchar x)
          {
          uchar i,j;
          for(i=0;ifor(j=0;j<255;j++);
          }



          關(guān)鍵詞: 矩陣鍵盤(pán)掃描程

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();