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

📄 ir.lst

📁 p89lpc915程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 242   3                                             
 243   3                                if(dataIR != SYSTEM_CODE)
 244   3                                      {
 245   4                   
 246   4                                              reset = 1;
 247   4                                      }
 248   3      
 249   3                              #ifdef DEBUG_PRINTF
              
                                               sys_code = dataIR&0xff;                /*jian add in 07-07-26*/
                                      
                                      #endif
 254   3                              
 255   3                                      }
 256   2      #endif  //csg
 257   2                              if (cntIRbits == 24)
 258   2                                      {
 259   3      
 260   3                                      codeIR = dataIR&0xff;// | 0x100;        /* Indicate a new code */
 261   3          
 262   3                                      ir_enable = 1;  /*jian add in 07-08-1*/
 263   3                                      
 264   3                      #ifdef IRREP
 265   3                               pre_code = codeIR;
 266   3                   #endif
 267   3                                      //ir_enable = 1;
 268   3                                      }
 269   2                              else if (cntIRbits == 32)
 270   2                                      {
 271   3      
 272   3                      #ifdef DEBUG_PRINTF
                                      
                                              ivcode = dataIR&0xff;
                                      
                              #endif 
 277   3                                      reset = 1;
 278   3                                      }
 279   2      
 280   2                      }
 281   1              #if 0
                      else if (stateIR == IR_LEADER_LOW) 
                              {
                              if ((width >= LEADER_LOW_MIN) && (width <= LEADER_LOW_MAX))
                                      {
                                      stateIR = IR_LEADER_HIGH;
                                      }
                              else
                                      reset = 1;
                              }
                      #endif
 292   1              
 293   1              else if(stateIR == IR_LEADER_LOW)
 294   1                      {
 295   2      //                      tvbox_printf("h_vaule:",temp_data ,1);
 296   2      //                      tvbox_printf("l_vaule:",temp_data1 ,1);
 297   2      
 298   2                      /* stateIR has to be equal to IR_LEADER_HIGH */
 299   2                      if ((width >= (LEADER_HIGH_MIN + LEADER_LOW_MIN)) && (width <= (LEADER_HIGH_MAX + LEADER_LOW_MAX)))
 300   2                              {
 301   3                              dataIR = cntIRbits = 0;
 302   3                              stateIR = IR_CUSTOM;
 303   3                              }
C51 COMPILER V8.08   IR                                                                    03/06/2008 13:41:14 PAGE 6   

 304   2      #ifdef IRREP
 305   2                      else if ((width >= (REPEAT_HIGH_MIN + LEADER_LOW_MIN)) && (width <= (REPEAT_HIGH_MAX + LEADER_LOW_MAX)))
 306   2                              {
 307   3                              /* if the width is 2.25 ms, it is repeat code leader */
 308   3                              stateIR = IR_REPEAT;
 309   3                            if(pre_code != _POWER_KEY)
 310   3                              {
 311   4                                      codeIR = pre_code; /* Indicate a new code */
 312   4                                      ir_enable = 1;
 313   4                                      repeat_flag =1;
 314   4                                      reset = 1;  /*jian add in 07-07-20*/
 315   4                              }
 316   3                                /*power key needn't ireep!!!*/
 317   3      
 318   3      
 319   3                              }
 320   2      #endif
 321   2                      else
 322   2                              reset = 1;
 323   2                      }
 324   1      #if 0//def IRREP
                      else if (stateIR == IR_REPEAT)
                              {
                              if ((width >= REPEAT_DATA_MIN) && (width <= REPEAT_DATA_MAX))
                                      { 
                                      /* the width is 0.56 ms */
                                      codeIR = pre_code; /* Indicate a new code */
                                      ir_enable = 1;
                                      }
                              reset = 1;
                              }
              #endif
 336   1              else
 337   1                      {
 338   2                      reset = 1;
 339   2                      }
 340   1      
 341   1              if (reset)
 342   1                      {
 343   2                      /* Reset all, start from the very beginning */
 344   2                      stateIR = IR_IDLE; 
 345   2                      }
 346   1      }
 347          
 348          #endif 
 349          
 350          void EXTIRQ_interrupt_service(void) interrupt 0 using 1
 351          {
 352   1              EA = 0;
 353   1      //      ir_core_philips();
 354   1            ir_core_nec();
 355   1              EA = 1;
 356   1      }
 357          
 358          #if 0
              void delay_889us()
              /*
               *FOR 4MHz CLOCK TO DELAY 889uS
               */
              {
                      uint i = 220;
                      while(--i);
C51 COMPILER V8.08   IR                                                                    03/06/2008 13:41:14 PAGE 7   

              }
              #endif
 368          
 369          
 370          void Nec_send_vaule(unsigned char vaule)
 371          {
 372   1      
 373   1      unsigned char j;
 374   1      
 375   1         for(j = 0; j < 8; j++)
 376   1                      {
 377   2                      delay(30);/*0.565ms    10 us*//*0.173ms*/               
 378   2                      OUTPUT_IR = 1;
 379   2                      if(vaule & 0x80)
 380   2      
 381   2                          delay(100);/*1.69ms    10 us*//*0.173ms*/    
 382   2                      
 383   2                      else 
 384   2      
 385   2                          delay(30);/*0.565ms    10 us*//*0.173ms*/                   
 386   2                      
 387   2                      OUTPUT_IR = 0;
 388   2      
 389   2                      vaule <<= 1;   /*低位开始传输*/
 390   2                       }
 391   1      
 392   1      }
 393          
 394          
 395          void send_ir(unsigned char code_value)
 396          {
 397   1      
 398   1      #if 0
                      uchar i = 0xCC,j = 0;
                      EA = 0;
              
              //      if(reversal_ir)
              //              i |= 0x20;
                      for(j = 0;j<6;j++)
                              {
                              if(i & 0x80)
                                      {
                                      OUTPUT_IR = 1;
                                      }
                              else
                                      {
                                      OUTPUT_IR = 0;
                                      }
                              delay_889us();
                              i <<= 1;
                              OUTPUT_IR = ~OUTPUT_IR;
                              delay_889us();
                              }
                      i = (uchar)(code_value);
                      for(j = 0;j<8;j++)
                              {
                              if(i & 0x80)
                                      {
                                      OUTPUT_IR = 1;
                                      }
                              else
                                      {
C51 COMPILER V8.08   IR                                                                    03/06/2008 13:41:14 PAGE 8   

                                      OUTPUT_IR = 0;
                                      }
                              delay_889us();
                              i <<= 1;
                              OUTPUT_IR = ~OUTPUT_IR;
                              delay_889us();
                              }
              //      reversal_ir = ~reversal_ir;
                      OUTPUT_IR = 1;
                      EA = 1;
                    
                  #else
 440   1                {
 441   2                  
 442   2                      EA = 0;
 443   2                   OUTPUT_IR = 0;
 444   2                      delay(520);/*9ms    10 us*//*0.173ms*/
 445   2                   OUTPUT_IR = 1;             
 446   2                      #ifdef IRREP
 447   2                    if(repeat_flag == 1)
 448   2                      {
 449   3                              delay(130);/*2.25ms    10 us*//*0.173ms*/                       
 450   3                              OUTPUT_IR = 0;
 451   3                              delay(30);/*0.565ms    10 us*//*0.173ms  */             
 452   3                              OUTPUT_IR = 1;
 453   3                              repeat_flag =0 ;        
 454   3                              EA = 1;
 455   3                              return;
 456   3                      }
 457   2                   #endif
 458   2                      delay(260);/*4.5ms    10 us*//*0.173ms*/         
 459   2                    OUTPUT_IR = 0;
 460   2      
 461   2                       Nec_send_vaule(0xff);
 462   2                       Nec_send_vaule(0x00);
 463   2                       //code_value = ~code_value;
 464   2                       Nec_send_vaule(code_value);
 465   2                       code_value = ~code_value;
 466   2                       Nec_send_vaule(code_value);
 467   2                       
 468   2                    delay(30);/*0.565ms    10 us*//*0.173ms    */             
 469   2                      OUTPUT_IR = 1;
 470   2                      delay(100);/*1.69ms    10 us  停止位!!!!*//*0.173ms*/
 471   2                      OUTPUT_IR = 0;
 472   2                     delay(30);/*0.565ms    10 us*//*0.173ms   */             
 473   2                      OUTPUT_IR = 1;
 474   2                      EA = 1;
 475   2                 }
 476   1              #endif
 477   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    531    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      7       7
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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