PIC16F628A进入休眠模式总是复位,请问大家知道是什么原因吗?

2020-02-08 09:30发布

现在在做个项目,用PIC16F628A来做,因为是小型产品,要求有低功耗功能。当我在中断里加入SLEEP();指令时单片机就复位了,设置的配置字为0x0038,不知道大家有没遇到到这个问题呀。用外部中断RB0/INT引脚
下面是部分程序:
__CONFIG (0x0038);//配置位
void interrupt time0()
{
                if(flagtime2min)//进入睡眠模式
                {
                        counter2min++;
                        if(counter2min==20000)//2min240000
                        {
                                flagtime2min=0;
                                counter2min=0;                               
                                PORTB=0xfe;
                                TRISB=0x01;
                                TRISA=0x23;
                                PORTA=0xe7;
                                INTE=1;
                                INTF=0;
                                GIE=1;
                                PEIE=1;
                                NOP();
                                NOP();
                                SLEEP();//睡眠模式
                               
                        }
                }
        }
        if(INTF)//外部中断唤醒睡眠
        {
                INTF=0;
                INTE=0;

                TRISB=0x0;
                PORTB=0xfe;
                counter=0;
               
                T0IF=0;
                TMR0=252;
                counter=0;

        }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。