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

📄 rs_main.lst

📁 51单片机红外线遥控器解码源代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
 370   1              TimeSlot --;
 371   1      
 372   1              CH_Mirror = 0x55;
 373   1                      
 374   1              if( POWER_FLAG )                                                                /*电源标志,ON*/
 375   1              {
 376   2                      if( CH_Vol[0] == TimeSlot )
 377   2                              CH_Mirror &= 0xFE;
 378   2                      if( CH_Vol[1] == TimeSlot )
 379   2                              CH_Mirror &= 0xFB;
 380   2                      if( CH_Vol[2] == TimeSlot )
 381   2                              CH_Mirror &= 0xEF;
 382   2                      if( CH_Vol[3] == TimeSlot )
 383   2                              CH_Mirror &= 0xBF;
 384   2              }
 385   1      
 386   1              P1_Mirror = CH_Mirror | LED_Mirror;                     /*数据输出,0表示有效*/
 387   1      }
 388          
 389          /********************************************************************/
 390          /*                                              应用程序初始化                                          */
 391          /********************************************************************/
 392          void            APP_Initlization( void )                                /*      应用程序初始化*/
 393          {
 394   1              /*      初始化初始亮度,保持微亮*/
 395   1              CH_Vol[0] = 0;
 396   1              CH_Vol[1] = 0;
 397   1              CH_Vol[2] = 0;
 398   1              CH_Vol[3] = 0;
 399   1              Current_CH = 1;
 400   1      }
 401          
 402          /********************************************************************/
 403          /*                                              通道指示灯                                                              */
 404          /********************************************************************/
 405          void            CH_LED_Control( void )                  /*      通道指示灯*/
 406          {
 407   1              unsigned char   CH_LED_Mirror;
 408   1      
 409   1              CH_LED_Mirror = 0xAA;
 410   1              if( POWER_FLAG )
 411   1                      CH_LED_Mirror &= 0xFD;
 412   1              
 413   1              switch( Current_CH )
 414   1              {
 415   2                      case 0: CH_LED_Mirror &= 0x02;          /*      全亮*/
 416   2                                      break;
 417   2                      case 1: CH_LED_Mirror &= 0xF7;          /*      1个亮*/
 418   2                                      break;
 419   2                      case 2: CH_LED_Mirror &= 0xDF;          /*      高位亮*/
 420   2                                      break;
 421   2                      case 3: CH_LED_Mirror &= 0xF7;          /*      2个亮*/
 422   2                                      CH_LED_Mirror &= 0xDF;
 423   2                                      break;
 424   2                      case 4: CH_LED_Mirror &= 0x7F;          /*      高位亮*/
 425   2                                      break;
 426   2              }
 427   1              
CX51 COMPILER x7.00  RS_MAIN                                                               05/07/2006 20:40:55 PAGE 8   

 428   1              LED_Mirror = CH_LED_Mirror;
 429   1      }
 430          
 431          /********************************************************************/
 432          /*                                              电源控制                                                                */
 433          /********************************************************************/
 434          void            CH_Power_ON     ( void )                                /*      电源控制*/
 435          {
 436   1              POWER_FLAG = 1;                                                 /*      电源开启*/
 437   1              if(( CH_Vol[0] < VOL_MIN ) || ( CH_Vol[0] > VOL_MAX ))
 438   1                      CH_Vol[0] = VOL_INIT;
 439   1              if(( CH_Vol[1] < VOL_MIN ) || ( CH_Vol[1] > VOL_MAX ))
 440   1                      CH_Vol[1] = VOL_INIT;
 441   1              if(( CH_Vol[2] < VOL_MIN ) || ( CH_Vol[2] > VOL_MAX ))
 442   1                      CH_Vol[2] = VOL_INIT;
 443   1              if(( CH_Vol[3] < VOL_MIN ) || ( CH_Vol[3] > VOL_MAX ))
 444   1                      CH_Vol[3] = VOL_INIT;
 445   1      }
 446          
 447          /********************************************************************/
 448          /*                                              运行指示灯控制                                          */
 449          /********************************************************************/
 450          void            RUN_LED_Control( void )                 /*      运行指示灯控制*/
 451          {
 452   1              if( Timer_Flag )
 453   1              {
 454   2                      LED_FLASH_Cnt ++;
 455   2                      if( RS_High > IDLE_Cnt )                                                /*      正常运行*/
 456   2                      {
 457   3                              if( LED_FLASH_Cnt == 50 )
 458   3                              {
 459   4                                      RUN_LED = !RUN_LED;
 460   4                                      LED_FLASH_Cnt = 0;
 461   4                              }
 462   3                      }
 463   2                      else                                                                    /*      接收遥控码时间*/
 464   2                      {
 465   3                              if( LED_FLASH_Cnt == 10 )
 466   3                              {
 467   4                                      RUN_LED = !RUN_LED;
 468   4                                      LED_FLASH_Cnt = 0;
 469   4                              }
 470   3                      }                       
 471   2              }
 472   1      }
 473          
 474          /********************************************************************/
 475          /*                                              通道功率增加                                                    */
 476          /********************************************************************/
 477          unsigned char           VOL_INC( unsigned char VOL )    /*      通道功率增加*/
 478          {
 479   1              if( VOL < VOL_MAX )
 480   1                      VOL ++;
 481   1              return( VOL );
 482   1      
 483   1      }
 484          /********************************************************************/
 485          /*                                              通道功率减小                                                    */
 486          /********************************************************************/
 487          unsigned char           VOL_DEC( unsigned char VOL )    /*      通道功率减小*/
 488          {
 489   1              if( VOL > VOL_MIN )
CX51 COMPILER x7.00  RS_MAIN                                                               05/07/2006 20:40:55 PAGE 9   

 490   1                      VOL --;
 491   1              return( VOL );
 492   1      }
 493          
 494          /*      ---------------------------------------------------------------------------------------*/
 495          /*      TCON    */
 496          /*      TF1     TR1     TF0     TR0     IE1     IT1     IE0     IT0     */
 497          /*      TFx     定时器溢出标志,1=溢出*/
 498          /*      TRx     定时器启动标志,1=启动*/
 499          /*      IEx     外部中断申请标志,1=申请*/
 500          /*      ITx     外部中断中断模式,1=下跳沿,0=低电平*/
 501          
 502          /*      ---------------------------------------------------------------------------------------*/
 503          /*      TMOD    D7~D4-定时器1,  D3~D0-定时器0*/
 504          /*      GATE    C/T     M1      M0,     GATE    C/T     M1      M0      */
 505          /*      GATE    门控,1=测INTx高脉冲宽度,0=计数器,不受INTx外部输入控制*/
 506          /*      C/T             定时器模式,1=计数器模式,计数Tx脉冲个数0=定时器模式*/
 507          /*      M1 M0   定时器工作模式: 0=13位计数器,1=16位计数器,2=波特率发生器*/
 508          
 509          /*      ---------------------------------------------------------------------------------------*/
 510          /*      IE      */
 511          /*      EA      x       x       ES      ET1     TX1     ET0     EX0     */
 512          
 513          /*      ---------------------------------------------------------------------------------------*/
 514          /*      SCON    */
 515          /*      SM0     SM1     SM2     REN     TB8     RB8     TI      RI      */
 516          /*      SM0     SM1     通信模式,常用方式1*/
 517          /*      SM2             多机通信使能*/
 518          /*      REN             允许接收控制*/
 519          /*      TB8             发送第8位数据*/
 520          /*      RB8             接收第8位数据*/
 521          /*      TI              发送中断标志*/
 522          /*      RI              接收中断标志*/
 523          
 524          /*      ---------------------------------------------------------------------------------------*/
 525          /*      IP      */
 526          /*      X       X       X       PS      PT1     PX1     PT0     PX0     */
 527          
 528          /*      ---------------------------------------------------------------------------------------*/
 529          /*      PCON    */
 530          /*      SMOD    X       X       X       GF1     GF0     PD      IDL     */
 531          /*      SMOD    波特率加倍使能*/
 532          /*      GFx             通用标志寄存器*/
 533          /*      PD              掉电模式*/
 534          /*      IDL             待机模式*/
 535          
 536          /*      波特率计算      */
 537          /*      波特率=(2^SMOD/32) * (OSC/(12*(256-TH1)))       */
 538          /*      TH1=256-(2^SMOD*OSC)/(384*波特率)       */
 539          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    900    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     21    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      5       1
   EDATA SIZE       =   ----    ----
   HDATA SIZE       =   ----    ----
CX51 COMPILER x7.00  RS_MAIN                                                               05/07/2006 20:40:55 PAGE 10  

   XDATA CONST SIZE =   ----    ----
   FAR CONST SIZE   =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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