📄 myproj.asm
字号:
org 0000h
LJMP Main
RS EQU P2.0
RW EQU P2.1
E EQU P2.2
org 0100H
Main:
Call InitLCD
mov DPTR,#DATE
mov R0,#03h
mov R2,#0AH
Call WriteStrC
mov DPTR,#CUSER
mov R0,#044h
mov R2,#06H
Call WriteStrC
jmp $
;初始化LCD
InitLCD:
MOV A,#038H
LCALL EnterI
LCALL LcdBUSY ;判忙
MOV A,#038H ;设置为8总线16*2 5*8点阵
LCALL EnterI
MOV A,#01H ;清屏
LCALL EnterI
MOV A,#06H ;设读写字符时地址加1,且整屏显示不移动
LCALL EnterI
MOV A,#0FH ;开显示,开光标显示,光标和光标所在的字符闪烁
LCALL EnterI
LCALL WRCGRAM
LCALL Delay
ret
;LCD判忙操作
LcdBUSY:
PUSH ACC
CLR RS
SETB RW
TT0:
SETB E
MOV A,P1
CLR E
ANL A,#80H
JNZ TT0
POP ACC
RET
;显示表结构数据 R0位置 DPTR字符首址 R2个数
WriteStrC:
mov R4,#00h
Write:
mov A,R4
movc A,@A+DPTR
mov R3,A
Call WriteByte
inc R0
inc R4
DJNZ R2,Write
ret
;显示内存中数据R0位置 R1源地址 R2个数
WriteStrD:
mov A,@R1
mov R3,A
Call WriteByte
inc R0
inc R1
DJNZ R2,WriteStrD
ret
;R0位置 R3字符
WriteByte: ;送单个字符
mov A,R0
add A,#80H
Call EnterI
mov A,R3
Call EnterD
ret
EnterI: ;送命令
Clr RS
CLR RW
SETB E
MOV P1,A
CLR E
Call Delay
RET
EnterD: ;送数据
SETB RS
CLR RW
SETB E
MOV P1,A
CLR E
Call Delay
RET
;字入自定义字模程序
WRCGRAM:
MOV A,#40H ;从00H开始存放
ACALL EnterI
MOV R0,#030H ;年 月 日
MOV DPTR,#TBZI
CGRAM1:
CLR A
MOVC A,@A+DPTR
ACALL EnterD
INC DPTR
DJNZ R0,CGRAM1
RET
Delay: ;延时子程序
mov r7,#2H
d1:mov r6,#255
d2:djnz r6,d2
djnz r7,d1
ret
FORYOUP: DB 46H,6FH,72H,79H,6FH,75H,70H
WELCOME: DB 57H,65H,6CH,63H,6FH,6DH,65H
DATE: DB 32H,30H,30H,38H,2Dh,30H,37H,2DH,32H,39H
TIME: DB 31H,31H,3AH,31H,31H,3AH,33H,36H
CNAME: DB 'ABC'
CUSER: DB 00H,01H,02H,03H,04H,05H
;****************************************************************
;字模数据定义代码
;****************************************************************
;为自编写字模用WRCGRAM子程序写入1602LCD夜晶显示器CGRAM存储器
;****************************************************************
TBZI: DB 08H,0FH,12H,0FH,0AH,1FH,02H,02H ;年
DB 0FH,09H,0FH,09H,0FH,09H,11H,00H ;月
DB 0FH,09H,09H,0FH,09H,09H,0FH,00H ;日
db 00h,17h,0ch,14h,0ch,0ch,17h,00h ;汇
db 04h,1fh,08h,0fh,0eh,0dh,00h,00h ;友
db 00h,1fh,04h,0fh,05h,05h,1fh,00h ;五
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -