📄 led1.asm
字号:
;-----------------------------------
; 跑马灯实例
;功能:循环轮流点亮8只发光管LED
;-----------------------------------
LED1_PIN EQU P1.0
LED2_PIN EQU P1.1
LED3_PIN EQU P1.2
LED4_PIN EQU P1.3
LED5_PIN EQU P1.4
LED6_PIN EQU P1.5
LED7_PIN EQU P1.6
LED8_PIN EQU P1.7
ORG 0000H ;伪指令,指定程序从0000H开始存放
LJMP MAIN ;跳转指令,程序跳转到MAIN处
ORG 0100H ;伪指令,指定以下程序从0100H开始存放
MAIN:
MOV SP,#60H ;给堆栈指针赋初值
MOV P1,#0FFH ;给P1赋初值,LED全灭
LIGHT:
CLR LED1_PIN ;清零P1.0,LED1亮
LCALL DELAY ;调延时子程序
SETB LED1_PIN ;置一P1.0,LED1灭
CLR LED2_PIN ;清零P1.1,LED2亮
LCALL DELAY ;调延时子程序
SETB LED2_PIN ;置一P1.1,LED2灭
CLR LED3_PIN ;清零P1.2,LED3亮
LCALL DELAY ;调延时子程序
SETB LED3_PIN ;置一P1.2,LED3灭
CLR LED4_PIN ;清零P1.3,LED4亮
LCALL DELAY ;调延时子程序
SETB LED4_PIN ;置一P1.3,LED4灭
CLR LED5_PIN ;清零P1.4,LED5亮
LCALL DELAY ;调延时子程序
SETB LED5_PIN ;置一P1.4,LED5灭
CLR LED6_PIN ;清零P1.5,LED6亮
LCALL DELAY ;调延时子程序
SETB LED6_PIN ;置一P1.5,LED6灭
CLR LED7_PIN ;清零P1.6,LED7亮
LCALL DELAY ;调延时子程序
SETB LED7_PIN ;置一P1.6,LED7灭
CLR LED8_PIN ;清零P1.7,LED8亮
LCALL DELAY ;调延时子程序
SETB LED8_PIN ;置一P1.7,LED8灭
AJMP LIGHT ;跳转,程序继续
;延时子程序
DELAY:
MOV R7,#10H
DELAY0:
MOV R6,#7FH
DELAY1:
MOV R5,#7FH
DJNZ R5,$
DJNZ R6,DELAY1
DJNZ R7,DELAY0
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -