5--51单片机的休眠模式(又叫掉电模式、停机模式)的应用
1、个人总结单片机省电的两个模式的使用:单片机正常工作时的功耗通常是4mA~7mA,进入空闲模式是其功耗降至2mA,进入掉电模式是的功耗可降至0.1uA以下。当单片机进入空闲模式时,只有CPU处于休眠状态,其他硬件全部都处于活动状态,芯片内部程序所设计的寄存器都保持原值。当单片机进入掉电模式时,外部晶振停振,CPU,定时器、...
|
1、个人总结单片机省电的两个模式的使用: 单片机正常工作时的功耗通常是4mA~7mA,进入空闲模式是其功耗降至2mA,进入掉电模式是的功耗可降至0.1uA以下。 当单片机进入空闲模式时,只有CPU处于休眠状态,其他硬件全部都处于活动状态,芯片内部程序所设计的寄存器都保持原值。 当单片机进入掉电模式时,外部晶振停振,CPU,定时器、串行口全部停止工作,只有外部中断继续工作。同样芯片内部程序所设计的寄存器都保持原值。 值得注意的是,两者使用中断唤醒单片机时,程序从原来停止处继续运行;当使用硬件复位唤醒单片机时,程序将从头开始执行。
2、怎样退出休眠模式? 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)模式
运行效果图: 运行视频:(当数码管走到5时,就自动停止,需要外部中断0才能激活程序,数码管继续运行下去) http://v.youku.com/v_show/id_XMjA4NjM0NTky.html 【例】:开启两个外部中断,设置低电平触发中断,用定时器计数并且显示在数码管的前两位,当计到5时,使单片机进入空闲(休眠)模式,同时关闭定时器,当单片机响应外部中断后,从空闲(休眠)模式返回,同时开启定时器。
|
STC掉电换醒
/*---------------------------------------------------------------------*/
/* --- STC MCU Limited ------------------------------------------------*/
/* --- STC15F4K60S4 系列 INT0唤醒掉电模式举例--------------------------*/
/* --- Web: www.STCMCU.com --------------------------------------------*/
/*---------------------------------------------------------------------*/
//本示例在Keil开发环境下请选择Intel的8058芯片型号进行编译
//假定测试芯片的工作频率为18.432MHz
#include "reg51.h"
#include "intrins.h"
bit FLAG; //1:上升沿中断 0:下降沿中断
sbit P10 = P1^0;
//中断服务程序
void exint0() interrupt 0 //INT0中断入口
{
P10 = !P10; //将测试口取反
FLAG = INT0; //保存INT0口的状态, INT0=0(下降沿); INT0=1(上升沿)
}
//-----------------------------------------------
void main()
{
IT0 = 0; //设置INT0的中断类型为上升沿和下降沿,上升沿和下降沿均可唤醒
// IT0 = 1; //设置INT0的中断类型为仅下降沿,下降沿唤醒
EX0 = 1; //使能INT0中断
EA = 1;
while (1)
{
PCON = 0x02; //MCU进入掉电模式
_nop_(); //掉电模式被唤醒后,首先执行此语句,然后再进入中断服务程序
_nop_();
}
}
更多推荐




所有评论(0)