13.2.7 低功耗仿真

51系列单片机提供了两种低功耗模式,省电保持模式和休眠运行模式。用户可以在软件中通过检查PCON.4的标志位查看电源的状态,从而根据情况将单片机设置为低功耗模式。

另外,在程序设计中,也可以通过特殊功能寄存器PCON来进行设置低功耗模式。当CPU置PCON.1位为1后,即PD=1,单片机便进入省电模式;当CPU置PCON.0位为1后,即IDL=1,单片机便进入休眠运行模式。如果同时写入PD和IDL时,PD优先,即单片机优先进入省电模式。

在KeilµVision3集成开发环境中,提供了低功耗模式的仿真支持。这里以AT89S52为例进行介绍,具体仿真操作步骤如下。

(1)按照前面的方法,新建一个工程。其中,选择Atmel公司的AT89S52单片机。

(2)选择“File”→“New”命令,新建一个程序文件,并保存为*.C文件,在其中输入如下的程序源代码。


include<reg52.H>//头文件

void main(void)//主函数

{

while(1)//主循环

{

if(P2==0x01)//判断

{

PCON=0x01;//省电模式

}

else if(P2==0x02)

{

PCON=0x02;//休眠运行模式

}

Else//其他语句

{

}

}

}


在该程序中,通过while循环对P2端口的值进行判断,来使单片机进入不同的低功耗模式。当P2端口为0x01时,置PCON=0x01,单片机进入省电模式;当P2端口为0x02时,置PCON=0x02,单片机进入休眠运行模式。

(3)选择“Debug”→“Start/Stop Debug Session”命令,进入程序仿真调试模式。

(4)选择“Peripherals”→“I/O-Ports”→“Port 2”命令,打开并行I/O端口P2的仿真界面。

(5)在P2端口的仿真界面上设置端口数据为0x02,即模拟休眠按键输入,如图13.44所示。

(6)选择“Debug”→“Run”命令,程序便开始仿真执行。此时由于P2端口为0x02,因此,程序中执行PCON=0x02语句,单片机进入休眠运行模式。在“Output Window”窗口中可以看到“Power Down Mode invoked.Continue with RESET”的输出信息,表示单片机已经进入相应的低功耗模式,如图13.45所示。

13.2.7 低功耗仿真 - 图1

图 13.44 P2端口置为0x02

13.2.7 低功耗仿真 - 图2

图 13.45 仿真输出结果

(7)当仿真完成后,选择“Debug”→“Start/Stop Debug Session”命令,可以退出程序仿真调试模式。