

#include "N76E003.h"
#include "Common.h"
#include "Delay.h"
#include "SFR_Macro.h"
#include "Function_define.h"
#define uint unsigned int
#define uchar unsigned char
uint WKTCount=0;
bit WKTFlag=0;
sbit LED=P0^4;
sbit TS1=P0^3;
void main (void)
{
Set_All_GPIO_Quasi_Mode;
WKCON=0x03;//预分频64
RWK =255-153;//定时1s
// WKCON =0x07; //预分频配置2048
// RWK =255-244;//设置为50s定时——72个为一小时
set_EWKT; //使能定时唤醒中断
set_WKTR; //运行定时唤醒功能
EA = 1; //开启总中断
while(1)
{
if(WKTFlag)//判定是否溢出
{
WKTCount++;
WKTFlag=0;
if(WKTCount>=60)//每分钟亮一次灯
{
LED=0;
Timer1_Delay10ms(100);
LED=1;//灯闪烁
WKTCount=0;
}
ADCCON1 = 0X00;//关闭ADC
clr_BODEN;//关闭欠压检测
set_PD;// 进入掉电模式
}
}
}
//---------定时唤醒中断服务程序-----

本文探讨了N76E003单片机在低功耗模式下的应用,尤其是在掉电模式下的电流优化,实现了从230μA降至60μA的功耗。尽管尝试关闭时钟未见显著效果,作者仍然寻求社区中更优秀的低功耗配置。此外,文章还提及了定时唤醒功能的精度问题,随着时间推移,误差在-8s至+11s之间波动,对于高精度定时应用需谨慎考虑。
最低0.47元/天 解锁文章
7121

被折叠的 条评论
为什么被折叠?



