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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 小巧的uPD6121G紅外遙控解碼程序

          小巧的uPD6121G紅外遙控解碼程序

          作者: 時間:2016-11-25 來源:網(wǎng)絡(luò) 收藏
          網(wǎng)上有很多關(guān)于uPD6121G紅外遙控解碼程序,這些都寫的很長,看起來發(fā)暈.下載下來也多數(shù)不能用.以下程序是通過檢驗的程序,只要編譯后就可以正常使用.注意這里只是個解碼程序!如果你想增加其它功能請自己添加.此程序沒有解碼UPD6121的重復(fù)碼.

          以下程序使用:12MHZ晶振,AT89C52

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

          設(shè)計者:李國強
          晶振:12MHzAT89S51
          11年2月13號--2月24號編好

          #include
          #define uchar unsigned char
          #define uint unsigned int
          sbit in=P3^2;//紅外信號輸入
          sbit d0=P1^0;//測試用
          sbit d1=P1^1;//測試用
          uchar sj[4];//放置解碼數(shù)據(jù)
          uint jce;//計時
          bit biaoz;

          void main(void)
          {uchar iii=0;
          IT0=1;//負(fù)跳變觸發(fā)
          EX0=1;//開外部中斷0
          EA=1;//開總中斷
          biaoz=0;
          //EX0=0;
          //while(i<1250)++i;//調(diào)試用
          while(1)
          {
          while(biaoz)
          {iii=sj[2];
          //iii++;
          P1=iii;
          IE0=0;
          EX0=1;
          biaoz=0;
          }

          }

          }


          void zd() interrupt 0
          {
          uint su=0;
          uchar i=0,ii=0;
          EX0=0;
          while(!in)if(++su>850) break;//計算9ms紅外信號,進行干擾排除

          while(in)if(++su>2000) break;//計算4.5ms+9ms時間

          if((su>1120)&&(su<1130))//如沒錯誤進入信號收入
          {

          while(i<4)
          {
          while(ii<8)
          {su=0;//歸0后計時
          while(!in) if(++su>55) break;//(0.612ms)計算0和1的開始時間
          while(in) if(++su>160) break;//(1.767ms)計算時長為判斷0和1作準(zhǔn)備
          if(su<120)sj[i]>>=1;//su小于120判斷為0
          if(su>155){sj[i]>>=1;sj[i]+=0x80;}//su大于155判斷為1
          ii++;

          while(in)if(++su>250) break;//(2.757ms)判斷為1后如沒有變低電平在此等待,防死循環(huán)
          if(su==250)ii=8;//防止死循環(huán)和錯誤數(shù)據(jù)

          }
          ii=0;//為下次循環(huán)作好準(zhǔn)備
          i++;
          if(su==250)i=8;//防止死循環(huán)和錯誤數(shù)據(jù)
          }
          //P1=sj[2];//顯示解碼數(shù)據(jù)sj[2]//如果P1口有發(fā)光管就能看到解碼后的數(shù)據(jù)

          }
          if(i==4)biaoz=1;
          else
          {IE0=0;
          }EX0=1;
          }



          關(guān)鍵詞: uPD6121G紅外遙控解碼程

          評論


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