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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)按鍵掃描C程序

          51單片機(jī)按鍵掃描C程序

          作者: 時(shí)間:2016-11-19 來源:網(wǎng)絡(luò) 收藏
          大二上學(xué)期做過8051單片機(jī)的按鍵程序,當(dāng)時(shí)項(xiàng)目要求實(shí)現(xiàn)按鍵控制LED屏顯示并且接收GPRS傳來的數(shù)據(jù)。當(dāng)時(shí)為了節(jié)省成本,就去大西電子市場買來8*8的LED塊,然后自己一點(diǎn)一點(diǎn)的拼接成128*16的。做完之后雖然可以運(yùn)行,但是很勉強(qiáng),尤其是按鍵掃描程序沒有下面這位哥寫得簡潔縝密,所以就貼過來,以后用到的時(shí)候直接研究:
          unsignedcharkey,key_h,kpush;
          unsignedintkey_l;

          //按鍵連接到p1.0、p1.1、p1.2

          voidint_t0(void)interrupt1{
          unsignedchardd,i;
          TL0=TL0+30;TH0=0xfb;//800
          /*按鍵判別*/
          if((P1&0x7)==0x7){
          if((key_l>30)&&(key_l<800)&&(key_h>30)){//釋放按鍵,如果之前按鍵時(shí)間少于1秒,讀入鍵值
          key=kpush;
          }
          if((++key_h)>200)key_h=200;
          key_l=0;
          if(key>=0x80)key=0;//如果之前的按鍵為1秒,清除鍵值
          }else{
          kpush=P1&0x7;
          key_l++;
          if((key_l>800)&&(key_h>30)){//如果按鍵超過1秒,鍵值加0x80標(biāo)志鍵
          key=kpush|0x80;
          key_h=0;
          key_l=0;
          }
          }
          }
          voidmain(void){
          TMOD=0x1;TR0=1;ET0=1;EA=1;
          while(1){
          while(!key){}
          switch(key){
          case1:break;
          case2:break;
          }
          }
          }


          評論


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