📄 cm240128_1.asm
字号:
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP ZHONGDUAN
ORG 0035H
ZHONGDUAN:
HERE: SJMP HERE
RET ;**********************************************
DATA1 EQU 30H ;第一参数单元
DATA2 EQU 31H ;第二参数/数据单元
COMMAND EQU 32H ;指令代码单元
C_ADD EQU 8100H ;指令通道地址
D_ADD EQU 8000H ;数据通道地址
LI1 EQU 33H
LI2 EQU 34H ;***********************************************
BUSY1: PUSH DPH
PUSH DPL
MOV DPTR,#C_ADD
MOVX A,@DPTR
POP DPL
POP DPH
RET ;***********************************************
BUSY: LCALL BUSY1
JNB ACC.0, BUSY1
JNB ACC.1, BUSY1
RET ;*****************************************
WRITE_COMMAND:PUSH DPH
PUSH DPL
LCALL BUSY
MOV A,COMMAND
MOV DPTR,#C_ADD
MOVX @DPTR,A
POP DPL
POP DPH
RET WRITE_DATA:
PUSH DPH
PUSH DPL
LCALL BUSY
MOV A,DATA2
MOV DPTR,#D_ADD
MOVX @DPTR,A
POP DPL
POP DPH
RET
MS40: MOV R7,#0E8H
MS2: MOV R6,#0FFH
MS1: DJNZ R6,MS1
DJNZ R7,MS2
RET
DELAY: MOV R5,#05H
DELAY1: LCALL MS40
DJNZ R5,DELAY1
RET ;*****************************************************
MAIN: MOV SP,#20H
MOV P3,#0FFH
SETB EA
SETB EX0
SETB IT0
MOV COMMAND,#90H
LCALL WRITE_COMMAND
LCALL MS40
MOV DATA2,#00H
LCALL WRITE_DATA
MOV DATA2,#00H
LCALL WRITE_DATA
MOV COMMAND,#40H ;文本显示区首地址设置
LCALL WRITE_COMMAND
MOV DATA2,#20H
LCALL WRITE_DATA
MOV DATA2,#00H
LCALL WRITE_DATA
MOV COMMAND,#41H ;文本显示区宽度设置
LCALL WRITE_COMMAND
MOV DATA2,#00H
LCALL WRITE_DATA
MOV DATA2,#08H
LCALL WRITE_DATA
MOV COMMAND,#42H ;图形显示区首地址设置
LCALL WRITE_COMMAND
MOV DATA2,#1EH
LCALL WRITE_DATA
MOV DATA2,#00H
LCALL WRITE_DATA
MOV COMMAND,#43H ;图形显示宽度设置
LCALL WRITE_COMMAND
MOV COMMAND,#80H ;逻辑或,用CGROM
LCALL WRITE_COMMAND
MOV COMMAND,#9CH ; 启动文本.图形.光标显示
LCALL WRITE_COMMAND ;***************************************888 ;显示全屏
MOV DATA2,#00H
LCALL WRITE_DATA
MOV DATA2,#00H
LCALL WRITE_DATA
MOV COMMAND,#24H
LCALL WRITE_COMMAND
MOV R3,#00H
MOV COMMAND,#0B0H
LCALL WRITE_COMMAND
MOV R4,#20H
YY1: NOP
YY: MOV A,#0FFH
MOV DATA2,A
LCALL WRITE_DATA
DJNZ R3,YY
DJNZ R4,YY1
MOV COMMAND,#0B2H
LCALL WRITE_COMMAND
LCALL MS40 ;*******************************************
CLEAR1: MOV DATA2,#00H
LCALL WRITE_DATA
MOV DATA2,#00H
LCALL WRITE_DATA
MOV COMMAND,#24H ;显示地址设置
LCALL WRITE_COMMAND
MOV R3,#00H
MOV R4,#20H
MOV COMMAND,#0B0H ;自动写入
LCALL WRITE_COMMAND
M1: NOP
M: MOV A,#00H
MOV DATA2,A
LCALL WRITE_DATA
DJNZ R3,M
DJNZ R4,M1
MOV COMMAND,#0B2H ;推出自动写入
LCALL WRITE_COMMAND ; ****************************************
MOV DATA2,#00H
LCALL WRITE_DATA
MOV DATA2,#00H
LCALL WRITE_DATA
MOV COMMAND,#24H ;显示地址设置
LCALL WRITE_COMMAND
MOV COMMAND,#9CH
LCALL WRITE_COMMAND
MOV DATA2,#05H
LCALL WRITE_DATA
MOV DATA2,#03H
LCALL WRITE_DATA
MOV COMMAND,#21H
LCALL WRITE_COMMAND ;显示字库
MOV R3,#00H
MOV R4,#7FH
MOV COMMAND,#0B0H ;自动写入
LCALL WRITE_COMMAND
MOV A,#0FFH ;写入英文字库
L: INC A
MOV DATA2,A
LCALL WRITE_DATA
DJNZ R4,L
MOV COMMAND,#0B2H ;退出自动写入
LCALL WRITE_COMMAND
LCALL DELAY ;########################################### ; 写CGROM 80H
MOV DATA2,#03H
LCALL WRITE_DATA
MOV DATA2,#00H
LCALL WRITE_DATA
MOV COMMAND,#22H
LCALL WRITE_COMMAND
MOV DATA2,#00H
LCALL WRITE_DATA
MOV DATA2,#1CH
LCALL WRITE_DATA
MOV COMMAND,#24H
LCALL WRITE_COMMAND
MOV R2,#2
MOV R0,#0FFH
MOV COMMAND,#0B0H
LCALL WRITE_COMMAND
MOV DPTR,#TEST
LL2: NOP
LL: CLR A
MOVC A, @A+DPTR
MOV DATA2,A
LCALL WRITE_DATA
INC DPTR
SETB P1.5
DJNZ R0,LL
DJNZ R2,LL2
MOV DATA2,#0B2H
LCALL WRITE_DATA
SETB P1.4 ;#############################################
MOV DATA2,#00H
LCALL WRITE_DATA
MOV DATA2,#00H
LCALL WRITE_DATA
MOV COMMAND,#24H ;显示地址设置
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -