下边是我的部分程序:<br />void init_io(void)<br />{<br /> PORTA=0;<br /> PORTB=0;<br /> PORTC=0;<br /> PORTD=0x0;<br /> PORTE=0;<br /> TRISA=0;<br /> CMCON0=0x07; //off compare<br /> ANSEL=0x40; //RE1 AS AD INPUT <br /> <br /> TRISB=0b01000000;<br /> TRISC=0;<br /> TRISD=0x0; //01110000 <br /> TRISE=0;<br /><br /> RBPU=0;<br /> WPUB=0x40;<br /> IOCB6=1; //RB6电平中断<br /> RBIE=1;<br /> PEIE=1;<br /> GIE=1;<br />// RBIF=0;<br />}<br />void interrupt isr() <br />{<br /> unsigned char i;<br /> if((RBIE)&&(RBIF))<br /> {<br /> i=PORTB;<br /> RBIF=0;<br /> sleep_flag=1;<br /> }<br />}<br />void main()<br />{<br /> unsigned char i;<br /> init_io();<br /> RD7=1;<br /> sleep_flag=0;<br /> while(1)<br /> {<br /> scankey();<br /> if(key==switchkey)fun_switch();<br /> if(sleep_flag==1)<br /> {<br /> RD7=0; //背光<br /> RD3=0; //音频板电源 <br /> sleep_flag=0;<br /> i=RB6;<br /> asm("sleep"); <br /> init_io();<br /> sleep_flag=0;<br /> RD7=1;<br /> RD3=1; //音频板电源 <br /> }<br /> }<br />}<br /><br />各位帮我看看,问题到底出在哪里? |
|