⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex10-1.asm

📁 《增强型8051单片机实用开发技术》例程代码
💻 ASM
字号:
$include  (STC12C5A.INC)  	;包含STC12C5A60S2单片机寄存器定义文件
WDT_TIME_LED  EQU P1.5   	;用 P1.5 控制看门狗溢出时间指示灯,
                 			;看门狗溢出时间由该指示灯亮的时间长度或熄灭的时间长度表示
WDT_FLAG_LED  EQU P1.7   	;用 P1.7 控制看门狗溢出复位指示灯
                            ;如点亮表示为看门狗溢出复位
Last_WDT_LED  EQU 00H    	;位变量, 存储看门狗溢出时间指示灯的上一次状态位
Pre_scale_Word  EQU 00111100B    ;清0,启动看门狗,预分频数=32
    ORG   0000H
    LJMP  MAIN
    ORG   0100H
MAIN:
    MOV   A, WDT_CONTR  ;检测是否为看门狗复位
    ANL   A, #10000000B
    JNZ   WDT_Reset     ;WDT_CONTR.7=1, 看门狗复位, 跳转到看门狗复位程序
                 		;WDT_CONTR.7 = 0,上电复位, 冷启动, RAM 单元内容为随机值
    SETB  Last_WDT_LED  ;上电复位, 初始化看门狗溢出时间指示灯的状态位 = 1
    CLR   WDT_TIME_LED  ;上电复位, 点亮看门狗溢出时间指示灯
    MOV   WDT_CONTR, #Pre_scale_Word     ;启动看门狗
WAIT1:
    LJMP  WAIT1                 ;循环执行本语句(停机),等待看门狗溢出复位
        ;WDT_CONTR.7 = 1,看门狗复位, 热启动, RAM 单元内容不变, 为复位前的值
WDT_Reset:                      ;看门狗复位, 热启动
    CLR   WDT_FLAG_LED          ;是看门狗复位,点亮看门狗溢出复位指示灯
    JB   Last_WDT_LED, Power_Off_WDT_LED ;为1熄灭相应的灯,为0亮相应灯
              ;根据看门狗溢出时间指示灯的上一次状态位设置 WDT_TIME_LED 灯,
              ;若上次亮本次就熄灭, 若上次熄灭本次就亮
    CLR   WDT_TIME_LED          ;上次熄灭本次点亮看门狗溢出时间指示灯
    CPL   Last_WDT_LED          ;将看门狗溢出时间指示灯的上一次状态位取反
WAIT2:
    SJMP  WAIT2                 ;循环执行本语句(停机),等待看门狗溢出复位
Power_Off_WDT_LED:
    SETB  WDT_TIME_LED         	;上次亮本次就熄灭看门狗溢出时间指示灯
    CPL   Last_WDT_LED         	;将看门狗溢出时间指示灯的上一次状态位取反
WAIT3:
    SJMP  WAIT3                 ;循环执行本语句(停机),等待看门狗溢出复位
    END


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -