⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 em78p372n_pin_wakeup_int.c

📁 义隆EM78P372N资料
💻 C
字号:
//********************************************
//在唤醒前P67输出低电平,在唤醒后P67输出高电平
//********************************************
//MCU:EM78P372N
//Oscillator:IRC 4MHz
//Clock:2
//WDT: Disable
//编译软件:eUIDE version 1.02.09.07

#include "EM78P372N.H"       //EM78P372N的头文件
#define DISI()  _asm{disi}
#define WDTC()  _asm{wdtc}
#define NOP()   _asm{nop}
#define ENI()   _asm{eni}
#define SLEP()   _asm{slep}
#define uchar  unsigned char
extern int IntVecIdx; //occupied 0x10:rpage 0
void main()
{
 	WDTC();
 	DISI();
 	SCR=0X7F;				//选择4MHz
 	P5CR=0X01;				//PORT5设为输入
 	P6CR=0X0;				//PORT6设为输出
 	PORT6=0X0;				//P67输出低
 	P5PDCR=0XFE;			//PORTW5设为下拉
 	PORT5=PORT5;			//读取PORT5状态
	ISR1=0X02;				//使能PORT5状态改变唤醒功能
	IMR=0X02;				//使能PORT5状态改变中断
	IDLE=0;
	ENI();
	NOP();
	NOP();
	SLEP();					//进入睡眠
	NOP();
	WDTC();
	NOP();
	NOP();
	while(1);
}

void _intcall ALLInt(void) @ int 
{     
  switch(IntVecIdx)
  {
   
    case 0x7:
    ISR2&=0XFD;				//清IO状态改变中断标志位
    P67=1;					//P67输出高电平
    break;
    
  } 	
}



void _intcall PortChange_l(void) @ 0x06:low_int 1
{
 _asm{MOV A,0x2};
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -