AT89S51单片机的两种低功耗节电工作模式解析

AT89S51有两种低功耗省电的工作模式:空闲模式和掉电模式,目的是尽可能降低系统的功耗。在掉电保持模式下,VCC可以由备用电源供电。图2-22显示了两种低功耗和省电模式的内部控制电路。

通过指令设置专用功能寄存器PCON的IDL位和PD位,可以实现AT89S51的两种低功耗和省电模式。特殊功能寄存器PCON的格式如图2-23所示,字节地址为87H。

PCON寄存器位定义如下:

SMOD:串行通信的波特率选择位

1:保留位,未定义。

1.GFO:用户在编程中使用的通用标志位。用户应充分利用这两个标志位。

PD:掉电保持模式控制位;如果PD=1,将进入掉电保持模式。

IDL:空闲模式控制位。如果IDL=1,它将进入空闲运行模式。

空闲状态

1.空闲模式的进入

如果指令将寄存器PCON中的IDL位设置为1,如图2-22所示,CPU的时钟信号将被关闭,MCU将进入空闲模式。此时,虽然振荡器仍在运行,但CPU进入空闲状态。此时,所有外围电路(中断系统、串口、定时器)继续工作,所有其他寄存器如SP、PC、PSW、端口A、PO ~ P3、内部RAM、SFR等保持进入空闲模式前的状态。

2.退出空闲模式

系统进入空闲模式后,有两种退出方式,一是响应中断,二是复位硬件。

在空闲模式下,如果任何允许的中断请求得到应答,片内硬件会自动将IDL位清零,从而退出空闲模式。当中断服务程序在执行后返回时,它将从设置了空闲模式指令的下一条指令(在断点处)继续执行程序。

另一种退出空闲模式的方法是硬件复位。用硬件复位退出空闲模式时,在复位逻辑电路起控制作用之前会有两个机器周期,单片机会从断点(IDL位置1的下一条指令)继续执行程序。在此期间,片内硬件会阻止CPU访问片内RAM,但不会访问外部端口(或外部RAM)。为了避免在硬件复位退出空闲模式时意外写入端口(或外部RAM ),当系统进入空闲模式时,IDL位置为1的指令后不应跟随写入端口(或外部RAM)的指令。

省电模式

1.进入掉电模式,用指令将PCON寄存器的PD位置设为l,微控制器将进入掉电模式。从图2-22可以看出,在掉电模式下,进入时钟振荡器的信号被阻断,振荡器停止工作。由于没有时钟信号,内部所有功能元件停止工作,但保留了芯片上RAM和SFR的原始内容,相关端口的输出状态值存储在相应的特殊功能寄存器中。

2.退出掉电模式有两种方法可以退出掉电模式:硬件复位和外部中断。硬件复位时,SFR应重新初始化,但片内RAM的内容不会改变。当Vcc回到正常工作电平时,只要硬件复位信号维持在lOms,MCU就可以退出掉电工作模式。

省电和空闲模式下的WDT

在掉电模式下,振荡器停止工作,这意味着WDT停止计数。用户无需在掉电模式下操作WDT。

退出掉电模式有两种方法:硬件复位和外部中断。当硬件复位以退出掉电模式时,WDT的操作与正常情况相同。当中断模式退出掉电模式时,中断输入应保持低电平足够长的时间,以稳定振荡器。当中断变为高电平时,中断被执行,寄存器WDTRST在中断服务程序中被复位。当外部中断引脚保持低电平时,为防止WDT溢出和复位,寄存器WDTRST在系统进入掉电模式前复位。

进入空闲模式前,应设置特殊功能寄存器AUXR中的WDIDLE位,以确认WDT是否继续计数。当wd idle=0时,空闲模式下的WDT继续计数。为了防止微控制器复位,用户可以设计一个定时器。该定时器使器件定期退出空闲模式,然后复位WDTRST并重新进入空闲模式。

当WDIDLE=1时,WDT在空闲模式下停止计数,只有退出空闲模式后才能恢复计数。