|
本人第一次写看门狗程序有以下问题
A、以下的程序写法算是在主程序中清狗吧!如果不是怎样改正!!
B、听一些开发人员说看门狗写以写三到四层,这个方法在书本没有介绍到,这个概念大家可以讲讲吗?是怎样写的!
C、是否要设定端口初始化!那么我的P1口就要这样设置吗??程序要怎样改
LED1 EQU P1.0 LED2 EQU P1.1 LED3 EQU P1.2 LED4 EQU P1.3
D、要设置软件执行一分钟复位一次,除用看门狗,要加入定时器吗? 以下的程序应该怎样改呢!
;* AT89S51/52片内看门狗使用范单灯左循环例 *
AUXR EQU 0x8E; ; 08EH是AT89S52辅助寄存器地址P8
WDTRST EQU 0xA6 ; 0A6H是AT89S52的看门狗地址,寄存器名为WDTRST
ORG 0000H
LJMP MAIN
ORG 000BH
LIMP TIMSUBO
MAIN:
MOV AUXR,#0FFH ; 初始化看门狗相关寄存器
mov a,#01h
repeat: mov p1,a
acall delay
rr a
MAIN_LP:
LCALL CLR_WDT ; 8191(1FFF)个机器周期内必须至少调用此程序一次
; 否则看门狗会溢出
; 其它子程序
; SJMP $
sjmp repeat
;LJMP MAIN_LP
;===============================================================================
CLR_WDT:
MOV WDTRST,#01EH ; 清除看门狗指令
MOV WDTRST,#0E1H
RET
delay: mov r0,#00h
xl2: mov r1,#80h
dl1: nop
djnz r1,dl1
djnz r0,xl2
ret
end
|
|