2.1.8 单片机的低功耗模式
单片机的2种低功耗工作方式需要通过软件设置才能实现,设置SFR中电源控制寄存器PCON的PD和IDL位。CHMOS型单片机有待机(或称空闲)方式与掉电(或称停机)方式两种低功耗方式,备用电源直接由Vcc端输入。待机方式可使功耗减小,电流一般为1.7~5 mA;掉电方式可使功耗减到最小,电流一般为5~50 μA。待机方式与掉电方式均由特殊功能寄存器PCON的有关位控制,该控制字格式如图2.11所示。
图2.11 PCON控制字格式
下面说明其中各位含义。
(1)SMOD(PCON.7):波特率加倍位。当SMOD有效时,串行口方式1、2、3的波特率提高一倍。
(2)PCON.6、PCON.5、PCON.4:保留位,无定义。
(3)GF1(PCON.3):通用标志位,供用户使用。
(4)GFO(PCON.2):通用标志位,供用户使用。
(5)PD(PCON.1):掉电方式位。当PD=1时,机器进入掉电方式。
(6)IDL(PCON.0):待机方式位。当IDL=1时,机器进入待机方式。
1.掉电方式
在执行了使PCON寄存器中PD位置“1”的指令之后,单片机进入掉电方式。待机和掉电硬件结构如图2.12所示。
图2.12 待机和掉电硬件结构
当PD=1时,片内振荡器停止工作。由于时钟被冻结,一切功能都停止,只有片内RAM内容被保持。退出掉电方式的唯一途径是硬件复位。在掉电方式下Vcc可降到2V,耗电电流仅50μA。
值得注意的是,在进入掉电方式前,Vcc不能下降;在结束掉电保护前,Vcc必须恢复到正常工作电压。复位终止了掉电方式,同时释放了振荡器。在Vcc恢复到正常水平之前,不应该复位,要保持足够长的复位时间,通常需要约10 ms的时间,才可以保证振荡器再启动并达到稳定。
退出掉电方式的唯一方法是硬件复位,硬件复位10 ms就能使单片机退出掉电方式。复位后将所有的特殊功能寄存器的内容重新初始化,但内部RAM区的数据不变。
当单片机进入掉电方式时,必须使外部器件、设备处于禁止状态。为此,在请求进入掉电方式之前,应将一些必要的数据写入到I/O端口锁存器中,以禁止外部器件或设备产生误动作。
2.待机方式
在执行了使PCON寄存器中IDL位为“1”的指令后,单片机进入待机方式。待机和掉电硬件结构如图2.12所示。
当IDL=1,=0时,封锁了时钟信号传输到CPU的与门,CPU处于冻结状态。然而,时钟信号仍然提供给中断逻辑、串行口和定时器。在待机期间CPU状态被完整保存,如程序计数器(PC)、堆栈指针(SP)、程序状态字(PSW)、累加器(A)及所有的工作寄存器等。而ALE和
变为无效状态。
通常CPU耗电量占芯片耗电量的80%~90%,所以CPU停止工作就会大大降低功耗。在待机方式下,单片机消耗的电流可由正常的24 mA降为3 mA,甚至更低。
终止待机方式的方法有以下两种。
1)中断方法
若在待机期间,任何一个允许的中断被触发,IDL都会被硬件置0,从而结束待机方式,使单片机进入中断服务程序。这时,通用标志GF0或GF1可用来指示中断是在正常操作期间还是在待机期间发生的。
2)硬件复位
由于在待机方式下时钟振荡器一直在运行,RST引脚上的有效信号只需保持两个机器周期就能使IDL置0,单片机即退出待机状态,从它停止运行的地方恢复程序的执行,即从空闲方式的启动指令之后继续执行。注意,为了防止对端口的操作出现错误,置空闲方式指令的下一条指令不应该为写端口或写外部RAM的指令。