STC12系列单片机的空闲模式、休眠模式

2019-05-20来源: eefocus关键字:STC12系列  单片机  空闲模式  休眠模式

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)模式


更详细的资料请参考STC12系列单片机数据手册第二章:


关键字:STC12系列  单片机  空闲模式  休眠模式 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic462286.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STC12系列单片机冷启动、热启动
下一篇:STC12系列单片机的位变量

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STC15系列单片机ADC函数库的20200208优化版
参考:STC官网函数库优点:初始化P1任何端口后,main函数只需要循环调用ADC_Convert()函数即可循环完成所有配置的ADC端口模拟量采集。ADC转换结果放置在Dpj_ZongCunChu[]数组中,用于其他功能取用。目的:免费共享,互相提升。先在ADC.c文件中写入以下内容:#define _ADC_C_                //预定义名称用于ADC.h中#include        "all.h"         
发表于 2020-02-11
STC15系列电压测试+LCD12864显示
最近使用15做电压测试,顺便使用下12864显示,程序如下:    #include <STC15F2K60S2.H>    #include <intrins.h>    #include <stdio.h>        #define uchar unsigned char    #define uint  unsigned int    #define ulint unsigned long int 
发表于 2020-01-29
stc15系列STC内部EEPROM的读写
STC单片机利用IAP技术实现了EEPROM功能,相比外置存储芯片而言,在操作上比较方便。 涉及STC单片机EEPROM操作的特殊功能寄存器有6个,地址分别是E2H、E3H、E4H、E5H、E6H和E7H。在STC单片机使用手册中,作者分别将它们定义为:一、IAP_DATA  (E2H)二、IAP_ADDRH  (E3H)三、IAP_ADDRL  (E4H)四、IAP_CMD  (E5H)五、IAP_TRIG  (E6H)六、IAP_CONTR  (E7H)本人认为,手册中给每个地址单元定义的英文
发表于 2020-01-18
(51基础篇) - 021 STC89C51系列单片机 内部EEPROM 驱动
; EEPROM_BASE_ADDRESS+0x0E000            //STC90C/LE514RC/RD+ 66 //STC12xx052AD系列 67 #define STC12xx052AD_EEPROM_Start_ADDRESS       EEPROM_BASE_ADDRESS+0x00000        //STC12xx052AD 68  69  70 //EEPROM SIZE 71
发表于 2020-01-07
(51基础篇) - 021 STC89C51系列单片机 内部EEPROM 驱动
STC15F2系列单片机UART1使用定时器1做波特率发生器
;        AUXR |= AUXR_T2x12        AUXR |= AUXR_S1ST2;//使用定时器2 作为串口1的波特率发生器        ES = 1;    EA = 1;        uart1_SendString("rn stc15f2k08s uart1 test rn");        while
发表于 2019-10-30
单片机PWM输出控制直流电机(89c51系列、stc12c5a60s2系列)
= 0; if(time < PWM) pwm = 1; else if(time >= PWM) pwm = 0; }}proteus仿真结果由仿真结果来看,所得波形还是不算很精准,实际应用过程中还会有很多误差,但是这样已经比延时函数产生pwm的结果可靠的多。【STC12C5A60S2系列单片机输出PWM】我在做循迹小车时使用的是stc12c5a60s2单片机。stc12c5a60s2单片机集成了两路可编程计数器阵列(PCA)模块,可用于软件定时器、外部脉冲的捕捉、高速输出以及脉宽调制(PWM)输出。使用stc12c5a60s2单片机的PCA模块可通过程序设定,使其工作于8位PWM模式,通过P13和P14输出
发表于 2019-05-22
单片机PWM输出控制直流电机(89c51系列、stc12c5a60s2系列)
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved