SN8P2808
8-bit micro-controller build-in 4*32 LCD and 12-bit ADC.
8
定时器
8.1 看门狗定时器
看门狗定时器WDT 是一个4 位二进制计数器,用于监控程序的正常执行。如果由于干扰,程序进入了未知状态,看
门狗定时器溢出,系统复位。看门狗的工作模式由编译选项控制,其时钟源由内部低速RC 振荡器(16KHz @3V,32KHz
@5V)提供。
看门狗溢出时间 = 8192 /内部低速振荡器周期(sec)
VDD
3V
内部低速 RC Freq.
16KHz
看门狗溢出时间
512ms
5V
32KHz
256ms
注:如果看门狗被置为“Always_On”模式,那么看门狗在睡眠模式和绿色模式下仍然运行。
看门狗清零的方法是对看门狗计数器清零寄存器WDTR 写入清零控制字5AH。
0CCH
WDTR
读/写
Bit 7
WDTR7
W
Bit 6
WDTR6
W
Bit 5
WDTR5
W
Bit 4
WDTR4
W
Bit 3
WDTR3
W
Bit 2
WDTR2
W
Bit 1
WDTR1
W
Bit 0
WDTR0
W
0
0
0
0
0
0
0
0
复位后
¾
例:如下是对看门狗定时器的操作,在主程序开头对看门狗清零。
MOV
A,#5AH
; 看门狗定时器清零。
B0MOV
…
WDTR,A
CALL
CALL
…
SUB1
SUB2
…
JMP
MAIN
看门狗定时器应用注意事项如下:
z
z
z
对看门狗清零之前,检查I/O 口的状态和RAM 的内容可增强程序的可靠性;
不能在中断中对看门狗清零,否则无法侦测到主程序跑飞的状况;
程序中应该只在主程序中有一次清看门狗的动作,这种架构能够最大限度的发挥看门狗的保护功能。
¾
例:如下是对看门狗定时器的操作,在主程序开头对看门狗清零。
main:
…
; 检测 I/O 口的状态。
…
; 检测 RAM 的内容。
Err:
JMP $
; I/O 或RAM 出错,不清看门狗等看门狗计时溢出。
Correct:
; I/O 和RAM 正常,看门狗清零 。
;
MOV
A, 5AH
; 在整个程序中只有一处地方清看门狗。
B0MOV
…
WDTR, A
CALL
CALL
…
SUB1
SUB2
…
JMP
MAIN
SONiX TECHNOLOGY CO., LTD
Page 68
Version 1.1