N76E003 低功耗(掉电模式&定时唤醒)

N76E003 低功耗(掉电模式&定时唤醒)_第1张图片
N76E003 低功耗(掉电模式&定时唤醒)_第2张图片


#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;// 进入掉电模式
			}
		}
}

//---------定时唤醒中断服务程序--------------
void WakeUp_Timer_ISR (void)   interrupt 17    
{
		WKTFlag=1;
	  clr_WKTF;//清除WKT溢出标志位  
}

N76E003 低功耗(掉电模式&定时唤醒)_第3张图片
最后通过测量串联在VCC上的10欧电阻,得到的电压值,转换为电流大约是60μA,我的万用表精度只有这么多了,再低也无法测量了。据说论坛的大神能做到5μA,关闭各类时钟我也尝试过,区别不大,所以在程序里就没写入。我从最开始的230μA到60μA,已经尽力了,但还是希望各位同学分享更厉害的低功耗配置。
后续补充
我从1月27日开始,每小时进行一次唤醒,使用锂电池对xc6204供电,但是唤醒的时间还是出现了较大误差,对定时唤醒有较高要求的,请慎用该功能。

27日每小时误差时间-8s
在这里插入图片描述
30日每小时误差时间-1s
在这里插入图片描述
03日每小时误差时间+11s左右
在这里插入图片描述

更新补充说明
目前以N76E003单片机为主控的小气象站已开始试运行,这是今回传的数据,通过下图可以看出,最开始运行时误差时间达到了两分钟,后随着温度逐渐减小,误差时间也慢慢变小。
N76E003 低功耗(掉电模式&定时唤醒)_第4张图片

你可能感兴趣的:(N76E003,N76E003,单片机,学习)