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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > HOLTEK單片機(jī)-4X4鍵盤使用軟件掃描

          HOLTEK單片機(jī)-4X4鍵盤使用軟件掃描

          作者: 時(shí)間:2016-11-29 來源:網(wǎng)絡(luò) 收藏
          功能說明:

          4X4鍵盤對(duì)應(yīng)著0-F共16個(gè)數(shù)字,按其中任一鍵即可在共陽極七段顯示器上顯示所對(duì)應(yīng)的數(shù)字。

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

          電路說明:

          電路


          HT46F49E的端口B接一個(gè)共陽極七段顯示器。

          由于使用共陽極七段數(shù)碼器,所以在端口B的每一只引腳都串上一個(gè)電阻以作為分壓之用。因?yàn)槠叨物@示器的每一段都可視為一個(gè)發(fā)光二極管,VCC足以將該段燒毀,所以在每一段應(yīng)串接一個(gè)電阻與發(fā)光二極管分壓,以保護(hù)七段顯示器。

          HT46F49E的端口A接一組4X4鍵盤。PA7-PA0送出行掃描碼,其中一只引腳送出0,其余送出1,PA7-PA4輪流送出0.如果有一個(gè)按鍵被按下,則PA3-PA0會(huì)收到那一個(gè)按鍵被按下的信息。綜合PA7-PA4的行掃描碼與PA3-PA0鍵被按下的信息即可知道是哪一個(gè)鍵被按下。

          完整程序代碼下載地址:http://www.51hei.com/f/htjp.rar

          程序:

          #include "HT46F49E.H"const unsigned char number[]={0x81,0xcf,0x92,0x86,0xcc,0xa4,0xa0,0x8f,0x80,0x84,0x88,0xe0,0xb1,0xc2,0xb0,0xb8};unsigned int key_code;void scan_keypressed(){unsigned int i,scan_code;scan_code=0xef;key_code=0;for(i=0;i<4;i++){_pa=scan_code;if(_pa0==0)key_code=i*4+1;if(_pa1==0)key_code=i*4+2;if(_pa2==0)key_code=i*4+3;if(_pa3==0)key_code=i*4+4;_rl(&scan_code);}  }void scan_keyeleased(){switch(key_code%4){case 1:while(!_pa0);break;case 2:while(!_pa1);break;case 3:while(!_pa2);break;case 0:while(!_pa3);break;  }  }void main(){unsigned int key_old,led;_pcc=0x00;_pbc=0x00;_pac=0x0f;led=0;_pb=number[0];while(1){scan_keypressed();if(key_code>0){key_old=key_code;_delay(20000);scan_keypressed();if(key_old==key_code){scan_keyeleased();led=key_code-1;_pb=number[led]; }}}}


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