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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)矩陣按鍵的設(shè)計(jì)

          單片機(jī)矩陣按鍵的設(shè)計(jì)

          作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò) 收藏
          一、矩陣按鍵的原理

          矩陣鍵盤一般是4*4的按鍵組成,當(dāng)然也有其他的按鍵組合,這里我們分析4*4的按鍵,其他組合原理類似。4*4的按鍵采用的行列掃描方式,也就是先預(yù)設(shè)端口的狀態(tài),然后掃描行的狀態(tài),檢測(cè)到掃描行的狀態(tài)以后,再次檢測(cè)掃描列的狀態(tài)。

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

          下面這段程序是4*4的行列按鍵的掃描程序

          void scankey(void)//16路熱鍵掃描
          {char a=0;
          P1=0x0F;
          if(P1!=0x0F)//讀取按鍵是否按下
          {
          delay_ms(150);//延時(shí)150ms進(jìn)行消抖
          if(P1!=0x0F)//再次檢測(cè)鍵盤是否按下
          {
          switch(P1)//測(cè)試列
          {
          case(0X07):Keynum=0;break;
          case(0X0b):Keynum=1;break;
          case(0X0d): Keynum=2;break;
          case(0X0e):Keynum=3;break;
          }
          P1=0XF0;//測(cè)試行
          switch(P1)
          {
          case(0X70):Keynum=Keynum;break;
          case(0Xb0):Keynum=Keynum+4;break;
          case(0Xd0): Keynum=Keynum+8;break;
          case(0Xe0):Keynum=Keynum+12;break;
          }
          while((a<200)&&(P1!=0xF0))//檢測(cè)按鍵松手檢測(cè)
          {
          delay_ms(100);
          a++;
          }
          }
          }
          }



          評(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); })();