📄 rt12864m.asm
字号:
ORG 0000H
LJMP MAIN
ORG 0100H
COMMAND EQU 30H
DATA1 EQU 31Hi
DATA2 EQU 32H
DATA3 EQU 33H
RS EQU P2.5
RW EQU P2.6
E EQU P2.7
;#define LCD_RS P2_5
;#define LCD_RW P2_6
;define LCD_EN P2_7
;define BUSY P0_7
;********延时程序**************************
DELAY:
MOV R6,#00H
MOV R7,#00H
DELAY1:
NOP
DJNZ R7,DELAY1
DJNZ R6,DELAY1
RET
;********读BF和AC值************************
PR0:
PUSH ACC
MOV P0,#0FFH
CLR RS
SETB RW
SETB E
MOV COMMAND,P0
CLR E
POP ACC
RET
;*********写指令代码************************
PR1:
PUSH ACC
CLR RS
SETB RW
PR11:MOV P0,#0FFH
SETB E
MOV A,P0
CLR E
JB ACC.7,PR11
CLR RW
MOV P0,COMMAND
SETB E
CLR E
POP ACC
RET
;*********写显示数据************************
PR2:
PUSH ACC
CLR RS
SETB RW
PR21:MOV P0,#0FFH
SETB E
MOV A,P0
CLR E
JB ACC.7,PR21
SETB RS
CLR RW
MOV P0,DATA1
SETB E
CLR E
POP ACC
RET
;*********读显示数据************************
PR3:
PUSH ACC
CLR RS
SETB RW
PR31:MOV P0,#0FFH
SETB E
MOV A,P0
CLR E
JB ACC.7,PR31
SETB RS
SETB RW
MOV P0,#0FFH
SETB E
MOV COMMAND,P0
CLR E
POP ACC
RET
;************写CGROM*************************
CG:
LCALL PR1
MOV R0,#8
CG1:
MOV DATA1,DATA3
LCALL PR2
LCALL PR2
MOV DATA1,DATA2
LCALL PR2
LCALL PR2
DJNZ R0,CG1
RET
;***********写DDRAM*************************
DD:
LCALL PR1
MOV R0,#8
MM: MOV DATA1,#00H
LCALL PR2
MOV DATA1,DATA2
LCALL PR2
DJNZ R0,MM
RET
;**********主程序****************************
MAIN:
MOV SP,#67H
MOV COMMAND,#30H
CLR RS
SETB RW
MOV P0,#0FFH
SETB E
MOV A,COMMAND
MOV A,P0
CLR E
LCALL DELAY
MOV COMMAND,#30H
CLR RS
SETB RW
MOV P0,#0FFH
SETB E
MOV A,COMMAND
MOV A,P0
CLR E
LCALL DELAY
MOV COMMAND,#30H ;功能设置 8位数据,基本指令
LCALL PR1
MOV COMMAND,#0CH ;显示状态 ON,游标OFF,反白OFF
LCALL PR1
MOV COMMAND,#01H ;清除显示
LCALL PR1
MOV COMMAND,#02H ;地址归位
LCALL PR1
MOV COMMAND,#80H ;设置DDRAM地址
LCALL PR1
LCALL DELAY
MOV R0,#10H ;显示HCGROM
MOV DATA1,#02H
L: LCALL PR2
INC DATA1
DJNZ R0,L
MOV COMMAND,#90H
LCALL PR1
MOV DATA1,#41H
MOV R0,#10H
L1: LCALL PR2
INC DATA1
DJNZ R0,L1
MOV COMMAND,#88H
LCALL PR1
MOV DATA1,#51H
MOV R0,#10H
L2: LCALL PR2
INC DATA1
DJNZ R0,L2
MOV COMMAND,#98H
LCALL PR1
MOV DATA1,#61H
MOV R0,#10H
L3: LCALL PR2
INC DATA1
DJNZ R0,L3
LCALL DELAY
LCALL DELAY
LCALL DELAY
;*************写CGRAM***************************
MOV COMMAND,#40H
MOV DATA3,#0FFH
MOV DATA2,#00H
LCALL CG
MOV COMMAND,#50H
MOV DATA3,#00H
MOV DATA2,#0FFH
LCALL CG
MOV COMMAND,#60H
MOV DATA3,#0AAH
MOV DATA2,#0AAH
LCALL CG
MOV COMMAND,#70H
MOV DATA3,#55H
MOV DATA2,#55H
LCALL CG
MOV COMMAND,#80H
MOV DATA2,#00H
LCALL DD
MOV COMMAND,#90H
MOV DATA2,#00H
LCALL DD
MOV COMMAND,#88H
MOV DATA2,#00H
LCALL DD
MOV COMMAND,#98H
MOV DATA2,#00H
LCALL DD
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV COMMAND,#80H
MOV DATA2,#02H
LCALL DD
MOV COMMAND,#90H
MOV DATA2,#02H
LCALL DD
MOV COMMAND,#88H
MOV DATA2,#02H
LCALL DD
MOV COMMAND,#98H
MOV DATA2,#02H
LCALL DD
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV COMMAND,#80H
MOV DATA2,#04H
LCALL DD
MOV COMMAND,#90H
MOV DATA2,#04H
LCALL DD
MOV COMMAND,#88H
MOV DATA2,#04H
LCALL DD
MOV COMMAND,#98H
MOV DATA2,#04H
LCALL DD
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV COMMAND,#80H
MOV DATA2,#06H
LCALL DD
MOV COMMAND,#90H
MOV DATA2,#06H
LCALL DD
MOV COMMAND,#88H
MOV DATA2,#06H
LCALL DD
MOV COMMAND,#98H
MOV DATA2,#06H
LCALL DD
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV COMMAND,#40H
MOV DATA3,#0AAH
MOV DATA2,#55H
LCALL CG
MOV COMMAND,#50H
MOV DATA3,#55H
MOV DATA2,#0AAH
LCALL CG
MOV COMMAND,#60H
MOV DATA3,#0FFH
MOV DATA2,#0FFH
LCALL CG
MOV COMMAND,#80H
MOV DATA2,#00H
LCALL DD
MOV COMMAND,#90H
MOV DATA2,#00H
LCALL DD
MOV COMMAND,#88H
MOV DATA2,#00H
LCALL DD
MOV COMMAND,#98H
MOV DATA2,#00H
LCALL DD
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV COMMAND,#80H
MOV DATA2,#02H
LCALL DD
MOV COMMAND,#90H
MOV DATA2,#02H
LCALL DD
MOV COMMAND,#88H
MOV DATA2,#02H
LCALL DD
MOV COMMAND,#98H
MOV DATA2,#02H
LCALL DD
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV COMMAND,#80H
MOV DATA2,#04H
LCALL DD
MOV COMMAND,#90H
MOV DATA2,#04H
LCALL DD
MOV COMMAND,#88H
MOV DATA2,#04H
LCALL DD
MOV COMMAND,#98H
MOV DATA2,#04H
LCALL DD
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV COMMAND,#01H
LCALL PR1
MOV COMMAND,#80H
LCALL PR1
MOV DPTR,#CHINESE1
MOV R0,#10H
CHINA1:
CLR A
MOVC A,@A+DPTR
MOV DATA1,A
LCALL PR2
INC DPTR
DJNZ R0,CHINA1
MOV COMMAND,#90H
LCALL PR1
MOV DPTR,#CHINESE2
MOV R0,#10H
CHINA2:
CLR A
MOVC A,@A+DPTR
MOV DATA1,A
LCALL PR2
INC DPTR
DJNZ R0,CHINA2
MOV COMMAND,#88H
LCALL PR1
MOV DPTR,#CHINESE3
MOV R0,#10H
CHINA3:
CLR A
MOVC A,@A+DPTR
MOV DATA1,A
LCALL PR2
INC DPTR
DJNZ R0,CHINA3
MOV COMMAND,#98H
LCALL PR1
MOV DPTR,#CHINESE4
MOV R0,#10H
CHINA4:
CLR A
MOVC A,@A+DPTR
MOV DATA1,A
LCALL PR2
INC DPTR
DJNZ R0,CHINA4
LCALL DELAY
LCALL DELAY
LCALL DELAY
LJMP MAIN
CHINESE1:
; DB 0C8H,0F0H,0CCH,0D8H,0B5H,0E7H,0D7H,0D3H,0BBH,0B6H,0D3H,0ADH,0C4H,0FAH,0ECH,0F4H
DB "单片机培训网最新"
CHINESE2:
;DB 0D6H,0D0H,0CEH,0C4H,0D7H,0D6H,0BFH,0E2H,0D2H,0BAH,0BEH,0A7H,0CFH,0D4H,0CAH,0BEH
DB "推出全新改版实验"
CHINESE3:
;DB 0C8H,0F0H,0CCH,0D8H,0B5H,0E7H,0D7H,0D3H,0BBH,0B6H,0D3H,0ADH,0C4H,0FAH,0ECH,0F4H
DB "板,更容易操作,"
CHINESE4:
;DB 0D6H,0D0H,0CEH,0C4H,0D7H,0D6H,0BFH,0E2H,0D2H,0BAH,0BEH,0A7H,0CFH,0D4H,0CAH,0BEH
DB "完全为你作想!!"
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -