📄 em78p372n_pin_wakeup_int.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 + -