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

📄 ir_receiver.lst

📁 Keil 8051 C example RS232 to I2c
💻 LST
📖 第 1 页 / 共 2 页
字号:
 143          _Recall,//                      0xd8            // d827  61d6
 144          _Scan,//                        0x98            // 9867  61d6
 145          _Select,//                      0x50            // 50af  61d6
 146          _Up,//                          0x10            // 10ef  61d6
 147          _Left,//                        0x90            // 906f  61d6
 148          _Right,//                       0xd0            // d02f  61d6
 149          
 150          _Down,//                        0x30            // 30cf  61d6
 151          _Menu,//                        0xf0            // f00f  61d6
 152          _ExitRC,//                      0x70            // 708f  61d6
 153          _Res,//                         0xb0            // b04f  61d6
 154          _Input,//                       0xa0            // a05f  61d6
 155          _Mts,//                         0x60            // 609f  61d6
 156          _Mute,//                        0xe0            // e01f  61d6
 157          _Channel_Add,//         0x40            // 40bf  61d6
 158          
 159          _Channel_Sub,//         0x80            // 807f  61d6
 160          _Volume_Add,//          0xc0            // c03f  61d6
 161          _Volume_Sub,//          0x20            // 20df  61d6
 162          _Power,//                       0x00            // 00ff  61d6
 163          _Repeat,//                      0xa5            // 00ff  61d6
 164          _UnKnow //                      0xff
 165          };
 166           
 167          unsigned char DecodeIRCommand(unsigned long _RC_WordX){ 
 168   1      unsigned char _RC_DataX; 
 169   1      unsigned char _gx;
 170   1      unsigned char _hx;
 171   1      unsigned char _ix;
 172   1      unsigned int _Xadr;
 173   1                                      
 174   1                                                      _Xadr=(unsigned int)((_RC_WordX>>0x10)&0x0000ffff);
 175   1                                                      if(_Xadr==0x61d6){
 176   2                             // 0x61d6 is a ID code transmitted from remote controller          
 177   2                                                                      //      _RC_Word>>=0x10;
C51 COMPILER V7.07   IR_RECEIVER                                                           05/17/2006 03:13:56 PAGE 4   

 178   2        
 179   2                                                                              _Xadr=(unsigned int)(_RC_WordX&0x0000ffff);
 180   2                                                                              _gx=(unsigned char)(_Xadr&0x00ff);
 181   2                                                                              _Xadr>>=8;
 182   2                                                                              _hx=(unsigned char)(_Xadr&0x00ff);
 183   2      
 184   2                                                                              if((_hx|_gx)==0xff){
 185   3                                                                      for(_ix=0;_ix<0x1d;_ix++){
 186   4                                                                                                      if(_hx==_RCKeyTable[_ix]) break;
 187   4                                                                                              }                                               
 188   3                                                                                              if(_ix<0x1d){                                       
 189   4                                                                                                      _RC_DataX=_hx;
 190   4                                                                                                      //      RunRCFuncX(_RC_Data);
 191   4                                                                                               
 192   4                                                                                              }
 193   3                                                                                              else _RC_DataX=0xff;  // unknow                                                                         
 194   3                                                                              }                                                                                       
 195   2                                                      }
 196   1      
 197   1                                                      else {
 198   2                                                              if((_RC_RepeatCommand==1)&&(_RC_Data!=0xff)){ 
 199   3                                               
 200   3                                                                      _RC_DataX=0xf0;
 201   3                                                              }                                                                       
 202   2                                                      }
 203   1       
 204   1                                                                      
 205   1                      return(_RC_DataX);
 206   1      }       
 207                        
 208          
 209          unsigned char RCFuncX(unsigned char _RC_DataX){
 210   1      static unsigned char _gx;
 211   1      unsigned char _dx; 
 212   1                      switch(_RC_DataX){
 213   2                              case    _Right:
 214   2                              case    _Up: 
 215   2                              case    _1x: 
 216   2       
 217   2                                 _gx=_AddKey;
 218   2                                                         _dx=_gx;
 219   2                                                      break;
 220   2                              
 221   2                      case    _Down: 
 222   2                                               
 223   2                  case        _Left:
 224   2                              case    _2x: 
 225   2         
 226   2                                                         _gx=_SubKey; 
 227   2                                                          _dx=_gx;    
 228   2                                                      break;
 229   2                              case    _Select: 
 230   2                              case    _3x:  
 231   2                                                
 232   2                                                         _gx=_SelKey;
 233   2                                  _dx=_gx;
 234   2                                                      break;
 235   2                              case    _4x: 
 236   2                                                      break; 
 237   2                              case    _5x: 
 238   2                              case    _6x: 
 239   2                              case    _7x: 
C51 COMPILER V7.07   IR_RECEIVER                                                           05/17/2006 03:13:56 PAGE 5   

 240   2                              case    _8x: 
 241   2                              case    _9x: 
 242   2                              case    _0x: 
 243   2                              case    _Recall: 
 244   2                              case    _Scan: 
 245   2      //                      case    _Select: 
 246   2      //                      case    _Up: 
 247   2      //                      case    _Left: 
 248   2      //                      case    _Right: 
 249   2      //                      case    _Down: 
 250   2                              case    _Menu: 
 251   2                                                      break;
 252   2                              case    _ExitRC: 
 253   2                                                                
 254   2                                                                 // if(_DebugMode==0){_DebugMode=1;   ResetRemoteCTRL_Use_Timer1(); }
 255   2                                                                      //              else _DebugMode=0;      
 256   2                                                      break;
 257   2                              case    _Res:   
 258   2       
 259   2      //                                       ResetRemoteCTRL_Use_Timer1();
 260   2                                                      break;
 261   2                              case    _Repeat:
 262   2                                                       _dx=_gx;
 263   2                                                      break;
 264   2                              case    _Input: 
 265   2                              case    _Mts: 
 266   2                              case    _Mute: 
 267   2                              case    _Channel_Add: 
 268   2                              case    _Channel_Sub: 
 269   2                              case    _Volume_Add: 
 270   2                              case    _Volume_Sub: 
 271   2                              case    _Power: 
 272   2                              case    _UnKnow: 
 273   2                                                      break;
 274   2                      }
 275   1                                      return(_dx);
 276   1      } 
 277          
 278          
 279           


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    218    ----
   CONSTANT SIZE    =     30    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       5
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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