你的位置: 首页 > 家电弱电 > 单片机

单片机看门狗程序

2016-10-30 15:13:18 | 人围观 | 评论:

*此程序实现单片机"看门狗"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.diangon.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





标签: