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

          新聞中心

          MSP430鍵盤程序

          作者: 時間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
          // 此示例程序為中斷方式,得到鍵盤的鍵值,存放在隊列keybuff[10]中

          // 此示例程序沒有顯示,
          // 鍵盤的按鍵按下引起P1口的中斷服務(wù)程序,得到鍵盤的鍵值,保存到鍵值隊列
          // 在其他的中斷服務(wù)程序中通過鍵值隊列中的數(shù)據(jù)引導(dǎo)程序的流程
          #i nclude <msp430x14x.h>
          unsigned char keybuff[10];
          unsigned char keypoint=0;
          void delay(int v)
          {
          while(v!=0)v--;
          }

          unsigned char key(void)
          {
          unsigned char x=0xff;
          P1DIR=0X0F;
          P1OUT=0X01; //掃描第一行
          if((P1IN&0X70)==0X10)
          x=0;
          else
          if((P1IN&0X70)==0X20)
          x=1;
          else
          if((P1IN&0X70)==0x40)
          x=2;
          else
          {
          P1OUT=0X2; //掃描第二行
          if((P1IN&0X70)==0X10)
          x=3;
          else
          if((P1IN&0X70)==0X20)
          x=4;
          else
          if((P1IN&0X70)==0x40)
          x=5;
          else
          {
          P1OUT=0X4; //掃描第三行
          if((P1IN&0X70)==0X10)
          x=6;
          else
          if((P1IN&0X70)==0X20)
          x=7;
          else
          if((P1IN&0X70)==0x40)
          x=8;
          else
          {P1OUT=8; //掃描第四行
          if((P1IN&0X70)==0X10)
          x=9;
          else
          if((P1IN&0X70)==0X20)
          x=10;
          else
          if((P1IN&0X70)==0x40)
          x=11;
          }
          }
          }
          return(x);
          }


          unsigned char keyj(void)
          {unsigned char x;
          P1DIR=0x0f;
          P1OUT=0x0f; //鍵盤硬件:P10--P13為行線,最上面一根為P10
          x=(P1IN&0X70); // P14--P16為列線,最左邊一根為P14,列線下拉
          return(x); // 無按鍵,返回 0?; 有按鍵返回 非0
          }


          interrupt[PORT1_VECTOR] void port1key(void)
          {
          if(keyj()!=0X00)
          {
          delay(300) ; //消抖動
          if(keyj()!=0X0)
          {
          keybuff[keypoint]=key(); //按鍵見鍵值保存到隊列
          keypoint++; //
          if(keypoint==10)
          keypoint=0;
          }
          }
          P1OUT=0X0F;
          P1IFG=0X0; //清除中斷標志
          }

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

          void main(void)
          {
          WDTCTL = WDTPW + WDTHOLD; /* // Stop WDT */
          P1DIR=0XF;
          P1OUT=0XF;
          P1IES=0X0;
          P1IE=0X70; //列線上升沿允許P1中斷
          _EINT(); /*/ Enable interrupts */

          while(1)
          {

          LPM0;
          _NOP();
          }



          關(guān)鍵詞: MSP430鍵盤程

          評論


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