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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 感覺比較好的矩陣鍵盤掃描程序

          感覺比較好的矩陣鍵盤掃描程序

          作者: 時間:2012-08-15 來源:網(wǎng)絡(luò) 收藏

          =================================================================
          uchar code key_table[]=
          {
          0x77,
          0x7b,
          0x7d,
          0xb7,
          0xbb,
          0xbd,
          0xd7,
          0xdb,
          0xdd,
          0xe7,
          0xeb,
          0xed
          };
          /*上面的數(shù)組要自己事先計算好,只要把行和列的值連接在一起就可以得到相應(yīng)按鍵對應(yīng)的值了*/
          unsigned char key_scan(void )
          {
          unsigned char i, key_code;/*變量的聲明*/
          key_port = 0x0f;/*這里的key_port是在前面宏定義的一個GPIO口,
          先將行(或者列)置位*/ 
          if(key_port != 0x0f)/*如果有按鍵按下則GPIO的初值就會變化,
          就會執(zhí)行下面的語句*/
          {
          delay(5);/*這里是的延時實現(xiàn)的是消抖,這里就不作介紹了*/
          if(key_port != 0x0f)/*確定真的有按鍵按下*/
          {
          key_code = key_port;/*把行(或者列)的值賦給key_code*/
          key_port = 0xf0;/*再把列(或者行置位)*/
          key_code |= key_port;/*把行和列的值組合起來并賦值給key_code*/
          for(i = 0; i 12; i++)/*因為每一個按鍵按下對應(yīng)的key_code只有一個,
          所以根據(jù)的按鍵個數(shù)用相應(yīng)的就可以確定到底是哪一個按鍵被按下*/
          {
          if(key_table[i] == key_code)
          {
          key = i+1;
          break;
          }
          }
          }
          }
          else key = 0;
          return key;/*返回的KEY值就是,相應(yīng)位置的按鍵了*/
          }
           

          上一頁 1 2 下一頁

          評論


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