元器件交易网-中发网全新升级平台
首页 > 解决方案 > 正文

单片机看门狗程序

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

#include "p18f458.h"

unsigned long i;

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

void initial()
{
 TRISD = 0X00;    /*D口设为输出*/
}

/*延时子程序*/

void DELAY()
{
  for (i=19999;--i;)
 continue;
}

/*主程序*/

main ()
{
 initial();     /*初始化,设定看门狗的相关寄存器*/
 PORTD = 0X00;   /*D口送00H,发光二极管亮*/
 DELAY();    /*给予一定时间的延时*/
 PORTD = 0XFF;   /*D口送FFH,发光二极管灭*/
 while(1)
 {
 ;
 }      /*死循环,等待看门狗溢出复位*/

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

;此程序实现"看门狗"WDT的功能
;此单片机看门狗由http://www.51hei.com独家提供
 LIST  P=18F458
 INCLUDE  "P18F458.INC"

 DEYH  EQU  0X20

 DEYL  EQU  DEYH+1

 ORG   0X00

 GOTO  MAIN
 ORG   0X30

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

INITIAL
 CLRF  TRISD    ;D口设为输出
 RETURN

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

DELAY
 MOVLW  0XFF
 MOVWF  DEYH
AGAIN1
 MOVLW  0XFF
 MOVWF  DEYL
AGAIN2
 DECFSZ  DEYL
 GOTO  AGAIN2
 DECFSZ  DEYH
 GOTO  AGAIN1
 NOP
 RETURN 

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

MAIN NOP
 CALL  INITIAL    ;系统初始化
 MOVLW  0X00
 MOVWF  PORTD    ;D口送00H,发光二极管亮
 CALL  DELAY
 MOVLW  0XFF
 MOVWF  PORTD    ;D口送FFH,发光二极管灭