📄 lcd.asm
字号:
SCL BIT P1.5
SDA BIT P1.4
RS BIT P3.3
R_W BIT P3.5
EN BIT P3.4
AAB BIT P1.7
CLK BIT P1.6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ORG 0000H
MAIN:
MOV SP,#60H
LCALL LCD
MOV R1,#81H
LCALL DELAY
LCALL WC
MOV R2,#57H
LCALL DIP
MOV R2,#4FH
LCALL DIP
SJMP $
;**************************************
;LCD
LCD:
LCALL INITIAL
MOV R1,#80H
LCALL DELAY
LCALL WC
MOV R2,#57H
LCALL DIP
MOV R2,#4FH
LCALL DIP
MOV R2,#4EH
LCALL DIP
MOV R2,#44H
LCALL DIP
MOV R2,#45H
LCALL DIP
MOV R2,#52H
LCALL DIP
MOV R2,#46H
LCALL DIP
MOV R2,#55H
LCALL DIP
MOV R2,#4CH
LCALL DIP
MOV R2,#21H
LCALL DIP
MOV R2,#21H
LCALL DIP ;显示WONDERFUL!!
MOV R1,#0C0H
LCALL DELAY
LCALL WC
MOV R2,#5EH
LCALL DIP
MOV R2,#5FH
LCALL DIP
MOV R2,#5EH
LCALL DIP ;显示^_^
MOV R2,#20H
LCALL DIP ;显示空格
MOV R2,#0C7H
LCALL DIP
MOV R2,#0B6H
LCALL DIP
MOV R2,#0CEH
LCALL DIP
MOV R2,#0B5H
LCALL DIP
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;BUSY: SETB EN
; CLR RS
; SETB R_W
; MOV P1,#0FFH
; MOV A,P1
; JB ACC.7,BUSY
; RET
;-----------------------------
WC: MOV R6, #08H
CLR R_W
CLR RS
SETB EN
MOV A,R1
LOOPC: CLR CLK
RLC A
MOV AAB,C
NOP
NOP
SETB CLK
NOP
NOP
DJNZ R6,LOOPC
CLR CLK
NOP
CLR EN
RET
;-----------------------------
WD:
CLR R_W
SETB RS
SETB EN
MOV R6, #08H
MOV A,R2
LOOPD: CLR CLK
RLC A
MOV AAB,C
NOP
NOP
SETB CLK
NOP
NOP
DJNZ R6,LOOPD
NOP
CLR CLK
CLR EN
RET
;-------------------------------
DIP: LCALL DELAY
LCALL WD
LCALL DELAY
LCALL DELAY
RET
;--------------------------------
INITIAL: MOV R1,#38H
LCALL DELAY
LCALL WC ;功能设置,八位数据……
MOV R1,#06H ;输入方式设置,AC自动加1
LCALL DELAY
LCALL WC
MOV R1,#0FH ;开显示
LCALL DELAY
LCALL WC
MOV R1, #01H ;清显示
LCALL DELAY
LCALL WC
;MOV R1,#16H
;LCALL DELAY
;LCALL WC
RET
;-----------------------------------
DELAY: MOV R5,#00H
DELAY_1: MOV R6,#00H
DJNZ R6,$
DJNZ R5,DELAY_1
RET
;***************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -