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

📄 timer.lst

📁 mtv512mg + mx88v462 液晶电视驱动C完整程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 351   3                                      else if ( IR_Snd_CNT == 16 )
 352   3                                              IR_OUT = 1;
 353   3                                      else if ( IR_Snd_CNT == 120 )
 354   3                                              IR_OUT = 0;
 355   3                                      else if ( IR_Snd_CNT == 121 )
 356   3                                              IR_OUT = 1;
 357   3                                      break;
 358   3                              case 2:                                                         // Send Code Repeat
 359   3                                      switch ( IR_Snd_CNT )                           
 360   3                                      {
 361   4                                              case 0:
 362   4                                                      IR_OUT = 0;
 363   4                                                      break;
 364   4                                              case 16:
C51 COMPILER V7.50   TIMER                                                                 12/14/2006 10:36:34 PAGE 7   

 365   4                                                      IR_OUT = 1;
 366   4                                                      break;
 367   4                                              case 20:
 368   4                                                      IR_OUT = 0;
 369   4                                                      break;
 370   4                                              case 21:
 371   4                                                      IR_OUT = 1;
 372   4                                                      break;
 373   4                                      }
 374   3                                      break;
 375   3                      }
 376   2                      IR_Snd_CNT++;
 377   2              }
 378   1              
 379   1              ETCTR &= 0x7F;  // Clr TF2
 380   1                                              // TF1 = 0;
 381   1      }
 382          
 383          void    IR_Send_Code()
 384          {
 385   1              if ( IR_SndBit_CNT == 0 )
 386   1              {
 387   2                      if ( IR_SndCode_CNT == 0 )
 388   2                      {
 389   3                              IR_Snd = IR_CusCode;
 390   3                      }
 391   2                      else if ( IR_SndCode_CNT == 8 )
 392   2                      {
 393   3                              IR_Snd = ~IR_CusCode;
 394   3                      }
 395   2                      else if ( IR_SndCode_CNT == 16 )
 396   2                      {
 397   3                              IR_Snd = IR_SndDataCode;
 398   3                      }
 399   2                      else if ( IR_SndCode_CNT == 24 )
 400   2                      {
 401   3                              IR_Snd = ~IR_SndDataCode;
 402   3                      }
 403   2                      
 404   2                      if ( IR_Snd & 0x80 )
 405   2                              IR_SndBit_CNT = 3;
 406   2                      else
 407   2                              IR_SndBit_CNT = 1;
 408   2                      
 409   2                      IR_SndCode_CNT++;
 410   2                      IR_OUT = 0;
 411   2              }
 412   1              else
 413   1              {
 414   2                      IR_SndBit_CNT --;
 415   2                      if ( IR_SndBit_CNT == 0 )
 416   2                              IR_Snd = IR_Snd<<1;
 417   2                              
 418   2                      IR_OUT = 1;
 419   2              }
 420   1      }
 421          
 422          void Int0(void) interrupt 0 using 3
 423          {
 424   1              data    bit             IR_Input;
 425   1              data    bit     IR_Valid;
 426   1              data    unsigned int    IR_Duration;
C51 COMPILER V7.50   TIMER                                                                 12/14/2006 10:36:34 PAGE 8   

 427   1      
 428   1              IR_Duration = IR_TMR;
 429   1              IR_TMR = 0;
 430   1      
 431   1              IR_Valid = 0;
 432   1      
 433   1              if ( IR_Duration >= 50 )
 434   1              {
 435   2                      IR_Rev_CNT = 0;
 436   2              }
 437   1              else if ( IR_Duration >= 6 && IR_Duration <= 13 )       // 1.125 ms
 438   1              {
 439   2                      IR_Input = 0;
 440   2                      IR_Valid = 1;
 441   2              }
 442   1              else if ( IR_Duration >= 16 && IR_Duration <= 23 )      // 0.5625 ms
 443   1              {
 444   2                      IR_Input = 1;
 445   2                      IR_Valid = 1;
 446   2              }
 447   1              
 448   1              if (IR_Valid)
 449   1              {
 450   2                      IR_Rev_CNT++;
 451   2                      IR_RevCode <<= 1;
 452   2                      IR_RevCode |= IR_Input;
 453   2      
 454   2                      switch ( IR_Rev_CNT )
 455   2                      {
 456   3                              case    8:
 457   3                                      IR_RevCusCode = IR_RevCode;
 458   3                                      break;
 459   3                              case    16:
 460   3                                      IR_RevCusCode_B = IR_RevCode;
 461   3                                      break;
 462   3                              case    24:
 463   3                                      IR_RevDataCode = IR_RevCode;
 464   3                                      break;
 465   3                              case    32:
 466   3                                      if ( IR_RevCode == (~IR_RevDataCode)  && IR_RevCusCode == IR_CusCode 
 467   3                                              && IR_RevCusCode == (~IR_RevCusCode_B) )
 468   3                                      {
 469   4                                              IR_Pressed = 1;
 470   4                                              Key = IR_Value = IR_RevDataCode;
 471   4      
 472   4                                              switch ( IR_Value )
 473   4                                              {
 474   5                                                      case N_0:
 475   5                                                              IR_NUM = 0 ;
 476   5                                                              break;
 477   5                                                      case N_1:
 478   5                                                              IR_NUM = 1 ;
 479   5                                                              break;
 480   5                                                      case N_2:
 481   5                                                              IR_NUM = 2 ;
 482   5                                                              break;
 483   5                                                      case N_3:
 484   5                                                              IR_NUM = 3 ;
 485   5                                                              break;
 486   5                                                      case N_4:
 487   5                                                              IR_NUM = 4 ;
 488   5                                                              break;
C51 COMPILER V7.50   TIMER                                                                 12/14/2006 10:36:34 PAGE 9   

 489   5                                                      case N_5:
 490   5                                                              IR_NUM = 5 ;
 491   5                                                              break;
 492   5                                                      case N_6:
 493   5                                                              IR_NUM = 6 ;
 494   5                                                              break;
 495   5                                                      case N_7:
 496   5                                                              IR_NUM = 7 ;
 497   5                                                              break;
 498   5                                                      case N_8:
 499   5                                                              IR_NUM = 8 ;
 500   5                                                              break;
 501   5                                                      case N_9:
 502   5                                                              IR_NUM = 9 ;
 503   5                                                              break;
 504   5                                                      default :
 505   5                                                              IR_NUM = 0xFF;
 506   5                                                              break;
 507   5                                              }
 508   4                                      }
 509   3                                      break;
 510   3                      }
 511   2              }
 512   1          IE0 = 0;
 513   1      }
 514          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1048    ----
   CONSTANT SIZE    =     64    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     35       2
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      4       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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