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

📄 irint.lst

📁 #include "REG51.H" #include <intrins.h> #include "Common.h" //#include "Remote.h" #def
💻 LST
📖 第 1 页 / 共 2 页
字号:
 167                                  TL0=0;
 168                                  TH0=0;
 169                                  TR0=1;
 170                                  do
 171                                  {
 172                                          count=(TL0+TH0*256);   /*count :us unit */
 173                                          if(Filter13(0)==1) break;
 174                                  }while(count<=(CODE_1_TIME+DELTA));     /*INT0为高电平时计时*/
 175                                  TR0=0;
 176                                  ir_code<<=1;
 177                                  if((count>(CODE_1_TIME-DELTA))&&(count<=(CODE_1_TIME+DELTA)))  /*detect 1 code  2.24mS-0.56mS=1.68mS*/
C51 COMPILER V7.06   IRINT                                                                 03/23/2005 16:17:54 PAGE 4   

 178                                          ir_code++;
 179                                  else if((count>(CODE_0_TIME-DELTA))&&(count<=(CODE_0_TIME+DELTA)));  /*detect 0 code 1.12mS-0.56mS=0.56
             -mS*/
 180                                  else
 181                                  {
 182                                          ir_enable=FALSE;
 183                                          TR0=1;
 184                                          break;           /*not suitable for address code */
 185                                  }
 186                          }                /*end for*/
 187                  }
 188                  /************************************/
 189                  /*   Detect 16 bit data code        */
 190                  /************************************/
 191                  if(ir_enable==TRUE&&ir_code==IR_SYSTEM_CODE)/**/
 192                  {
 193                          TMOD=0x11;           /*counter start with INT0 and TR0*/
 194                          ir_code=0;
 195                          for(i=0;i<16;i++)
 196                          {
 197                                  while(INT1==0);
 198                                  TL0=0;
 199                                  TH0=0;
 200                                  TR0=1;
 201                                  do
 202                                  {
 203                                          count=(TL0+TH0*256);
 204                                          if(Filter13(0)==1) break;
 205                                  }while(count<=(CODE_1_TIME+DELTA));     /*INT0为高电平时计时*/
 206                                  TR0=0;
 207                                  //count=(TL0+TH0*256);   /*count :us unit */
 208                                  ir_code<<=1;
 209                                  if((count>(CODE_1_TIME-DELTA))&&(count<=(CODE_1_TIME+DELTA)))  /*detect 1 code 1.68mS*/
 210                                          ir_code++;
 211                                  else if((count>(CODE_0_TIME-DELTA)&&count<=(CODE_0_TIME+DELTA)));  /*detect 0 code 0.56mS*/
 212                                  else
 213                                  {
 214                                          ir_enable=FALSE;
 215                                          TR0=1;
 216                                          break;           /*not suitable for address code */
 217                                  }
 218                          }                /*end for*/
 219                          if(ir_enable==TRUE)
 220                          {
 221                                  temp0=ir_code&0xff00;
 222                                  temp0=~temp0;
 223                                  temp0>>=8;
 224                                  temp1=ir_code&0x00ff;
 225                                  if(temp0!=temp1)
 226                                          ir_enable=FALSE;
 227                                  else
 228                                  {
 229                                          ir_data=(BYTE)(temp1);     /*true code effective*/
 230                                          #ifdef REMOTE_CODE
                                              ir_data=0xff-ir_data;
                                              ir_data=((ir_data<<4)&0xf0)|((ir_data>>4)&0x0f);
                                              ir_data=((ir_data<<2)&0xcc)|((ir_data>>2)&0x33);
                                              ir_data=((ir_data<<1)&0xaa)|((ir_data>>1)&0x55);
                                              #endif
 236                                          ir_enable=TRUE;            /*set ir flag*/
 237                                          EX1=0;
 238          //                              IR_HEAD =       count1*2;
C51 COMPILER V7.06   IRINT                                                                 03/23/2005 16:17:54 PAGE 5   

 239                                          return;
 240                                  }
 241                          }
 242                  }
 243                  else
 244                  {       ir_enable=FALSE;
 245                  EX1=1;}
 246          }
 247          extern bit bFactry_Func;
 248          extern uCHAR cSTV1_ON;
 249          void RemoteEvent(void)
 250          {
 251                  bit bTemp=0;
 252                  switch(ir_data)
 253                  {
 254                          case REMOTE_KEY_POWER:  bTemp=kyPOWEREvent();   break;
 255                          case REMOTE_KEY_SOURCE: IRSourceSelKeyCtrl();   break;
 256          //              case REMOTE_KEY_DISPLAY:IRNTSC_PALCtrl();break;
 257                          case REMOTE_KEY_DECR:   bTemp=kyDECREASEEvent();        break;
 258                          case REMOTE_KEY_INCR:   bTemp=kyINCREASEEvent();        break;
 259          //Ruby 2004-06-07               case REMOTE_KEY_OK:             OSDExit();      break;
 260                          case REMOTE_KEY_MENU:   bTemp=kyMENUEvent();break;
 261                          case REMOTE_KEY_SCALER : kySCALEREvent();break;
 262          
 263                          case REMOTE_KEY_VO_INC: bTemp=IRVolDownKeyCtrl();/*     Ruby */ break;
 264                          case REMOTE_KEY_VO_DEC: bTemp=IRVolUpKeyCtrl();/*       Ruby */ break;
 265          
 266                          case REMOTE_KEY_DEC_P:  bTemp=IRDownKeyCtrl();  break;
 267                          case REMOTE_KEY_INC_P:  bTemp=IRUpKeyCtrl();break;
 268          #if 0
                              case REMOTE_KEY_NUM0:  //REMOTE_KEY_FUNC_F:
                                       bFactry_Func=1;
                                   break;
                              case REMOTE_KEY_NUM1: //REMOTE_KEY_MENU_F:
                                      if(bFactry_Func)
                                         IRFACTRY_Ctrl(0);
                                   break;
                              case REMOTE_KEY_NUM2: //REMOTE_KEY_MUTE:
                                      if(bFactry_Func)
                                         IRFACTRY_Ctrl(9);
                                   break;
                              case REMOTE_KEY_NUM3: //REMOTE_KEY_DEC_PF:
                                      IRFACTRY_Ctrl(1);
                                   break;
                              case REMOTE_KEY_NUM4:   //REMOTE_KEY_INC_PF:
                                      IRFACTRY_Ctrl(2);
                                   break;
                              case REMOTE_KEY_NUM5:   //REMOTE_KEY_DECR_F:
                                      IRFACTRY_Ctrl(3);
                                   break;
                              case REMOTE_KEY_NUM6:   //REMOTE_KEY_INCR_F:
                                      IRFACTRY_Ctrl(4);
                                  break;
                              case REMOTE_KEY_NUM7:   //REMOTE_KEY_SAVE_F:
                                   if(bFactry_Func)
                                       IRFACTRY_Ctrl(5);
                                   break;
                              case REMOTE_KEY_NUM8:   //REMOTE_KEY_SET100_F
                                   if(bFactry_Func)
                                       IRFACTRY_Ctrl(8);
                                   break;
                              case REMOTE_KEY_NUM9:   //REMOTE_KEY_IFAST_F:
C51 COMPILER V7.06   IRINT                                                                 03/23/2005 16:17:54 PAGE 6   

                                      IRFACTRY_Ctrl(6);
                                   break;
                              case REMOTE_KEY_NUM_Bites:  //REMOTE_KEY_DFAST_F:
                                       IRFACTRY_Ctrl(7);
                                   break;
                              //case REMOTE_KEY_NUM0: if(bFactry_Func)IRFACTRY_Ctrl(8);break;
              #endif
 308          //Ruby 2004-06-21 for display mode
 309          #ifdef ROTATE
                              case REMOTE_KEY_AIRCABLE : kyDismodeEvent(); break;
              #endif
 312          /*#ifdef TV
 313          //Kuo   case REMOTE_KEY_MUTE:   bTemp=IRSetupKeyCtrl(); break;
 314          //              case REMOTE_KEY_DEC_P:  bTemp=IRDownKeyCtrl();  break;
 315          //              case REMOTE_KEY_INC_P:  bTemp=IRUpKeyCtrl();break;
 316                          case REMOTE_KEY_NUM0:   IRNumKeyCtrl(0);        break;
 317                          case REMOTE_KEY_NUM1:   IRNumKeyCtrl(1);        break;
 318                          case REMOTE_KEY_NUM2:   IRNumKeyCtrl(2);        break;
 319                          case REMOTE_KEY_NUM3:   IRNumKeyCtrl(3);        break;
 320                          case REMOTE_KEY_NUM4:   IRNumKeyCtrl(4);        break;
 321                          case REMOTE_KEY_NUM5:   IRNumKeyCtrl(5);        break;
 322                          case REMOTE_KEY_NUM6:   IRNumKeyCtrl(6);        break;
 323                          case REMOTE_KEY_NUM7:   IRNumKeyCtrl(7);        break;
 324                          case REMOTE_KEY_NUM8:   IRNumKeyCtrl(8);        break;
 325                          case REMOTE_KEY_NUM9:   IRNumKeyCtrl(9);        break;
 326                          case REMOTE_KEY_NUM_Bites:   RNumKeyCtrl(10);   break;
 327          #endif*/
 328                  }
 329                          if(bTemp)
 330                                  OSDEventMgr();
 331          
 332          
 333                  EX1=1;
 334          }
 335          //#endif
 336          

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

⌨️ 快捷键说明

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