本帖最后由 小盼abc 于 2014-10-29 19:03 编辑
具体芯片是at89s52
#include<reg52.h>
sfr WDTRST = 0xA6;
sbit key = P3^1;
/*------------------------------------------------
喂狗
------------------------------------------------*/
void Rst_Watchdog( void )
{
WDTRST = 0x1E; //先赋值1E 然后赋值E1
WDTRST = 0xE1;
}
/*------------------------------------------------
主函数
------------------------------------------------*/
void main( void )
{
int i;
Rst_Watchdog();
for( i = 0; i < 500; i++)//这里的这个循环有什么用,如果喂狗的话这样好像意义不大
{
Rst_Watchdog();
}
P1=0x00;
while(!key)
{
P1=0x55;
}
}其次,我发现,如果上面的key如果不按的话,看门狗复位会从main开头开始运行,但是如果按下的话,复位后会从while循环开始,那个可以解释下 |