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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于MSP430的紅外遙控器解碼

          基于MSP430的紅外遙控器解碼

          作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò) 收藏

          void delay_1ms(unsigned int nValue)//delay 1ms at 8M
          {
          unsigned int nCount;
          unsigned int ii;
          unsigned int jj;
          nCount = 1592;
          for(ii = nValue;ii > 0;ii--)
          {
          for(jj = nCount;jj > 0;jj--)
          _NOP();
          }
          }

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

          void delay_5us(unsigned int nValue)//delay 5us at 8M
          {
          unsigned int ii;
          for(ii = nValue;ii > 0;ii--)
          {
          _NOP();_NOP();_NOP();_NOP();
          _NOP();_NOP();_NOP();_NOP();
          _NOP();_NOP();_NOP();_NOP();
          _NOP();_NOP();_NOP();_NOP();
          }
          }


          int main( void )
          {


          WDTCTL = WDTPW + WDTHOLD; //關(guān)閉看門狗


          InitSys(); //初始化
          delay_1ms(1);
          for(;;)
          display();



          }



          /*****************************************************************************
          系統(tǒng)初始化
          ******************************************************************************/
          void InitSys()
          {
          unsigned int i;


          BCSCTL1 &= ~XT2OFF;

          do
          {
          IFG1 &= ~ OFIFG ;
          for ( i = 0 ; i < 100 ; i ++ )
          _NOP();
          }


          while ( IFG1&OFIFG != 0 );
          BCSCTL2 |= SELM_2 + SELS ;



          P1IE=BIT0; //P1.0中斷功能打開
          P1IES|=BIT0; //P1.0下降沿觸發(fā)中斷
          IR_DIR_IN; //PI.0設(shè)置為輸入

          duan_out; //P2設(shè)置為輸出

          _EINT(); //打開全局中斷控制
          }
          /*****************************************************************************
          端口1中斷函數(shù)
          ******************************************************************************/
          #pragma vector="PORT1"_VECTOR
          __interrupt void Port1()
          {
          char i,j,k,n=0;
          if((P1IFG&BIT0) == BIT0)
          {
          P1IFG &= ~BIT0; //清除P1.0中斷標(biāo)志
          P1IE &=~BIT0; //關(guān)閉P1.0中斷功能
          I1:
          for (i=0;i<4;i++)
          {
          if (IRIN==0) break;
          if (i==3) {P1IE|=BIT0;return;}
          }
          delay(20);
          if (IRIN==1) goto I1; //確認(rèn)IR信號(hào)出現(xiàn)
          while(!IRIN); //等待IR變?yōu)楦唠娖?br />
          for (j=0;j<4;j++)
          {
          for (k=0;k<8;k++)
          {
          while (IRIN) //等 IR 變?yōu)榈碗娖?br /> {delay_5us(28);}
          while (!IRIN) //等 IR 變?yōu)楦唠娖?br /> {delay_5us(28);}
          while (IRIN) //計(jì)算IR高電平時(shí)長(zhǎng)
          {
          delay_5us(28);
          n++;
          if (n>=30){P1IE|=BIT0;return;}
          }
          dat[j]=dat[j] >> 1;
          if (n>=11) {dat[j] = dat[j]|0x80;}
          n="0";
          }
          }
          if (dat[2]!=~dat[3]) {P1IE|=BIT0;return;}//此句剛開始可以屏蔽,見到效果后再嘗試打開校驗(yàn)
          dat[5]=dat[2] & 0x0F;
          dat[6]=dat[2] & 0xF0;
          dat[6]=dat[6] >> 4;
          //beep();
          P1IE|=BIT0;
          }
          }


          void display()
          {
          wei1_1;wei2_0;
          duan="seg"[dat[5]];
          delay_1ms(1);
          wei2_1;wei1_0;
          duan="seg"[dat[6]];
          delay_1ms(1);
          }


          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: MSP430紅外遙控器解

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