专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

单片机看门狗程序

作者:佚名   来源:本站原创   点击数:  更新时间:2008年07月16日   【字体:

/*此程序实现单片机"看门狗"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,发光二极管灭
LOOP
 GOTO  LOOP    ;死循环,等待看门狗复位
 END
 

关闭窗口