/*此程序实现单片机”看门狗”WDT的功能*/

#include”p18f458.h”

unsignedlongi;

/*系统初始化子程序*/

voidinitial()

{

TRISD = 0X00;/*D口设为输出*/

}

/*延时子程序*/

voidDELAY()

{

for(i=19999;–i;)

continue;

}

/*主程序*/

main ()

{

initial();/*初始化,设定看门狗的相关寄存器*/

PORTD = 0X00;/*D口送00H,发光二极管亮*/

DELAY();/*给予一定时间的延时*/

PORTD = 0XFF;/*D口送FFH,发光二极管灭*/

while(1)

{

;

}/*死循环,等待看门狗溢出复位*/

}

——————-汇编语言版本的单片机看门狗程序—————-

;此程序实现”看门狗”WDT的功能

;此单片机看门狗由http://www.51hei.com独家提供

LISTP=18F458

INCLUDE”P18F458.INC”

DEYHEQU0X20

DEYLEQUDEYH+1

ORG0X00

GOTOMAIN

ORG0X30

;*************初始化子程序*****************

INITIAL

CLRFTRISD;D口设为输出

RETURN

;**************延时子程序**************************

DELAY

MOVLW0XFF

MOVWFDEYH

AGAIN1

MOVLW0XFF

MOVWFDEYL

AGAIN2

DECFSZDEYL

GOTOAGAIN2

DECFSZDEYH

GOTOAGAIN1

NOP

RETURN

;************单片机看门狗主程序****************************

MAINNOP

CALLINITIAL;系统初始化

MOVLW0X00

MOVWFPORTD;D口送00H,发光二极管亮

CALLDELAY

MOVLW0XFF

MOVWFPORTD;D口送FFH,发光二极管灭

LOOP

GOTOLOOP;死循环,等待看门狗复位

END