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

          新聞中心

          單片機(jī)之矩陣鍵盤

          作者: 時(shí)間:2012-09-05 來源:網(wǎng)絡(luò) 收藏

          下面是一個(gè)stc89c52下的程序,P0口接,顯示在P2口.

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

          #includereg52.h>
          #define uchar unsigned char
          #define uint unsigned int
          sbit key1=P3^2;
          sbit key2=P3^3;
          uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //定義八個(gè)燈的工作狀態(tài)。
          uchar code wep[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};
          void yanshi(uint t)
          {
          while(--t);
          }


          void main()
          {

          uchar han,lei,key;
          while(1)
          {
          P0=0xf0; //初始化為開關(guān)狀態(tài)。11110000
          han=P0; //han變量讀取P0口的值。第一次掃描。
          han=han0xf0; //對han變量與0xf0與.
          //如果結(jié)果等于P0口初值(0xf0)說明沒有鍵被按下.
          //如果結(jié)果不等于P0(0xf0)口初值,說明有鍵按下.
          if(han!=0xf0)
          yanshi(125*5); //延時(shí)消抖.
          if(han!=0xf0) //語句執(zhí)行到這里說明真的有鍵按下.
          { //例如按下S1鍵.則P0=1110 0000
          lei=P00xf0; //lei讀取P0口的值.
          lei=lei|0x0f; //lei=11101111
          P0=lei; //P0=11101111
          han=P0; //han=11101110 第二次掃描鍵盤,
          //因?yàn)檫@里按鍵S1還是閉合的狀態(tài)。
          han=han0x0f; //han=00001110
          lei=lei0xf0; //lei=11100000
          key=han+lei;
          }
          switch(key)
          {
          case 0xee: P2=tab[0]; break;
          case 0xde: P2=tab[1]; break;
          case 0xbe: P2=tab[2]; break;
          case 0x7e: P2=tab[3]; break;
          case 0xed: P2=tab[4]; break;
          case 0xdd: P2=tab[5]; break;
          case 0xbd: P2=tab[6]; break;
          case 0x7d: P2=tab[7]; break;
          case 0xeb: P2=tab[8]; break;
          case 0xdb: P2=tab[9]; break;
          case 0xbb: P2=tab[10]; break;
          case 0x7b: P2=tab[11]; break;
          case 0xe7: P2=tab[12]; break;
          case 0xd7: P2=tab[13]; break;
          case 0xb7: P2=tab[14]; break;
          case 0x77: P2=tab[15]; break;
          }
          }

          }

          DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY




          關(guān)鍵詞: 鍵盤 矩陣 單片機(jī)

          評論


          相關(guān)推薦

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