LVDF:低压检测标志位.当系统检测到低压事件时,硬件自动将此位置 1,并向 CPU 提出中断请求. 此位需要用户软件清零.
POF:上电复位标志位.MCU 每次重新上电后,硬件自动将此位置 1,可软件将此位清零.
PD:时钟停振模式/掉电模式/停电模式控制位
0:无影响
1:单片机进入时钟停振模式/掉电模式/停电模式,CPU 以及全部外设均停止工作.唤醒后硬件自动 清零.(注:时钟停振模式下,CPU 和全部的外设均停止工作,但 SRAM 和 XRAM 中的数据是 一直维持不变的)
IDL:IDLE(空闲)模式控制位
0:无影响
1:单片机进入 IDLE 模式,只有 CPU 停止工作,其他外设依然在运行.唤醒后硬件自动清零
注:虽然 LVD 和比较器均可唤醒时钟停振模式化,但时钟停振省电模式下,不建议启动 LVD 和比 较器,否则硬件系统还会自动启动内部 1.19V 的高精准参考源,这个高精准参考源有有相应的抗温漂和 调校线路,大约会额外增加 300uA 的耗电,而 MCU 进入时钟停振模式后,3.3V 工作电压时只耗约 0.4uA 的电流,所以进入时钟停振模式时不建议开 LVD 和比较器.如果确实需要用,建议开启掉电唤醒定时器, 掉电唤醒定时器只会增加约 1.4uA 的耗电,这个耗电一般系统是可以接受的.让掉电唤醒定时器每 5 秒 唤醒一次 MCU,唤醒后可用 LVD,比较器, ADC 检测外部电池电压,检测工作约耗时 1mS 后再进入 时钟停振/省电模式,这样增加的平均电流小于 1uA,则整体功耗大约为 2.8uA(0.4uA + 1.4uA + 1uA).
#include "reg51.h"
#include "intrins.h"
//测试工作频率为11.0592MHz
sfr INTCLKO = 0x8f;
#define EX2 0x10
#define EX3 0x20
#define EX4 0x40
sbit P10 = P1^0;
sbit P11 = P1^1;
sfr P0M1 = 0x93;
sfr P0M0 = 0x94;
sfr P1M1 = 0x91;
sfr P1M0 = 0x92;
sfr P2M1 = 0x95;
sfr P2M0 = 0x96;
sfr P3M1 = 0xb1;
sfr P3M0 = 0xb2;
sfr P4M1 = 0xb3;
sfr P4M0 = 0xb4;
sfr P5M1 = 0xc9;
sfr P5M0 = 0xca;
//中断触发后会自动唤醒,需要用哪个中断唤醒就开启哪个中断,不需要的删掉即可
void INT0_Isr() interrupt 0
{
P10 = ! P10;
}
void INT1_Isr () interrupt 2
{
P10 =! P10;
}
void INT2_Isr () interrupt 10
{
P10 =! P10;
}
void INT3_Isr () interrupt 11
{
P10 =! P10;
}
void INT4_Isr () interrupt 16
{
P10 =! P10;
}
void main()
{
static unsigned long msecond=0;
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
IT0 = 0; //使能 INT0 上升沿和下降沿中断
//IT0 = 1; //使能 INT0 下降沿中断
EX0 = 1; //使能 INT0 中断
IT1 = 0; //使能 INT1 上升沿和下降沿中断
//IT1 = 1; //使能 INT1 下降沿中断
EX1 = 1; //使能 INT1 中断
INTCLKO = EX2; //使能 INT2 下降沿中断
INTCLKO |= EX3; //使能 INT3 下降沿中断
INTCLKO |= EX4; //使能 INT4 下降沿中断
EA = 1;
P10 =0;
PCON = 0x02; //MCU 进入掉电模式
_nop_(); //掉电模式被唤醒后,MCU 首先会执行此语句
//然后再进入中断服务程序
_nop_();
_nop_();
_nop_();
while(1)
{
P11 =0;//进入程序后常亮绿灯
if(++msecond >= 500000)//5S后进入休眠
{
P11 =1;
P10 =1;
msecond=0;
PCON = 0x02; //MCU 进入掉电模式
}
}
}
现象效果:初始化完成后进入休眠,按下按键触发中断后唤醒灯常亮,5S灯会熄灭再次进入休眠
video(5)