单片机掉电模式和空闲模式

参考:
本文链接:https://blog.csdn.net/yueniaoshi/article/details/8808040
本文链接:https://blog.csdn.net/liangsir_l/article/details/47171193

①PCON

电源管理寄存器在特殊功能寄存器(SFR)中,字节地址为87H,不能位寻址。PCON用来管理单片机的电源部分,包括上电复位检测、掉电模式等。单片机复位时PCON全部被清0。

位序号 D7 D6 D5 D4 D3 D2 D1 D0
位符号 SMOD SMOD0 LVDF P0F GF1 GF0 PD IDL

SMOD —该位与串口通信波特率有关
SMOD=0;串口方式1,2,3时,波特率正常;
SMOD=1;串口方式1,2,3时,波特率加倍;
SMOD0,LVDF,P0F----这三位是STC单片机特有的功能,其他型号单片机未保留
GF1,GF0----两个通用工作标志位,用户可以自由使用
PD—掉电模式设定位
PD=0;单片机进入正常工作状态。
PD=1;单片机进入掉电模式,可由外部中断低电平触发或下降沿触发或者硬件复位模式唤醒
IDL----空闲模式设定位
IDL=0;单片机处于正常工作状态。
IDL=1;单片机进入空闲模式,除CPU不工作外,其余仍继续工作,在空闲模式下可由任一个中断或硬件复位唤醒

②掉电模式和空闲模式对比

1.空闲模式

空闲模式是指只有单片机不工作的状态。此时CPU无时钟停止工作,但是外部中断、外部低压检测电路、定时器、A/D转换、串行口等仍正常运行。在空闲模式下,RAM、堆栈指针(SP)、程序计数器(PC)、程序状态字(PSW)、累加器(A)等寄存器都保持原有数据。I/O口保持着空闲模式被激活前那一刻的逻辑状态。此时单片机所有的外围设备都能正常运行,当任何一个中断产生时,它们都可以将单片机唤醒,单片机被唤醒后,CPU将继续执行进入空闲模式语句的下一条指令。

怎样退出空闲模式?
a.中断:任何一个中断的产生都会引起IDL/PCON.0被硬件清除,从而退出空闲模式;
b.外部RST引脚复位:将复位脚拉高,产生复位。再将RST脚拉低,结束复位,单片机从用户程序的0000H处开始正常工作

空闲模式的目的?
让单片机进入空闲模式的目的通常是为了降低系统的功耗,举个很简单的例子,大家都用过数字万用表,在正常使用的时候表内部的单片机处于正常工作模式,当不用时,又忘记了关掉万用表的电源,大多数表在等待数分钟后,若没有人为操作,它便会自动将液晶显示关闭,以降低系统功耗,通常类似这种功能的实现就是使用了单片机的空闲模式或是掉电模式。以STC89系列单片机为例,当单片机正常工作时的功耗通常为4mA~7mA,进入空闲模式时其功耗降至2mA,当进入掉电模式时功耗可降至0.1μA以下。

2. 休眠模式(又叫掉电模式、停机模式)
当单片机进入掉电模式时,外部晶振停振、CPU、定时器、串行口全部停止工作,只有外部中断继续工作。使单片机进入休眠模式的指令将成为休眠前单片机执行的最后一条指令,进入休眠模式后,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据都将保持原值。可由外部中断低电平触发或由下降沿触发中断或者硬件复位模式换醒单片机,需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。

怎样退出休眠模式?
a.可将CPU从休眠模式唤醒的外部管脚有:外部中断0、外部中断1、定时器0、定时器1、RxD、PWM0/PCA0/P3.7、PWM2/PCA2/P2.0、PWM3/PCA3/P2.4
b.外部复位也可以将MCU从掉电模式中唤醒,复位唤醒后的MCU将从用户程序的0000H处开始正常工作。

控制单片机进入空闲模式和休眠模式的是电源管理寄存器PCON,这个寄存器的最低两位,IDL和PD这两位分别用来设定是否使单片机进入空闲模式和掉电模式。

将IDL/PCON.0置为1,则单片机就进入了空闲(IDLE)模式
将PD/PCON.1置为1,则单片机将进入掉电(Power Down)模式


你可能感兴趣的:(单片机)