• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 最簡單的51單片機(jī)紅外遙控解碼程序

    最簡單的51單片機(jī)紅外遙控解碼程序

    作者: 時(shí)間:2012-03-28 來源:網(wǎng)絡(luò) 收藏

    用單片機(jī)進(jìn)行解碼,對大多數(shù)初學(xué)者來說是很麻煩的一個(gè)問題。下面介紹本人自編的解碼的C51程序,自認(rèn)為是可能是史上最簡的。此程序是針對uPD6121系列的遙控器的取碼程序,解碼值在Im[2]中,當(dāng)IrOK=1時(shí)解碼有效。

      /* */

      /* 適用uPD6121系列 */

      #include

      #define DIGPORT P2

      #define WORDPORT P0

      unsigned char code LED_num[]={0x3f,0x18,0x76,0x7c,0x59,0x6d,0x6f,0x38,0x7f,0x7d};

      #define Imax 14000 //此處為晶振為11.0592時(shí)的取值,

      #define Imin 8000 //如用其它頻率的晶振時(shí),

      #define Inum 1450 //要改變相應(yīng)的取值。

      unsigned char Im[]={0x00,0x00,0x00,0x00};

      unsigned long m,Tc;

      unsigned char i,IrOK;

      void DelayMy(unsigned int t){

      while(--t);

      }

      void Display_LED(unsigned long num)

      {

      unsigned int ii;

      unsigned int jj=0;

      unsigned long aa,bb;

      unsigned int xx[8]={0,0,0,0,0,0,0,0};

      do {

      bb=num/10;

      aa=num-bb*10;

      xx[jj]=aa;

      num=bb;jj++;

      }

      while(num>0);

      DIGPORT=0x80;

      for(ii=0;ii8;ii++) {

      WORDPORT=LED_num[xx[ii]];

      DelayMy(60);

      DIGPORT=DIGPORT>>1;

      };

      WORDPORT=0;

      }

      //外部中斷

      void intersvr1(void) interrupt 2 using 1

      {

      Tc=TH0*256+TL0; //提取中斷時(shí)間間隔時(shí)長

      TH0=0; TL0=0; //定時(shí)中斷重新置零

      if((Tc>Imin)(Tc

      if(Tc>Inum) Im[m/8]=Im[m/8]>>1|0x80; else Im[m/8]=Im[m/8]>>1; //取碼

      if(m==32) if((Im[2]|0x01)==~Im[3]) IrOK=1; else IrOK=0; //取碼完成后判斷讀碼是否正確

      m++; //準(zhǔn)備讀下一碼

      }

      /*演示主程序*/

      void

    萬能遙控器相關(guān)文章:萬能遙控器代碼


    51單片機(jī)相關(guān)文章:51單片機(jī)教程


    單片機(jī)相關(guān)文章:單片機(jī)教程


    單片機(jī)相關(guān)文章:單片機(jī)視頻教程


    單片機(jī)相關(guān)文章:單片機(jī)工作原理


    紅外遙控器相關(guān)文章:紅外遙控器原理
    晶振相關(guān)文章:晶振原理

    上一頁 1 2 下一頁

    評論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 阿拉善盟| 博野县| 含山县| 阳谷县| 厦门市| 隆安县| 中卫市| 松江区| 青田县| 津市市| 呈贡县| 景泰县| 洪雅县| 仙游县| 新竹县| 瓮安县| 太湖县| 汉中市| 阜新市| 望城县| 西昌市| 繁昌县| 缙云县| 鹤峰县| 张家港市| 东辽县| 南皮县| 屯门区| 丹巴县| 泗阳县| 齐齐哈尔市| 中超| 扬中市| 汤原县| 子长县| 桐城市| 千阳县| 梁河县| 天柱县| 安宁市| 安康市|