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

📄 idle.lst

📁 This example project shows how to use the Idle Power-Saving Mode of the 8051Fx.
💻 LST
字号:
C51 COMPILER V6.02  IDLE                                                                   11/11/2000 16:22:42 PAGE 1   


C51 COMPILER V6.02, COMPILATION OF MODULE IDLE
OBJECT MODULE PLACED IN .\idle.OBJ
COMPILER INVOKED BY: C:\Keil2\C51\BIN\C51.EXE .\idle.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <stdio.h>
   2          #include <reg51.h>
   3          
   4          void timer_ISR (void) interrupt 1
   5          {
   6   1      /* This exits IDLE Mode */
   7   1      }
   8          
   9          void main (void)
  10          {
  11   1      unsigned char i;
  12   1      
  13   1      /*------------------------------------------------
  14   1      Setup the serial port for 1200 baud at 20MHz.
  15   1      ------------------------------------------------*/
  16   1      SCON  = 0x50;		        /* SCON: mode 1, 8-bit UART, enable rcvr      */
  17   1      TMOD |= 0x20;               /* TMOD: timer 1, mode 2, 8-bit reload        */
  18   1      TH1   = 0xD5;               /* TH1:  reload value for 1200 baud @ 20MHz   */
  19   1      TR1   = 1;                  /* TR1:  timer 1 run                          */
  20   1      TI    = 1;                  /* TI:   set TI to send first char of UART    */
  21   1      
  22   1      /*------------------------------------------------
  23   1      Setup TIMER0 to generate a regular interupt.
  24   1      ------------------------------------------------*/
  25   1      TR0 = 0;           /* Stop Timer 0 */
  26   1      
  27   1      TMOD &= ~0x0F;     /* 16-bit, no prescale mode */
  28   1      TMOD |=  0x01;
  29   1      
  30   1      TL0 = 0;           /* Set T0 */
  31   1      TH0 = 0;
  32   1      
  33   1      PT0 = 0;           /* Low Priority Interrupt */
  34   1      ET0 = 1;           /* Enable Timer0 Interrupt */
  35   1      
  36   1      TR0 = 1;           /* Start Timer 0 */
  37   1      EA = 1;            /* Enable Global Interrupts */
  38   1      
  39   1      /*------------------------------------------------
  40   1      Check to see if the Power-Off Flag is set.  If it
  41   1      is, then reset came from a power-up.  If it is not,
  42   1      then reset was to a powered-on system (after
  43   1      power-down mode was entered).
  44   1      ------------------------------------------------*/
  45   1      if (PCON & 0x10)  /* If the Power-Off Flag is set */
  46   1        {
  47   2        PCON &= ~0x10;  /* CLR the Power-Off Flag */
  48   2        printf ("Cold Start\n");
  49   2        }
  50   1      else
  51   1        {
  52   2        printf ("Warm Start\n");
  53   2        }
  54   1      
  55   1      /*------------------------------------------------
C51 COMPILER V6.02  IDLE                                                                   11/11/2000 16:22:42 PAGE 2   

  56   1      ------------------------------------------------*/
  57   1      while (1)        /* Repeat forever */
  58   1        {
  59   2        PCON |= 0x01;  /* Enter IDLE Mode -- Wake-up every timer interrupt */
  60   2        i++;
  61   2        printf ("Idle Loop Count = %bu\n", i);
  62   2        }
  63   1      }
  64          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     82    ----
   CONSTANT SIZE    =     47    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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