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

📄 idle.c

📁 This example project shows how to use the Idle Power-Saving Mode of the 8051Fx.
💻 C
字号:
#include <stdio.h>
#include <reg51.h>

void timer_ISR (void) interrupt 1
{
/* This exits IDLE Mode */
}

void main (void)
{
unsigned char i;

/*------------------------------------------------
Setup the serial port for 1200 baud at 20MHz.
------------------------------------------------*/
SCON  = 0x50;		        /* SCON: mode 1, 8-bit UART, enable rcvr      */
TMOD |= 0x20;               /* TMOD: timer 1, mode 2, 8-bit reload        */
TH1   = 0xD5;               /* TH1:  reload value for 1200 baud @ 20MHz   */
TR1   = 1;                  /* TR1:  timer 1 run                          */
TI    = 1;                  /* TI:   set TI to send first char of UART    */

/*------------------------------------------------
Setup TIMER0 to generate a regular interupt.
------------------------------------------------*/
TR0 = 0;           /* Stop Timer 0 */

TMOD &= ~0x0F;     /* 16-bit, no prescale mode */
TMOD |=  0x01;

TL0 = 0;           /* Set T0 */
TH0 = 0;

PT0 = 0;           /* Low Priority Interrupt */
ET0 = 1;           /* Enable Timer0 Interrupt */

TR0 = 1;           /* Start Timer 0 */
EA = 1;            /* Enable Global Interrupts */

/*------------------------------------------------
Check to see if the Power-Off Flag is set.  If it
is, then reset came from a power-up.  If it is not,
then reset was to a powered-on system (after
power-down mode was entered).
------------------------------------------------*/
if (PCON & 0x10)  /* If the Power-Off Flag is set */
  {
  PCON &= ~0x10;  /* CLR the Power-Off Flag */
  printf ("Cold Start\n");
  }
else
  {
  printf ("Warm Start\n");
  }

/*------------------------------------------------
------------------------------------------------*/
while (1)        /* Repeat forever */
  {
  PCON |= 0x01;  /* Enter IDLE Mode -- Wake-up every timer interrupt */
  i++;
  printf ("Idle Loop Count = %bu\n", i);
  }
}

⌨️ 快捷键说明

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