你需要先缩小问题的范围:
1、先不要用看门狗
2、将程序中的中断关闭(EA=0),如果还复位就是硬件的问题
3、试着一个一个地允许中断(有多个中断时可能还需要组合),碰到哪个中断被允许后出现复位,问题往往就出在那里
4、有时候问题并不一定在中断程序中,看不到程序很难说。通常可能的几种情况:堆栈不平衡、堆栈溢出、意外访问SFR等等
看你究竟是不是复位,可能程序跑飞了,在复位程序后面加一个调试程序,比如让led闪一次或者什么的,就知道是不是复位了。
确定一下是否产生了中断,如果产生了,确认一下中断子程序是否有问题,如果程序很长看一下是不是看门狗的问题。。。
给你提醒一下,不知道能不能起作用,如果你设置了SP寄存器,就是堆栈寄存器,你可以试着修改它的设置值,如果没有设置不妨设置一下,我以前遇到过堆栈设置不对程序莫名其妙的跑飞的情况,你可以试一试。