- 打卡等级:初来乍到
- 打卡总天数:5
- 最近打卡:2026-03-14 10:20:56
已绑定手机
新手上路
- 积分
- 27
|
单片机型号:AI8H2K32U。P2.3接的是5V给两个200K电阻分压,5V有时P2.3有2.5V,没有时单片机由CR2032供电。检测P2.3是否是低电平,P2.3低电平中断,在中断里开启掉电模式。CR2032电池供电时电流8mA,。实在找不到问题求帮助!
////////////////////////////////////////
// P2中断服务程序
// 入口参数: 无
// 函数返回: 无
////////////////////////////////////////
void PORT2_ISR(void) interrupt P2INT_VECTOR
{
//<<AICUBE_USER_PORT2_ISR_CODE1_BEGIN>>
// 在此添加中断函数用户代码
uint8_t intf;
intf = CheckP2nFlag(PIN_ALL); //读取中断请求标志
ClearP2nFlag(PIN_ALL); //清除中断请求标志
if(intf==0x08) //判断是否是P2.3触发的中断
{
Powers(); //关闭所有输出
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
PCON|=0x02; //P2.3检测到低电平,MCU进入省电模式
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
}
//<<AICUBE_USER_PORT2_ISR_CODE1_END>>
}
void Powers(void)
{
P0=0x00;P1=0x00;P2=0x00;P3=0x00; //IO口全输出低电平
P0M0=0x00;P0M1=0xff;P1M0=0x00,P1M1=0xff;P2M0=0x00,P2M1=0xff;P3M0=0x00,P3M1=0xff; P5M0 = 0x00; P5M1 = 0xFF;//全高阻输入
P0PU=0x00;P1PU=0x00;P2PU=0x00;P3PU=0x00; P5PU = 0x00; //禁止上拉
P0NCS=0xff;P1NCS=0xff;P2NCS=0xff;P3NCS=0xff; //禁止施密特触发器
P0IE=0x00;P1IE=0x00;P2IE=0x00;P3IE=0x00; //禁止数字输入
IE=0x00; //禁止所有中断
TCON&=0xAF; AUXR&=0xEF; T4T3M&=0x77; //定时器停止计数
ADC_CONTR&=0x7F; //关闭ADC电源
}
|
-
-
|