一、WDT相关寄存器的设置
1、 设定CONT寄存器中的bit3(PAB)位,看是否使用预分频器;
2、 设定预分频系数,即设定CONT寄存器的PSR2、PSR1、PSR0位,
7 6 5 4 3 2 1 0
INTE INT TS TE PAB PSR2 PSR1 PSR0
Bit3: 预分频分配位。
0: TCC;1: WDT。
3、 如果使能WDT唤醒,建议客户P6口输入唤醒或比较器唤醒禁止。
原因:WDT唤醒和P6口输入唤醒或比较器唤醒同时使能,当同时唤醒时,IC会优先reset,而不去执行P5口输入唤醒后的程式或比较器唤醒后的程式,故如果使能WDT唤醒,建议客户P6口输入唤醒或比较器唤醒禁止
4、 WDTC,使能看门狗定时器(WDT);将IOCE0寄存器bit7置1;
7 6 55 4 3 2 1 0
WDTE EIS - - - - - -
Bit7: WDT使能控制位。
0: 禁止; 1: 使能。
5、 下SLEP指令
二、WDT唤醒时间计算
1. SETUP TIME:22.0ms±30%(vdd==3v)
注:当vdd电压变化时SET TIME会相应变化
2. WDT的唤醒时间
Crystal MODE RC MODE
WDT的唤醒时间 Setup time*prescaler+ setup time
3. 上表中setuptime*prescaler的时间
对CONT寄存器的后4位
当PAB==0,setuptime*prescaler== setuptime
当PAB==1,setuptime*prescaler== NUM*setuptime
NUM PS2 PS1 PS0
1 0 0 0
2 0 0 1
4 0 1 0
8 0 1 1
16 1 0 0
32 1 0 1
64 1 1 0
128 1 1 1
三、 应用 举例
以下代码是实现用WDT唤醒EM78P458A的Demo
Code,Port5.1端口输出脉冲,用来测量睡眠时间,也可接LED灯来进行观测。
Port5 == 0x05 ; Port5端口
RF == 0x0F ; 中断状态寄存器
IOCE0 == 0x0E ; WDT控制寄存器
Wdt_buf == 0x20 ; 延时缓冲器
Num == 1
;----------------------------MAIN
PROGRAM------------------------------;
ORG 0X00
JMP Wdt_Start
ORG 0x20
;----------------------------------------------------------------------;
Wdt_Delay:
MOV Wdt_buf, A
Wdt_Delay_Loop:
DJZ Wdt_buf
JMP Wdt_Delay_Loop
RET
;----------------------------------------------------------------------;
Wdt_Start:
BC R9, 5 ; 选择段0
MOV A, @0b00000000
IOW Port5 ; 设置Port5口输出
BS Port5, num ; Port5.1输出脉冲
MOV A, @255 ; 等待(P5.1可接LED灯)
CALL Wdt_Delay
本文关键字:暂无联系方式义隆单片机,单片机-工控设备 - 义隆单片机