📄 花样灯(二).asm
字号:
ORG 30H
MOV P2,#0FFH
MOV P3,#0FFH
MAIN10:MOV DPTR,#TABLE1 ;TABLE表的地址存入DPTR
MOV P3,#42H ;OE=0 允许U1输出 LE=1 允许U1 输入
LP01: MOV A,#00H ;清除累加器
MOVC A,@A+DPTR ;查表
CJNE A,#1BH,LP10 ;取出的代码不是结束码,则进行下一步操作
JMP MAIN11 ;是结束码,则重新进行操作
LP10: MOV P2,A ;将A中的值送P2口,显示
LCALL DELAY ;等待1s
INC DPTR ;数据指针加1,指向下1个码
JMP LP01 ;返回,取码
MAIN11:MOV DPTR,#TABLE1 ;TABLE表的地址存入DPTR
MOV P3,#81H ;OE=0 允许U1输出 LE=1 允许U1 输入
LP11: MOV A,#00H ;清除累加器
MOVC A,@A+DPTR ;查表
CJNE A,#1BH,LP12 ;取出的代码不是结束码,则进行下一步操作
JMP MAIN30 ;是结束码,则重新进行操作
LP12: MOV P2,A ;将A中的值送P2口,显示
LCALL DELAY ;等待1s
INC DPTR ;数据指针加1,指向下1个码
JMP LP11 ;返回,取码
MAIN20:MOV DPTR,#TABLE2
MOV P3,#42H
LP20: MOV A,#00H
MOVC A,@A+DPTR
CJNE A,#1BH,LP21
JMP MAIN21
LP21: MOV P2,A
LCALL DELAY
INC DPTR
JMP LP20
MAIN21:MOV DPTR,#TABLE2
MOV P3,#80H
LP22: MOV A,#00H
MOVC A,@A+DPTR
CJNE A,#1BH,LP23
JMP MAIN30
LP23: MOV P2,A
LCALL DELAY
INC DPTR
JMP LP22
MAIN30:MOV DPTR,#TABLE3
MOV P3,#02H
LP30: MOV A,#00H
MOVC A,@A+DPTR
CJNE A,#1BH,LP31
JMP MAIN31
LP31: MOV P2,A
LCALL DELAY
INC DPTR
JMP LP30
MAIN31:MOV DPTR,#TABLE3
MOV P3,#80H
LP32: MOV A,#00H
MOVC A,@A+DPTR
CJNE A,#1BH,LP33
JMP MAIN10
LP33: MOV P2,A
LCALL DELAY
INC DPTR
JMP LP32
DELAY: MOV R7,#10
DE1: MOV R6,#200
DE2: MOV R5,#124
DJNZ R5,$
DJNZ R6,DE2
DJNZ R7,DE1
RET
TABLE1:DB 01H,02H,04H,08H,10H
DB 20H,40H,80H,1BH
RET
TABLE2:DB 01H,03H,07H,0fH,1fH
DB 3fH,7fH,0ffH,1BH
RET
TABLE3:DB 0feH,0fcH,0f8H,0f0H,0e0H
DB 0c0H,80H,00H,1BH
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -