📄 两个8×8点阵字符显示.asm
字号:
ORG 00H
START: MOV A,#00H ;清屏
MOV P2,A
MOV P3,A
MOV 30H,#00H ;设置表格指针初始值
LOOP1: MOV R1,#10H ;设定每个字的重复显示次数以便观察显示效果
LOOP2: MOV R6,#8 ;每个字有8个段码值
MOV R4,#00H ;段选初值
MOV R0,30H ;取码指针暂存载入R0
LOOP3: MOV A,R4 ;段选
MOV P1,A
MOV A,R0
MOV DPTR,#TABLE ;表中取段码
MOVC A,@A+DPTR
MOV P2,A ;段码送P0
INC R0 ;指向下一段码并暂存
MOV A,R4
MOV P1,A
INC R4
MOV A,R0
MOV DPTR,#TABLE ;表中取段码
MOVC A,@A+DPTR
MOV P3,A ;段码送P0
INC R0
MOV R3,#10H
LOOP4: MOV R5,#248 ;延时片刻
DJNZ R5,$
DJNZ R3,LOOP4
ANL P3,#00H ;清除屏蔽
ANL P2,#00H
DJNZ R6,LOOP3 ;是否显示完一个字?没有显示完则继续
DJNZ R1,LOOP2 ;每个字显示片刻
LCALL DELAY ;延时
MOV 30H,R0 ;显示完一个字,准备下一个字的显示
CJNE R0,#0DBH,LOOP1;是否显示完,没继续
SJMP START ;重新显示
DELAY: MOV R7,#10
DELA: MOV R6,#100
DEL: MOV R5,#248
DJNZ R5,$
DJNZ R6,DEL
DJNZ R7,DELA
RET
TABLE: DB 00H,04H,00H,03CH,03H,0C4H,1CH,40H ;"A"
DB 07H,40H,00H,0E4H,00H,1CH,00H,04H
DB 18H,00H,10H,00H,10H,04H,1FH,0FCH ;"T"
DB 10H,04H,10H,00H,18H,00H,00H,00H
DB 00H,00H,0EH,38H,11H,44H,10H,84H ;"8"
DB 10H,84H,11H,44H,0EH,38H,00H,00H
DB 00H,00H,07H,00H,08H,8CH,10H,44H ;"9"
DB 10H,44H,08H,88H,07H,0F0H,00H,00H
DB 03H,0E0H,0CH,18H,10H,04H,10H,04H ;"C"
DB 10H,04H,10H,08H,1CH,10H,00H,00H
DB 00H,00H,1FH,98H,10H,84H,11H,04H ;"5"
DB 11H,04H,10H,88H,10H,70H,00H,00H
DB 00H,00H,08H,04H,08H,04H,1FH,0FCH ;"1"
DB 00H,04H,00H,04H,00H,00H,00H,00H
DB 0DBH
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -