历史上的今天
今天是:2025年02月01日(星期六)
2018年02月01日 | STC12C2052AD单片机看门狗及其溢出时间计算公式
2018-02-01 来源:eefocus
;本程序用于验证 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
史海拾趣
|
大家好,我是初学单片机的,我的笔记本只有串口,但是msp430的下载器是并口的,我想知道我把笔记本的串口转换成并口后再接下载线可以往msp430单片机里写程序吗?请高手们帮帮我,非常感谢。… 查看全部问答> |
|
首先声明本帖转自另外一个论坛 连接地址是:http://www.stmsky.com/bbs/viewthread.php?tid=1638&extra= 经历了2年,终于想写点东西给09的孩子.因为你们将要在今年九月用72小时来完成这个比赛.成功对你们意义重大. 1.许多人死在第 ...… 查看全部问答> |
|
ADC Driver Provides Fast Slew Rates ADC Driver Provides Fast Slew Rates for Time Domain-Focused Instrumentation Applications… 查看全部问答> |
|
如题,wince下,datagrid或listview都好像不好用 下面的代码就显示不了表头 lv.Left = 0; lv.Top = 0; &n ...… 查看全部问答> |




