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

📄 main.lst

📁 单片机数据通讯典型应用(光盘内容)
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V9.00   MAIN                                                                  05/16/2011 22:31:41 PAGE 5   

 241          *                                                                           *
 242          ****************************************************************************/
 243          
 244          void    delay_50us (uchar _50us)
 245          {
 246   1      
 247   1        RCAP2LH = RCAP2_50us;
 248   1        T2LH    = RCAP2_50us;
 249   1        ET2 = 0;      // Disable timer2 interrupt
 250   1        T2CON = 0x04; // 16-bit auto-reload, clear TF2, start timer
 251   1        
 252   1        while (_50us--)
 253   1        {
 254   2              while (!TF2);
 255   2              TF2 = FALSE;
 256   2        }
 257   1      
 258   1        TR2 = FALSE;
 259   1      
 260   1      }
 261          
 262          
 263          /****************************************************************************
 264          *                                                                           *
 265          * Function:     delay_1ms                                                   *
 266          *                                                                           *
 267          * Input:        _1ms                                                        *
 268          * Output:       -                                                           *
 269          *                                                                           *
 270          * Description:                                                              *
 271          *                                                                           *
 272          * Time delay with a resolution of 1 ms.                                     *
 273          *                                                                           *
 274          ****************************************************************************/
 275          
 276          void    delay_1ms (uchar _1ms)
 277          {
 278   1      
 279   1        RCAP2LH = RCAP2_1ms;
 280   1        T2LH    = RCAP2_1ms;
 281   1        ET2 = 0;      // Disable timer2 interrupt
 282   1        T2CON = 0x04; // 16-bit auto-reload, clear TF2, start timer
 283   1        
 284   1        while (_1ms--)
 285   1        {
 286   2              while (!TF2);
 287   2              TF2 = FALSE;
 288   2        }
 289   1        TR2 = FALSE;
 290   1      
 291   1      }
 292          
 293          
 294          /****************************************************************************
 295          *                                                                           *
 296          * Function:     delay_10ms                                                  *
 297          *                                                                           *
 298          * Input:        _10ms                                                       *
 299          * Output:       -                                                           *
 300          *                                                                           *
 301          * Description:                                                              *
 302          *                                                                           *
C51 COMPILER V9.00   MAIN                                                                  05/16/2011 22:31:41 PAGE 6   

 303          * Time delay with a resolution of 10 ms.                                    *
 304          *                                                                           *
 305          ****************************************************************************/
 306          
 307          void    delay_10ms (uint _10ms)
 308          {
 309   1      
 310   1        RCAP2LH = RCAP2_10ms;
 311   1        T2LH    = RCAP2_10ms;
 312   1        ET2 = 0;      // Disable timer2 interrupt
 313   1        T2CON = 0x04; // 16-bit auto-reload, clear TF2, start timer
 314   1        
 315   1        while (_10ms--)
 316   1        {
 317   2              while (!TF2)
 318   2              {
 319   3                if (CmdValid || CmdReceived)
 320   3                {
 321   4                      TR2 = FALSE;
 322   4                      TF2 = FALSE;
 323   4                      return;
 324   4                }
 325   3              }
 326   2              TF2 = FALSE;
 327   2        }
 328   1        TR2 = FALSE;
 329   1      
 330   1      }
 331          
 332          
 333          #ifdef NOP_DELAY
              
              /****************************************************************************
              *                                                                           *
              * Function:     delay_50us_NOP                                              *
              *                                                                           *
              * Input:        -                                                           *
              * Output:       -                                                           *
              *                                                                           *
              * Description:                                                              *
              *                                                                           *
              * Zeitverz攇erung von 50 鎠.                                                *
              *                                                                           *
              ****************************************************************************/
              
              void    delay_50us_NOP (void)
              {
                uchar i;
                
                for(i=0; i<81; i++) _nop_();  
              }
              
              #endif
 356          
 357          
 358          /****************************************************************************
 359          *                                                                           *
 360          * Function:     delay_8us_NOP                                               *
 361          *                                                                           *
 362          * Input:        -                                                           *
 363          * Output:       -                                                           *
 364          *                                                                           *
C51 COMPILER V9.00   MAIN                                                                  05/16/2011 22:31:41 PAGE 7   

 365          * Description:                                                              *
 366          *                                                                           *
 367          *                                                                           *
 368          ****************************************************************************/
 369          
 370          void    delay_8us_NOP (void)
 371          {
 372   1        uchar i;
 373   1        
 374   1        for(i=0; i<14; i++) _nop_();  
 375   1      }
 376          
 377          
 378          #pragma aregs
 379          
 380          
 381          /****************************************************************************
 382          *                                                                           *
 383          * Function:     xtoa_h                                                      *
 384          *                                                                           *
 385          * Input:        _byte                                                       *
 386          * Output:       ASCII High-Nibble                                           *
 387          *                                                                           *
 388          * Description:                                                              *
 389          *                                                                           *
 390          * Wandelt das High-Nibble des 乥ergebenen Bytes in ein ASCII-Zeichen um.    *
 391          *                                                                           *
 392          ****************************************************************************/
 393          
 394          uchar   xtoa_h (uchar _byte)
 395          {
 396   1        uchar nibble = _byte >> 4;
 397   1      
 398   1        return ((nibble > 9)? nibble + 'A' - 10 : nibble + '0');
 399   1      }
 400          
 401          
 402          /****************************************************************************
 403          *                                                                           *
 404          * Function:     xtoa_l                                                      *
 405          *                                                                           *
 406          * Input:        _byte                                                       *
 407          * Output:       ASCII Low-Nibble                                            *
 408          *                                                                           *
 409          * Description:                                                              *
 410          *                                                                           *
 411          * Wandelt das Low-Nibble des 乥ergebenen Bytes in ein ASCII-Zeichen um.     *
 412          *                                                                           *
 413          ****************************************************************************/
 414          
 415          uchar   xtoa_l (uchar _byte)
 416          {
 417   1        uchar nibble = _byte & 0x0F;
 418   1      
 419   1        return ((nibble > 9)? nibble + 'A' - 10 : nibble + '0');
 420   1      }
 421          
 422          
 423          /****************************************************************************
 424          *                                                                           *
 425          * Function:     isr_timer0                                                  *
 426          *                                                                           *
C51 COMPILER V9.00   MAIN                                                                  05/16/2011 22:31:41 PAGE 8   

 427          * Input:        -                                                           *
 428          * Output:       -                                                           *
 429          *                                                                           *
 430          * Description:                                                              *
 431          *                                                                           *
 432          *                                                                           *
 433          ****************************************************************************/
 434          
 435          void    isr_timer0 (void) interrupt 1 using 2
 436          {
 437   1        if (Timer0Cnt)
 438   1        {
 439   2              --Timer0Cnt;
 440   2        }
 441   1        else
 442   1        {
 443   2              STOP_T0();
 444   2      
 445   2      #ifdef AUTODELAY
 446   2              if (DelayRate < MAXDELAYRATE && CmdCnt > 0)
 447   2              {
 448   3                DelayRate++;
 449   3                DelayRateLocked = FALSE;
 450   3              }
 451   2      #endif
 452   2      
 453   2              RecvState = RECV_STX;
 454   2      
 455   2              if (!SendReady && LLfReady)
 456   2              {
 457   3                if (RepCnt < MAXREPCNT)
 458   3                {
 459   4                      RepCnt++;
 460   4                      CALL_isr_UART();
 461   4                }
 462   3                else
 463   3                {
 464   4                      RepCnt = 0;
 465   4                      Quit = FALSE;
 466   4                      SendReady = TRUE;
 467   4                }
 468   3              }
 469   2        }
 470   1      }
 471          
 472          
 473          /***************************************************************************/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    742    ----
   CONSTANT SIZE    =     99    ----
   XDATA SIZE       =     21      27
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =     36    ----
   BIT SIZE         =     12    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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