📄 14-1.asm
字号:
;***********************************************************************
; 功能 :LED指示灯循环闪烁程序
; 作者 :LIHJ
; 创建日期 :04-1-2
; 版本 :V1.0
; 修改日期 :
;************************************************************************
;CPU引脚宏定义
LED1 EQU P1.0 ;第1个指示灯
LED2 EQU P1.1 ;第2个指示灯
LED3 EQU P1.2 ;第3个指示灯
LED4 EQU P1.3 ;第4个指示灯
WDT EQU P1.7 ;喂外部看门狗
;开始源程序
ORG 0000H ;程序入口
JMP MAIN ;跳转到主程序
;主程序
ORG 0050H ;指定主程序保存地址
MAIN:
;复位指示,闪烁LED1两次
CLR LED1 ;点亮LED1
CALL WAIT1S ;等待1S左右时间
SETB LED1 ;熄灭LED1
CALL WAIT1S ;等待1S左右时间
CLR LED1 ;点亮LED1
CALL WAIT1S ;等待1S左右时间
SETB LED1 ;熄灭LED1
CALL WAIT1S ;等待1S左右时间
;循环闪烁指示灯
FLASHLED:
CLR LED1 ;点亮LED1
CALL WAIT2S ;等待2S左右时间
SETB LED1 ;熄灭LED1
CLR LED2 ;点亮LED2
CALL WAIT2S ;等待2S左右时间
SETB LED2 ;熄灭LED2
CLR LED3 ;点亮LED3
CALL WAIT2S ;等待2S左右时间
SETB LED3 ;熄灭LED3
CLR LED4 ;点亮LED4
CALL WAIT2S ;等待2S左右时间
SETB LED4 ;熄灭LED4
JMP FLASHLED ;开始下一个循环
;大约1秒钟的延时子程序
WAIT1S:
MOV R2, #08H
WAIT1S2:
MOV R0, #0FFH
WAIT1S1:
MOV R1, #0FFH
DJNZ R1, $ ;原地跳转
CPL WDT ;喂外部看门狗
DJNZ R0, WAIT1S1
DJNZ R2, WAIT1S2
RET
;大约2秒钟的延时子程序
WAIT2S:
MOV R2, #10H
WAIT2S2:
MOV R0, #0FFH
WAIT2S1:
MOV R1, #0FFH
DJNZ R1, $ ;原地跳转
CPL WDT ;喂外部看门狗
DJNZ R0, WAIT2S1
DJNZ R2, WAIT2S2
RET
END ;结束程序
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -