N76E003 低功耗(掉电模式&管脚中断唤醒)

N76E003每个管脚都提供管脚输入中断功能,用于检测管脚电平状态,如按键或键盘是否按下。最多配
置8个I/O管脚用于管脚中断。任何按键按下时通过边沿或电平触发产生一个管脚中断事件。管脚中断能 使MCU从空闲模式或掉电模式唤醒
可以通过外部中断使N76E003从掉电模式唤醒。触发外部中断管脚会重启系统时钟,在振荡器
稳定后,设备执行外部中断对应的中断服务程序( ISR)。 从ISR返回后,设备立即执行使系统进入掉电
模式的指令接下来的指令。 可以将芯片从掉电模式唤醒的中断有:外部中断、引脚中断、WDT中断、 WTK中断和欠压中断。

#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

bit PIFlag;//管脚中断标志位
sbit LED=P0^4;


void main (void)
{
	Set_All_GPIO_Quasi_Mode;
	P11_Input_Mode;			//设置为输入模式
	clr_PIPS1;
	set_PIPS0;//选择P1.1为中断输入源
	Enable_BIT1_HighLevel_Trig;	//高电平触发管脚中断
	//Enable_BIT1_FallEdge_Trig;	//下降沿		
	//Enable_BIT1_RasingEdge_Trig;//上升沿
	//Enable_BIT1_LowLevel_Trig;	//低电平
	LED=1;//初始化LED端口
	Timer0_Delay1ms(20);
	set_EPI;//开启管脚中断使能
	EA = 1;//开启总中断
	while(1)
	{
			if(PIFlag)//判定是否溢出
			{	
				LED=0;
				Timer1_Delay10ms(100);
				LED=1;//灯闪烁
				PIFlag=0;
				ADCCON1 = 0X00;//关闭ADC
				clr_BODEN;//关闭欠压检测
				set_PD;// 进入掉电模式
			}
	}
}

//-------管脚中断中断服务程序---------
void PinInterrupt (void) interrupt 7
{
		if(PIF==0x02)//P11位于一通道
		{
			PIF=0;//清除外部中断标志
			PIFlag=1;
		}
}

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