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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于51單片機紅外編碼解碼的C語言程序

          基于51單片機紅外編碼解碼的C語言程序

          作者: 時間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
          當學(xué)習(xí)鍵按下后,紅外接收頭便可將接受到的信號存儲到單片機中。在接受到通用遙控器發(fā)出的信號后,如果按下發(fā)射鍵,單片機將調(diào)出剛剛儲存的信息,通過紅外發(fā)射頭發(fā)射出和遙控器一樣的信號來達到控制的作用。

          #include
          #include
          #define uchar unsigned char
          #define uint unsigned int

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

          sbit studylamp=P2^7;
          sbit lamp=P2^6;
          sbit studykey=P3^2;
          sbit remotein=P1^1;
          sbit remoteout=P1^0;
          sbit txkey=P2^0;

          uint i,j,m=255,n,k,s;
          uchar idata remotedata[206];
          uint head;
          uint remdata;


          //一毫秒延時程序
          delay1ms(uint t)
          {
          for(i=0;i for(i=0;j<120;j++);
          }

          //初始化函數(shù)
          clearmen()
          {
          studylamp=1;
          lamp=1;
          remoteout=0;
          remotein=1;
          for(i=0;i<206;i++)
          {
          remotedata[i]=0x00;
          }
          IE=0x00;
          IP=0x01;
          TMOD=0x22;
          PCON=0X00;
          TH1=0xf3;
          TL1=0xf3;
          IT0=1;
          EX0=1;
          EA=1;
          }

          //鍵功能函數(shù)
          void key_tx()
          {
          if(txkey==0)
          {
          delay1ms(1);
          if(txkey==0)
          {
          while(txkey==0);
          ET1=1;TR1=1;
          for(i=head;i>0;i--);
          remoteout=0;ET1=0;TR1=0;
          n=0;
          while(1)
          {
          lamp=0;
          studylamp=1;
          if(remotedata[n]==0x00)
          {
          delay1ms(10);break;
          }
          for(i=remotedata[n];i>0;i--)
          {
          _nop_();_nop_();_nop_();_nop_();_nop_();
          _nop_();_nop_();_nop_();_nop_();
          }
          n++;
          ET1=1;TR1=1;
          for(i=remotedata[n];i>0;i--);
          remoteout=0;ET1=0;TR1=0;n++;
          }
          }
          }
          }

          //主函數(shù)
          void main()
          {
          clearmen(); //初始化
          while(1)
          {
          key_tx(); //按鍵掃描
          }
          }

          //40KHz發(fā)生器
          void time_intt1(void) interrupt 3
          {
          remoteout=~remoteout;
          }


          //外中斷0
          void intt0(void) interrupt 0
          {
          ET1=0;TR1=0;EX0=0;EA=0;
          head=0;
          while(studykey==0);
          studylamp=0;lamp=1;
          while(remotein==1);
          head=0;
          while(remotein==0)
          {
          _nop_();_nop_();_nop_();_nop_();_nop_();
          _nop_();_nop_();_nop_();_nop_();_nop_();
          _nop_();_nop_();_nop_();_nop_();_nop_();
          head++;
          }
          n=0;remdata=0x0000;
          while(1)
          {
          while(remotein==1)
          {
          _nop_();_nop_();_nop_();_nop_();_nop_();
          _nop_();_nop_();_nop_();_nop_();_nop_();
          _nop_();_nop_();_nop_();_nop_();_nop_();
          remdata++;
          }
          if(remdata>m) //高電平>5毫秒退出
          {remotedata[n]=0x00;EX0=1;EA=1;goto end;}
          remotedata[n]=remdata;n++;
          remdata=0x0000;
          while(remotein==0)
          {
          _nop_();_nop_();_nop_();_nop_();_nop_();
          _nop_();_nop_();_nop_();_nop_();_nop_();
          _nop_();_nop_();_nop_();_nop_();_nop_();
          remdata++;
          }
          remotedata[n]=remdata;
          n++;
          remdata=0x00;
          }
          end: lamp=0;studylamp=0;
          }



          評論


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