请教89S52掉电问题

[复制链接]
2457|4
 楼主| ljolove 发表于 2008-3-6 15:02 | 显示全部楼层 |阅读模式
自己写了一段程序,大家给看一眼
#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上接了一个开关,可第一次能唤醒,等再次掉电的时候程序就不动了,应该是死机了,请问大家出现这种情况是什么原因啊,谢谢大家了!!!!
ayb_ice 发表于 2008-3-6 19:01 | 显示全部楼层

S52进入STOP模式应该只能通过RESET唤醒

 楼主| ljolove 发表于 2008-3-6 19:15 | 显示全部楼层

RE

不会,还可以通过外部中断唤醒,希望高手指点啊
xhtxzxw 发表于 2008-3-6 21:22 | 显示全部楼层

嘿嘿

你的外部中断0服务函数在那里呢?INT0来了,你让52做啥呢?
 楼主| ljolove 发表于 2008-3-6 21:45 | 显示全部楼层

嘿嘿

还是楼上厉害,刚才我也刚试完,原来是跑飞了,加了一个空函数就可以了,非常感谢!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

133

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部