⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 irrecv.lst

📁 此代码实现功能为:在philips P89LPC935单片机上实现红外遥(对应红外发送芯片为:HT6222)控解码接收
💻 LST
📖 第 1 页 / 共 3 页
字号:
 388   1      }
 389          
 390          
 391          /*******************************************************************
 392          ** 函 数 名: convertIRRCode()
 393          ** 输    入: 
 394          **                       irrCode                        -- 红外码值
 395          ** 输    出: 
 396          **                                                              -- 键盘码值
 397          ** 描    述: 将红外码值转换成对应的键盘码值。
 398          ** 全局变量: 无
 399          ** 调用模块: 无
 400          ** 被调模块: 
 401          **                       OnIRRecv                       -- 检测到正确的红外接收码后,通过IIC发送给主控
 402          ** 作    者: 金雨和
 403          ** 创建日期: 2005年11月02日
 404          ** 修    改:
 405          **        日  期        版本      修改人     修改内容                            
 406          **         1.
 407          ********************************************************************/
 408          unsigned char convertIRRCode(unsigned char irrCode)
 409          {
 410   1              unsigned char rslt;
 411   1      
 412   1              switch(irrCode)
 413   1              {
 414   2                      case 0x1F:
 415   2                              rslt = 0x52;
 416   2                              break;
 417   2                      case 0x05:
 418   2                              rslt = 0x53;
 419   2                              break;
 420   2                      case 0x19:
 421   2                              rslt = 0x54;
 422   2                              break;
 423   2                      case 0x54:
 424   2                              rslt = 0x51;
 425   2                              break;
 426   2                      case 0x0A:
 427   2                              rslt = 0x32;
C51 COMPILER V7.09   IRRECV                                                                12/05/2005 10:23:18 PAGE 8   

 428   2                              break;
 429   2                      case 0x08:
 430   2                              rslt = 0x42;
 431   2                              break;
 432   2                      case 0x4A:
 433   2                              rslt = 0x38;
 434   2                              break;
 435   2                      case 0x44:
 436   2                              rslt = 0x34;
 437   2                              break;
 438   2                      case 0x0E:
 439   2                              rslt = 0x33;
 440   2                              break;
 441   2                      case 0x0C:
 442   2                              rslt = 0x48;
 443   2                              break;
 444   2                      case 0x4E:
 445   2                              rslt = 0x40;
 446   2                              break;
 447   2                      case 0x53:
 448   2                              rslt = 0x3B;
 449   2                              break;
 450   2                      case 0x12:
 451   2                              rslt = 0x37;
 452   2                              break;
 453   2                      case 0x10:
 454   2                              rslt = 0x3F;
 455   2                              break;
 456   2                      case 0x52:
 457   2                              rslt = 0x39;
 458   2                              break;
 459   2                      case 0x5C:
 460   2                              rslt = 0x3A;
 461   2                              break;
 462   2                      case 0x14:
 463   2                              rslt = 0x36;
 464   2                              break;
 465   2                      case 0x16:
 466   2                              rslt = 0x41;
 467   2                              break;
 468   2                      case 0x56:
 469   2                              rslt = 0x3E;
 470   2                              break;
 471   2                      case 0x57:
 472   2                              rslt = 0x56;
 473   2                              break;
 474   2                      case 0x02:
 475   2                              rslt = 0x50;
 476   2                              if(QUIETLED)
 477   2                                      QUIETLED = 0;
 478   2                              else
 479   2                                      QUIETLED = 1;
 480   2                              break;
 481   2                      case 0x59:
 482   2                              rslt = 0x49;
 483   2                              break;
 484   2                      case 0x00:
 485   2                              rslt = 0x4F;
 486   2                              if(MUTELED)
 487   2                                      MUTELED = 0;
 488   2                              else
 489   2                                      MUTELED = 1;
C51 COMPILER V7.09   IRRECV                                                                12/05/2005 10:23:18 PAGE 9   

 490   2                              break;
 491   2                      case 0x18:
 492   2                              rslt = 0x55;
 493   2                              break;
 494   2                      case 0x07:
 495   2                              rslt = 0x44;
 496   2                              break;
 497   2                      case 0x55:
 498   2                              rslt = 0x3C;
 499   2                              break;
 500   2                      case 0x15:
 501   2                              rslt = 0x43;
 502   2                              break;
 503   2                      case 0x58:
 504   2                              rslt = 0x47;
 505   2                              break;
 506   2                      case 0x43:
 507   2                              rslt = 0x57;
 508   2                              break;
 509   2                      case 0x5D:
 510   2                              rslt = 0x45;
 511   2                              break;
 512   2                      case 0x42:
 513   2                              rslt = 0x58;
 514   2                              break;  
 515   2                      case 0x4F:
 516   2                              rslt = 0x46;
 517   2                              break;  
 518   2                      default :
 519   2                              rslt = 0xFF;
 520   2                              break;
 521   2              }
 522   1              return rslt;
 523   1      }
 524          
 525          
 526          /*******************************************************************
 527          ** 函 数 名: OnIRRecv()
 528          ** 输    入: 无
 529          ** 输    出: 无
 530          ** 描    述: 检测到正确的红外接收码后,通过IIC发送给主控
 531          ** 全局变量: 
 532          **                               g_rsData               -- 红外键码
 533          **                               g_ucI2CSendBuf_Len --发送的IIC数据长度
 534          **                               g_ucI2CSendBuf -- 发送的IIC数据缓冲
 535          **                               g_ucI2CSendBuf_offset -- 发送的IIC数据缓冲偏移值
 536          ** 调用模块: 
 537          **                               SendDataToBsp  -- 通知CPU,IIC有数据发送
 538          **                               convertIRRCode -- 将红外码值转换成对应的键盘码值
 539          ** 被调模块: 
 540          **                               main                   -- 主控函数
 541          ** 作    者: 
 542          ** 创建日期: 2005年11月01日
 543          ** 修    改:
 544          **        日  期        版本      修改人     修改内容                            
 545          **         1. 
 546          ********************************************************************/
 547          void OnIRRecv()
 548          {
 549   1              unsigned char sndCode;
 550   1              if(g_rsFlag)                    //if Remote not active,waiting
 551   1              {
C51 COMPILER V7.09   IRRECV                                                                12/05/2005 10:23:18 PAGE 10  

 552   2                      //IR_LED = 1;           //turn on the led if a key coming
 553   2                      g_rsFlag= 0;            //Ready for next ir receiving
 554   2                      
 555   2                      /* 通过IIC发送数据给CPU */
 556   2                      sndCode = convertIRRCode(g_rsData);
 557   2                      if(sndCode == 0xFF)
 558   2                              return;
 559   2                      g_ucI2CSendBuf_Len = 2;
 560   2              g_ucI2CSendBuf[0] = IRR;
 561   2              g_ucI2CSendBuf[1] = sndCode;
 562   2              g_ucI2CSendBuf_offset = 0;
 563   2              IICSendIntToCPU();      //通知CPU,IIC有数据发送
 564   2              }
 565   1              else
 566   1              {
 567   2                      ;//IR_LED = 0;          //turn off the led if no key pressed
 568   2              }
 569   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    871    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      9    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      5    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -