📄 hanzi.asm
字号:
RS EQU P1.1
RW EQU P1.3
E EQU P1.2
ORG 0000H
AJMP START
ORG 0300H
START: MOV SP,#60H
MAIN: LCALL DELAY
MOV P0,#01H
LCALL ENABLE
MOV P0,#38H
LCALL ENABLE
MOV P0,#0FH
LCALL ENABLE
MOV P0,#06H
LCALL ENABLE
ZMCL: MOV R1,#40H ;数据量是64个。 DISP:MOV R1,#16 LOOP:MOV A,#00H
MOV P0,#40H
LCALL ENABLE
MOV DPTR,#TABLE
LOOP64:MOV A,#00H
MOVC A,@A+DPTR
LCALL DISP
DJNZ R1,LOOP64
LCALL XIANSHI ;可以转向显示程序。
DISP: MOV P0,A
SETB RS
CLR RW
CLR E
LCALL DELAY
SETB E
INC DPTR
RET
XIANSHI:LCALL PCOPY
MOV P0,#80H
LCALL ENABLE
MOV R4,#8
MOV R0,#20H
LOOP16: MOV A,@R0
LCALL DISP
INC R0
DJNZ R4,LOOP16
LJMP XIANSHI
PCOPY: MOV DPTR,#TABLE1
MOV R0,#20H
MOV R3,#8
LOOP: CLR A
MOVC A,@A+DPTR
MOV @R0,A
INC R0
INC DPTR
DJNZ R3,LOOP
RET
ENABLE:CLR RS ;此处没有通过查询来确定是否可以写命令。 ;是通过比较长的延时来实现的。
CLR RW
CLR E
LCALL DELAY
SETB E
RET
DELAY:MOV R7,#255
D1:MOV R6,#255
D2:DJNZ R6,D2
DJNZ R7,D1
RET
TABLE: DB 00H,07H,05H,01H,02H,04H,07H,00H
DB 00H,06H,09H,09H,09H,09H,06H,00H
DB 00H,06H,09H,09H,09H,09H,06H,00H
DB 00H,06H,08H,0FH,09H,09H,06H,00H
DB 04H,0FH,12H,0FH,0AH,1FH,02H,02H
DB 06H,09H,09H,06H,09H,09H,06H,00H
DB 00H,07H,05H,01H,02H,04H,07H,00H
DB 1FH,01H,02H,02H,02H,02H,02H,02H
TABLE1: DB 00H,01H,02H,03H,04H,05H,06H,07H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -