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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 紅外通信—紅外遙控器NEC解碼程序

          紅外通信—紅外遙控器NEC解碼程序

          作者: 時間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
          單片機芯片使用的stc89c52;找到要用的部分的的原理圖即可.這是一整個單片機開發(fā)板的電路圖其他的忽略.


          /**
          ***********************************************************************************************
          * @file main.c
          * @author xr
          * @date 2014年3月31日10:26:47
          * @version V1.2.3
          * @brief 紅外通信 NEC協(xié)議進行紅外遙控器解碼 顯示用戶碼和鍵碼到數(shù)碼管上
          * @note單片機STC89C52RC MCU晶振11.0592MHZ
          ***********************************************************************************************
          */

          #include

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

          //紅外輸出數(shù)據(jù)口
          sbit IRD = P3^3;//外部中斷引腳

          bit irflag = 0;
          unsigned char ircode[4];//接收解碼得到的數(shù)據(jù)

          unsigned char code LedTable[] = {
          0xC0, //"0"
          0xF9, //"1"
          0xA4, //"2"
          0xB0, //"3"
          0x99, //"4"
          0x92, //"5"
          0x82, //"6"
          0xF8, //"7"
          0x80, //"8"
          0x90, //"9"
          0x88, //"A"
          0x83, //"B"
          0xC6, //"C"
          0xA1, //"D"
          0x86, //"E"
          0x8E //"F"
          };

          unsigned char LedBuff[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};//數(shù)碼管顯示緩沖區(qū)

          unsigned char thr0, tlr0;

          void ConfigTimer0(unsigned int xms);
          void ConfigTimer1();

          void main()
          {
          ConfigTimer0(1); //定時1ms
          ConfigTimer1();

          while (1)
          {
          if (irflag)//接收到紅外數(shù)據(jù),則刷新顯示
          {
          LedBuff[5] = LedTable[ircode[0] >> 4];//取用戶碼的高4位字節(jié)
          LedBuff[4] = LedTable[ircode[0] & 0x0F];//取用戶碼的低四位字節(jié)
          LedBuff[1] = LedTable[ircode[2] >> 4];//取鍵碼的高四位
          LedBuff[0] = LedTable[ircode[2] & 0x0F];//取鍵碼的低四位
          }
          }
          }

          /**
          * @brief 定時器T0配置
          * @param 定時時間xms
          * @retval 無
          */
          void ConfigTimer0(unsigned int xms)
          {
          unsigned int tmp;
          tmp = 65536-xms*11059200/12/1000;
          thr0 = (unsigned char)(tmp >> 8);
          tlr0 = (unsigned char)(tmp & 0x00FF);
          TMOD &= 0xF0;
          TMOD |= 0x01;//T0方式1
          TH0 = thr0;
          TL0 = tlr0;
          TR0 = 1;
          EA = 1;
          ET0 = 1;
          //設(shè)置定時器T0的中斷優(yōu)先級高于外部中斷的優(yōu)先級
          //IP中斷優(yōu)先級寄存器 PT2 PS PT1 PX1 PT0 PX0
          PT0 = 1;//提高T0的優(yōu)先級,優(yōu)先進行數(shù)碼管刷新,消除數(shù)碼管顯示抖動
          }

          /**
          * @brief 數(shù)碼管刷新
          * @param 無
          * @retval 無
          */
          void refresh()
          {
          static unsigned char j = 0;

          P0 = 0xFF;//消隱
          P1 = (0x08 | j);//000 0 1 ADDR2 ADDR1 ADDR0
          P0 = LedBuff[j++];
          if (j >= 6)
          j = 0;
          }

          /**
          * @brief T0中斷服務(wù)
          * @param 無
          * @retval 無
          */
          void Timer0_ISP() interrupt 1
          {
          TH0 = thr0;
          TL0 = tlr0;
          refresh();//數(shù)碼管刷新
          }


          上一頁 1 2 下一頁

          評論


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