(四)51基础:8051掉电和空闲模式

释放双眼,带上耳机,听听看~!

介绍

断电和空闲模式功能用于节省微控制器的功耗。8051具有内置省电功能,在功耗主要限制的嵌入式应用中非常有用。

(四)51基础:8051掉电和空闲模式
8051功率控制逻辑

8051功率控制逻辑

8051有两种省电模式:

  • 掉电模式
  • 空闲模式

掉电和空闲模式之间的区别

如上图8051功率控制逻辑所示,有两个控制位,IDL和PD,分别用于空闲和掉电模式。

在掉电模式下,提供给系统的振荡器时钟为OFF,即CPU和外设时钟在此模式下保持无效。

在空闲模式下,只有提供给CPU的时钟才会被禁用,而外设时钟将在此模式下保持活动状态。

因此,在省电模式下节省的功率大于空闲模式。

下表显示了8051系列控制器在正常(有效),空闲和掉电模式下所需的电源电流。

(四)51基础:8051掉电和空闲模式

如上表所示,很明显,掉电模式下的功耗小于正常模式或空闲模式。

8051具有用于功率控制的功率控制寄存器。我们来看看电源控制寄存器。

PCON寄存器:电源控制寄存器

PCON(电源控制)寄存器用于强制8051微控制器进入省电模式。8051的功率控制寄存器包含两个省电模式位和一个串行波特率控制位。

(四)51基础:8051掉电和空闲模式
8051 PCON寄存器

Bit 7 – SMOD
1 = UART模式1,2和3中的波特率加倍。

0 =对波特率没有影响。

Bit 3:2 – GF1 & GF0:
这些是用户的通用位。

Bit 1 – PD:断电

1 =启用掉电模式。在此模式下,振荡器时钟关闭,CPU和外设时钟都停止。硬件复位可以取消此模式。

0 =禁用掉电模式。

Bit 0 – IDL:空闲

1 =启用空闲模式。CPU时钟关闭,而定时器,串口,中断等内部外围模块正常工作。中断和H / W复位可以取消此模式。

0 =禁用空闲模式。

让AT89C51单片机编程切换端口1的引脚0,并通过外部中断1强制单片机进入空闲(休眠)模式。我们通过外部中断0将微控制器唤醒到正常模式。

编程步骤

  1. 启用全局和外部0和外部1中断。EA = 1,EXx = 1。
  2. 选择中断类型,即选择下降沿中断,ITx = 0。
  3. 如果需要,通过IP寄存器设置中断优先级。
  4. 控制器睡眠模式也可以通过复位引脚取消。
  5. 通过PCON寄存器启用和禁用空闲(休眠)模式。

这里,在external1中断ISR中启用睡眠模式,在external0中断ISR中禁用睡眠模式。

空闲(睡眠)模式程序

/*
 * 8051_Idle_mode
 * http://www.qutaojiao.com
 */
#include <reg51.h>		/* Include x51 header file */
sbit test = P1^0;		  	 		

void delay(k)			/* mSecond Delay function for Xtal 11.0592 MHz */
{
	int i,j;
	for (i=0;i<k;i++)
		for (j=0;j<112;j++);
}

void ExtInt_Init()		/* External interrupt initialize */
{
	IT0 = 1;      		/* Interrupt0 on falling edge */
	EX0 = 1;      		/* Enable External interrupt0 */
	IT1 = 1;      		/* Interrupt1 on falling edge */
	EX1 = 1;      		/* Enable External interrupt1 */
	EA  = 1;		/* Enable global interrupt */
	IP = 0x01;		/* Set highest priority for Ext. interrupt0 */
}
											
void External0_ISR() interrupt 0 /* External int0 ISR */
{
	PCON = 0x00;		 /* Disable Idle & Power Down mode */
}

void External1_ISR() interrupt 2 /* External int1 ISR */
{
	PCON = 0x01;		 /* Enable Idle mode */
				 /* Enable Power Down mode by PCON = 0x02; */
}

void main()
{
  ExtInt_Init(); 
	while(1)		 /* Toggle P1.0 continuous */
	{
		test = 0;
		delay(30);
		test = 1;
		delay(30);
	}
	
}

 

余下程序:

掉电模式

要启用掉电模式,请设置PD位,即PCON = 0x02。另请注意,只有硬件复位才能取消此模式。

注意:根据英特尔的MCS-51系列用户手册:

“ 80C51断电退出的唯一方法是硬件复位。重置重新定义了所有SPRS,但不会更改片上RAM。“

但根据Atmel的AT89s51数据表:

“退出掉电模式可以通过硬件复位或激活已启用的外部中断(INT0或INT1)来启动。重置重新定义了SFR,但不会改变片上RAM。“

因此AT89s51控制器也可以通过复位和外部中断退出掉电模式。

本节课程序:

给TA打赏
共{{data.count}}人
人已打赏
515151-基础

(三)51基础:8051 UART

2019-3-24 9:53:00

515151-基础

(五)51基础:8051定时器

2019-3-24 17:01:16

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
'); })();