自己写了一段程序,大家给看一眼 #include<reg52.h> #include <intrins.h> #define LED_ON 0xfe #define LED_OFF 0xff
void delayms(unsigned char ms) // 延时子程序 { unsigned char i; while(ms--) { for(i = 0; i < 120; i++); } }
main() { unsigned char i; EA=1; EX1=1; EX0=1; IT0=0; IT1=0; for(i=0;i<10;i++) { P0 = LED_ON; delayms(250); P0=LED_OFF; delayms(250); }
PCON=0<<1;//程序到这里都运行正常,也可以被外部中断唤醒 for(i=0;i<10;i++) { P0 = LED_ON; delayms(250); P0=LED_OFF; delayms(250); } PCON=1<<1;//运行到这里的时候然后再按按键就没反映了 for(i=0;i<10;i++) { P0 = LED_ON; delayms(250); P0=LED_OFF; delayms(250); } PCON=1<<1;
while(1) { P0=LED_ON; delayms(250); P0 = LED_OFF; delayms(250); } } 这个程序就是想看单片机掉电后是不是能被外部中断唤醒,我在INT0上接了一个开关,可第一次能唤醒,等再次掉电的时候程序就不动了,应该是死机了,请问大家出现这种情况是什么原因啊,谢谢大家了!!!! |