📄 lcd_hz.asm
字号:
;*******文件名:LCD_HZ.ASM***************************
;第二行显示"欢迎使用",
;第三行显示"单片机实验系统"
W_C_ADD XDATA 2070H ;
W_D_ADD XDATA 2071H ;
R_S_ADD XDATA 2072H ;
R_D_ADD XDATA 2073H ;
;*************************************************
DATA1 EQU 30H ;
DATA2 EQU 31H ;
N EQU 32H ;
ADDR EQU 33H ;
;*************************************************
ORG 0000H ;
LJMP BEGIN ;
BEGIN: MOV SP,#60H ;
LCALL INI ;调用初始化子程序
MOV ADDR,#80H ;显示第一行
MOV N,#08H ;
MOV DPTR,#DHZTAB1;
LCALL DHZ ;调用汉字显示子程序
MOV ADDR,#90H ;显示第二行
MOV N,#08H ;
MOV DPTR,#DHZTAB2;
LCALL DHZ ;
JMP $ ;
;*************************************************
DHZ: MOV A,ADDR ;汉字显示子程序
MOV B,N ;
LCALL CMD_LCM ;
DHZ0: CLR A ;
MOVC A,@A+DPTR ;
LCALL WRITE_LCM ;
INC DPTR ;
CLR A ;
MOVC A,@A+DPTR ;
LCALL WRITE_LCM ;
INC DPTR ;
DJNZ B,DHZ0 ;
RET
;*************************************************
INI: PUSH ACC ;初始化子程序
MOV A,#30H ;
LCALL CMD_LCM ;
LCALL DELAY ;
MOV A,#30H ;
LCALL CMD_LCM ;
LCALL DELAY ;
MOV A,#30H ;
LCALL CMD_LCM ;
MOV A,#0CH ;
LCALL CMD_LCM ;
MOV A,#01H ;
LCALL CMD_LCM ;
MOV A,#02H ;
LCALL CMD_LCM ;
POP ACC ;
RET
;**********************************
DELAY: MOV R6,#00H ;延时子程序
MOV R7,#00H
DELAY1:
NOP
DJNZ R7,DELAY1
DJNZ R6,DELAY1
RET
;*************************************************
CHKBUSY:PUSH DPH ;忙状态检测子程序
PUSH DPL ;
PUSH PSW ;
PUSH ACC ;
MOV DPTR, #R_S_ADD;
CHK: MOVX A, @DPTR ;
JB ACC.7, CHK ;
POP ACC ;
POP PSW ;
POP DPL ;
POP DPH ;
RET
;*************************************************
CMD_LCM:PUSH DPH ;写命令到LCM子程序
PUSH DPL ;
LCALL CHKBUSY ;
MOV DPTR,#W_C_ADD;
MOVX @DPTR,A ;
POP DPL ;
POP DPH ;
RET
;*************************************************
WRITE_LCM: ;写数据到LCM子程序
PUSH DPH ;
PUSH DPL ;
LCALL CHKBUSY ;
MOV DPTR,#W_D_ADD ;
MOVX @DPTR, A ;
POP DPL ;
POP DPH ;
RET
DHZTAB1: DB 0BBH,0B6H,0D3H,0ADH,0CAH,0B9H,0D3H,0C3H,20H,20H,20H,20H,20H,20H,20H,20H,20H,20H
DHZTAB2: DB 20H,20H,0B5H,0A5H,0C6H,0ACH,0BBH,0FAH,0CAH,0B5H,0D1H,0E9H,0CFH,0B5H,0CDH,0B3H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -