irint.lst

来自「宏芯T102芯片驱动(51单片机作主控)」· LST 代码 · 共 304 行 · 第 1/2 页

LST
304
字号
 139   1              /************************************/
 140   1              if(ir_enable==TRUE)
 141   1              {
 142   2                      TMOD=0x11;           /*counter start with INT0 and TR0*/
 143   2                      ir_code=0;              /*初始化变量*/
 144   2                      for(i=0;i<16;i++)
 145   2                      {
 146   3                              while(INT1==0);
 147   3                              TL0=0;
 148   3                              TH0=0;
 149   3                              TR0=1;
 150   3                              do
 151   3                              {
 152   4                                      count=(TL0+TH0*256);   /*count :us unit */
 153   4                                      if(Filter13(0)==1) break;
 154   4                              }while(count<=(CODE_1_TIME+DELTA));     /*INT0为高电平时计时*/
 155   3                              TR0=0;
 156   3                              ir_code<<=1;
 157   3                              if((count>(CODE_1_TIME-DELTA))&&(count<=(CODE_1_TIME+DELTA)))  /*detect 1 code  2.24mS-0.56mS=1.68mS*/
 158   3                                      ir_code++;
 159   3                              else if((count>(CODE_0_TIME-DELTA))&&(count<=(CODE_0_TIME+DELTA)));  /*detect 0 code 1.12mS-0.56mS=0.56
             -mS*/
 160   3                              else
 161   3                              {
 162   4                                      ir_enable=FALSE;
 163   4                                      TR0=1;
 164   4                                      break;           /*not suitable for address code */
 165   4                              }
 166   3                      }                /*end for*/
 167   2              }
 168   1              /************************************/
 169   1              /*   Detect 16 bit data code        */
 170   1              /************************************/
 171   1              if(ir_enable==TRUE&&ir_code==IR_SYSTEM_CODE)/**/
 172   1              {
 173   2                      TMOD=0x11;           /*counter start with INT0 and TR0*/
 174   2                      ir_code=0;
 175   2                      for(i=0;i<16;i++)
 176   2                      {
 177   3                              while(INT1==0);
C51 COMPILER V7.06   IRINT                                                                 12/28/2004 10:14:05 PAGE 4   

 178   3                              TL0=0;
 179   3                              TH0=0;
 180   3                              TR0=1;
 181   3                              do
 182   3                              {
 183   4                                      count=(TL0+TH0*256);
 184   4                                      if(Filter13(0)==1) break;
 185   4                              }while(count<=(CODE_1_TIME+DELTA));     /*INT0为高电平时计时*/
 186   3                              TR0=0;
 187   3                              //count=(TL0+TH0*256);   /*count :us unit */
 188   3                              ir_code<<=1;
 189   3                              if((count>(CODE_1_TIME-DELTA))&&(count<=(CODE_1_TIME+DELTA)))  /*detect 1 code 1.68mS*/
 190   3                                      ir_code++;
 191   3                              else if((count>(CODE_0_TIME-DELTA)&&count<=(CODE_0_TIME+DELTA)));  /*detect 0 code 0.56mS*/
 192   3                              else
 193   3                              {
 194   4                                      ir_enable=FALSE;
 195   4                                      TR0=1;
 196   4                                      break;           /*not suitable for address code */
 197   4                              }
 198   3                      }                /*end for*/
 199   2                      if(ir_enable==TRUE)
 200   2                      {
 201   3                              temp0=ir_code&0xff00;
 202   3                              temp0=~temp0;
 203   3                              temp0>>=8;
 204   3                              temp1=ir_code&0x00ff;
 205   3                              if(temp0!=temp1)
 206   3                                      ir_enable=FALSE;
 207   3                              else
 208   3                              {
 209   4                                      ir_data=(BYTE)(temp1);     /*true code effective*/
 210   4                                      ir_enable=TRUE;            /*set ir flag*/
 211   4                                      EX1=0;
 212   4                                      return;
 213   4                              }
 214   3                      }
 215   2              }
 216   1              else
 217   1              {       ir_enable=FALSE;
 218   2              EX1=1;}
 219   1      }
 220          
 221          void RemoteEvent(void)
 222          {
 223   1              bit bTemp=0;
 224   1              switch(ir_data)
 225   1              {
 226   2                      case REMOTE_KEY_POWER:  bTemp=kyPOWEREvent();   break;
 227   2                      case REMOTE_KEY_SOURCE: IRSourceSelKeyCtrl();   break;
 228   2                      case REMOTE_KEY_DISPLAY:IRNTSC_PALCtrl();break;    
 229   2                      case REMOTE_KEY_DECR:   bTemp=kyDECREASEEvent();        break;
 230   2                      case REMOTE_KEY_INCR:   bTemp=kyINCREASEEvent();        break;
 231   2      //Ruby 2004-06-07               case REMOTE_KEY_OK:             OSDExit();      break;
 232   2                      case REMOTE_KEY_MENU:   bTemp=kyMENUEvent();break;
 233   2              case REMOTE_KEY_SCALER : kySCALEREvent();   break;
 234   2      
 235   2      
 236   2                      case REMOTE_KEY_VO_INC: bTemp=IRVolUpKeyCtrl();  break;
 237   2                      case REMOTE_KEY_VO_DEC: bTemp=IRVolDownKeyCtrl(); break;        
 238   2      
 239   2                      case REMOTE_KEY_DEC_P:  bTemp=IRDownKeyCtrl();  break;
C51 COMPILER V7.06   IRINT                                                                 12/28/2004 10:14:05 PAGE 5   

 240   2                      case REMOTE_KEY_INC_P:  bTemp=IRUpKeyCtrl();break;
 241   2      
 242   2      //Ruby 2004-06-21 for display mode 
 243   2      #ifdef ROTATE
 244   2                      case REMOTE_KEY_AIRCABLE : kyDismodeEvent(); 
 245   2      #endif
 246   2      #ifdef TV
 247   2      //Kuo   case REMOTE_KEY_MUTE:   bTemp=IRSetupKeyCtrl(); break;
 248   2      //              case REMOTE_KEY_DEC_P:  bTemp=IRDownKeyCtrl();  break;
 249   2      //              case REMOTE_KEY_INC_P:  bTemp=IRUpKeyCtrl();break;
 250   2                      case REMOTE_KEY_NUM0:   IRNumKeyCtrl(0);        break;
 251   2                      case REMOTE_KEY_NUM1:   IRNumKeyCtrl(1);        break;
 252   2                      case REMOTE_KEY_NUM2:   IRNumKeyCtrl(2);        break;
 253   2                      case REMOTE_KEY_NUM3:   IRNumKeyCtrl(3);        break;
 254   2                      case REMOTE_KEY_NUM4:   IRNumKeyCtrl(4);        break;
 255   2                      case REMOTE_KEY_NUM5:   IRNumKeyCtrl(5);        break;
 256   2                      case REMOTE_KEY_NUM6:   IRNumKeyCtrl(6);        break;
 257   2                      case REMOTE_KEY_NUM7:   IRNumKeyCtrl(7);        break;
 258   2                      case REMOTE_KEY_NUM8:   IRNumKeyCtrl(8);        break;
 259   2                      case REMOTE_KEY_NUM9:   IRNumKeyCtrl(9);        break;
 260   2                      case REMOTE_KEY_NUM_Bites:      IRNumKeyCtrl(10);       break;
 261   2      #endif
 262   2              }
 263   1                      if(bTemp)
 264   1                              OSDEventMgr();
 265   1      
 266   1      
 267   1              EX1=1;
 268   1      }
 269          //#endif
 270          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    860    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       3
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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