📄 led2.asm
字号:
;-----------------------------------
; 流水灯实例
;功能:点亮发光管LED并闪烁
;-----------------------------------
ORG 0000H ;伪指令,指定程序从0000H开始存放
LJMP MAIN ;跳转指令,程序跳转到MAIN处
ORG 0100H ;伪指令,指定以下程序从0100H开始存放
MAIN:
MOV SP,#60H ;给堆栈指针赋初值
MOV P1,#0FFH ;给P1赋初值,LED全灭
;以下为查表程序
MOV DPTR,#LED_TABLE
LIGHT:
MOV R7,#42
LOOP:
MOV A,#42
SUBB A,R7
MOVC A,@A+DPTR
MOV P1,A ;输出显示
LCALL DELAY ;调延时子程序
DJNZ R7,LOOP
SJMP LIGHT ;跳转,程序继续
;延时子程序
DELAY:
MOV R7,#10H
DELAY0:
MOV R6,#7FH
DELAY1:
MOV R5,#7FH
DJNZ R5,$
DJNZ R6,DELAY1
DJNZ R7,DELAY0
RET
;表格数据
LED_TABLE:
DB 0FFH ;全部熄灭
DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH ;依次逐个点亮
DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,080H,000H ;依次逐个叠加
DB 080H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH ;依次逐个递减
DB 07EH,0BDH,0DBH,0E7H,0E7H,0DBH,0BDH,07EH ;两边靠拢后分开
DB 07EH,03CH,018H,000H,000H,018H,03CH,07EH ;从两边叠加后递减
DB 000H ;全部点亮
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -