;89Cxxxx单片机
sdin bit p1.1 ;数据
sclk bit p1.0 ;时钟
dc bit p1.2 ;1写数据,0写指令
sce bit p1.3 ;片选
res bit p1.4 ;复位,0复位
xadd data 30h ;0-83
yadd data 31h ;0-5
org 0000h
LJMP start
start: clr res ;复位显示屏
nop
nop
setb res
mov a,#00100001b ;功能设定,使用扩充指令
lcall enable ;写指令
mov a,#10011001b ;设定液晶偏置电压
lcall enable ;写指令
mov a,#00100000b ;使用基本指令
lcall enable ;写指令
mov a,#00001100b ;设定显示模式,正常显示
lcall enable ;写指令
lcall deldisp ;清屏
mov xadd,#00h ;
mov yadd,#00h ;
lcall setadd ;设定显示地址
;从这里开始,你想显示什么,把数据放到A,调用write就可以了
;比如
mov a,#0ffh
lcall write
;显示上显示高度为8点的竖条
setadd: mov a,#20h ;设定地址子程序
lcall enable
mov a,yadd
clr acc.7
setb acc.6
clr acc.5
clr acc.4
clr acc.3
lcall enable
mov a,xadd
setb acc.7
lcall enable
ret
deldisp:mov r0,#07 ;清屏子程序
deld1: mov r1,#84
deld2: mov a,#00h
lcall write
djnz r1,deld2
djnz r0,deld1
ret
enable: clr dc ;写指令
write: clr sce ;写数据
mov lcdd,#08h
toto: clr sclk
rlc a
mov sdin,c
setb sclk
djnz lcdd,toto
setb dc
setb sce
ret
end