您当前的位置:五五电子网电子知识单片机-工控设备STC单片机(STC12C2052AD单片机看门狗及其溢出时间计算公式 正文
STC12C2052AD单片机看门狗及其溢出时间计算公式

STC12C2052AD单片机看门狗及其溢出时间计算公式

点击数:7291 次   录入时间:03-04 11:50:11   整理:http://www.55dianzi.com   STC单片机(
;本程序用于验证 STC12C2052AD 系列 单片机 的看门狗及其溢出时间计算公式
;看门狗及其溢出时间 = (12 * Pre_scale *32768)/Oscillator Frequency

WDTCR           EQU 0E1H ;看门狗地址
WDT_TIME_LED    EQU P1.5 ;用 P1.5 控制看门狗溢出时间指示灯, 
                         ;看门狗溢出时间可由该指示灯亮的时间长度或熄灭的时间长度表示
WDT_FLAG_LED    EQU P1.7 ;用 P1.7 控制看门狗溢出复位指示灯, 如点亮表示为看门狗溢出复位

Last_WDT_Time_LED_Status  EQU 00H ;位变量, 存储看门狗溢出时间指示灯的上一次状态位

;WDT 复位时间(Oscillator frequency = 18.432MHz):
;Pre_scale_Word  EQU 00111100B   ;清0、启动看门狗,预分频数=32   0.68S
Pre_scale_Word  EQU 00111101B   ;清0、启动看门狗,预分频数=64   1.36S
;Pre_scale_Word  EQU 00111110B   ;清0、启动看门狗,预分频数=128  2.72S
;Pre_scale_Word  EQU 00111111B   ;清0、启动看门狗,预分频数=256  5.44S

    ORG   0000H
    AJMP  MAIN

    ORG   0100H
MAIN:
     MOV    A, WDTCR              ;检测是否为看门狗复位
    ANL   A, #10000000B
    JNZ   WDT_Reset             ;WDTCR.7 = 1, 看门狗复位, 跳转到看门狗复位程序

;上电复位, 冷启动, RAM 单元内容为随机值
    SETB  Last_WDT_Time_LED_Status       ;上电复位,
                                         ;初始化看门狗溢出时间指示灯的状态位 = 1
    CLR   WDT_TIME_LED                   ;上电复位, 点亮看门狗溢出时间指示灯
     MOV    WDTCR, #Pre_scale_Word ;启动看门狗

WAIT1:
    SJMP  WAIT1                 ;循环执行本语句(停机),等待看门狗溢出复位

;看门狗复位, 热启动, RAM 单元内容不变, 为复位前的值
WDT_Reset:                      ;看门狗复位, 热启动
    CLR   WDT_FLAG_LED          ;点亮看门狗溢出复位指示灯

    JB   Last_WDT_Time_LED_Status, Power_Off_WDT_TIME_LED
    ;根据看门狗溢出时间指示灯的上一次状态位设置 WDT_TIME_LED 灯, 
    ;若上次亮本次就熄灭, 若上次熄灭本次就亮
    CLR   WDT_TIME_LED          ;上次熄灭本次点亮看门狗溢出时间指示灯
    CPL   Last_WDT_Time_LED_Status ;将看门狗溢出时间指示灯的上一次状态位取反
WAIT2:    
    SJMP  WAIT2                 ;循环执行本语句(停机),等待看门狗溢出复位

Power_Off_WDT_TIME_LED:
    SETB  WDT_TIME_LED          ;上次亮本次就熄灭看门狗溢出时间指示灯
    CPL   Last_WDT_Time_LED_Status ;将看门狗溢出时间指示灯的上一次状态位取反
WAIT3:   
    SJMP  WAIT3                 ;循环执行本语句(停机),等待看门狗溢出复位

    END



本文关键字:单片机  STC单片机(单片机-工控设备 - STC单片机(

上一篇:SST89C54/58简介