📄 hd61202.txt
字号:
;寄存器
lcd_data equ 25h ;存要写入液晶的数据
lcd_com equ 26h ;存要写入液晶的指令
num_page equ 27h ;液晶页号,0--7
num_col equ 28h ;液晶列号,0--127
a0 equ p2.2
e equ p2.3
r_w equ p2.4
di equ p2.5 ;液晶管脚
csb equ p2.6
csa equ p2.7
lcd_db equ p0
;***********************************************
prl0: setb csa ;写指令左半屏
clr csb
clr di
setb r_w
prl01: mov lcd_db,#0ffh
setb e
mov a,lcd_db
clr e
jb acc.7,prl01
clr r_w
mov lcd_db,lcd_com
setb e
clr e
clr csa
ret
prl1: setb csa ;写数据左半屏
clr csb
clr di
setb r_w
prl11: mov lcd_db,#0h
setb e
mov a,lcd_db
clr e
jb acc.7,prl11
setb di
clr r_w
mov lcd_db,lcd_data
setb e
clr e
clr csa
ret
prl2: setb csa ;读数据左半屏
clr csb
clr di
setb r_w
prl21: mov lcd_db,#0ffh
setb e
mov a,lcd_db
clr e
jb acc.7,prl21
setb di
mov lcd_db,#0ffh
setb e
mov lcd_data,lcd_db
clr e
clr csa
ret
prr0: clr csa ;写指令右半屏
setb csb
clr di
setb r_w
prr01: mov lcd_db,#0ffh
setb e
mov a,lcd_db
clr e
jb acc.7,prr01
clr r_w
mov lcd_db,lcd_com
setb e
clr e
clr csb
ret
prr1: clr csa ;写数据右半屏
setb csb
clr di
setb r_w
prr11: mov lcd_db,#0ffh
setb e
mov a,lcd_db
clr e
jb acc.7,prr11
setb di
clr r_w
mov lcd_db,lcd_data
setb e
clr e
clr csb
ret
prr2: clr csa ;读数据右半屏
setb csb
clr di
setb r_w
prr21: mov lcd_db,#0ffh
setb e
mov a,lcd_db
clr e
jb acc.7,prr21
setb di
mov lcd_db,#0ffh
setb e
mov lcd_data,lcd_db
clr e
clr csb
ret
disp_rbyte: push psw ;从num_col和num_page读一个字节
setb rs1
clr rs0
mov a,num_col ;use r4
mov r4,num_col
clr c
subb a,#64
jc disp_rbyte1
anl a,#3fh
orl a,#40h
mov lcd_com,a
call prr0 ;设列地址
mov a,num_page
anl a,#07h
orl a,#0b8h
mov lcd_com,a ;设页地址
call prr0
call prr2 ;读出的数据在lcd_data中
call prr2
sjmp disp_rbyte2
disp_rbyte1: mov a,num_col
anl a,#3fh
orl a,#40h
mov lcd_com,a
call prl0 ;设列地址
mov a,num_page
anl a,#07h
orl a,#0b8h
mov lcd_com,a ;设页地址
call prl0
call prl2
call prl2
;设定左屏行号和列号,写数据
disp_rbyte2: pop psw
ret
disp_wbyte: push psw ;;从num_col和num_page写一个字节,R4=要写的字节
setb rs1
clr rs0
mov a,num_col
mov r4,num_col
clr c
subb a,#64
jc disp_wbyte1
anl a,#3fh
orl a,#40h
mov lcd_com,a
call prr0 ;设列地址
mov a,num_page
anl a,#07h
orl a,#0b8h
mov lcd_com,a ;设页地址
call prr0
call prr1
;设定右屏行号和列号,写数据
sjmp disp_wbyte2
disp_wbyte1: mov a,num_col
anl a,#3fh
orl a,#40h
mov lcd_com,a
call prl0 ;设列地址
mov a,num_page
anl a,#07h
orl a,#0b8h
mov lcd_com,a ;设页地址
call prl0
call prl1
;设定左屏行号和列号,写数据
disp_wbyte2: pop psw
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -