用51汇编写的读12864液晶(KS0108驱动)显示数据
液晶显示控制驱动器KS0108应用很广,适合它的使用资料也有很多,在此不多说。
以下的汇编代码在KM12864A2 KM12864J3上通过了测试。对于使用过KS0108液晶的用户来说应该很好理解!(相关产品请点这里)
首先给出写数据/指令的代码如下:
out0: lcall busy1 ; 写左区指令
setb cs1
clr cs2
clr rs
clr r_w
setb e
mov dbus,a
nop
clr e
ret
out1: lcall busy2 ; 写右区指令
clr cs1
setb cs2
clr rs
clr r_w
setb e
mov dbus,a
nop
clr e
ret
data0:
lcall busy1 ;写左区显示数据
CLR CS2
setb CS1
SETB RS
CLR R_W
SETB E
MOV DBUS,A
NOP
CLR E
RET
data1: lcall busy2 ;写右区显示数据
CLR CS1
setb CS2
SETB RS
CLR R_W
SETB E
MOV DBUS,A
NOP
CLR E
ret
busy1: ;读左区状态
push acc
setb cs1
clr cs2
setb r_w
clr rs
back1: mov p1,#0ffh
setb e
mov a,dbus
clr e
anl a,#80h
jnz back1
pop acc
ret
busy2: ;读右区状态
push acc
setb cs2
clr cs1
setb r_w
clr rs
back2: mov p1,#0ffh
setb e
mov a,dbus
clr e
anl a,#80h
jnz back2
pop acc
ret
data_read0: ;读左区数据
lcall busy1
setb cs1
clr cs2
setb r_w
setb rs
setb e
mov a,dbus
clr e
ret
data_read1: ;读右区显示
lcall busy2
clr cs1
setb cs2
setb r_w
setb rs
setb e
mov a,dbus
clr e
ret
;=============================
dis_bmp: ;显示一128*64点阵的图片
mov r1,#0b8h
mov r2,#8
next_row1:
mov r3,#128
mov a,r1
lcall out0
lcall out1
mov a,#40h
lcall out0
lcall out1
lcd_left1:
clr a
movc a,@a+dptr
lcall data0
dec r3
inc dptr
cjne r3,#64,lcd_left1
lcd_right1:
clr a
movc a,@a+dptr
lcall data1
inc dptr
djnz r3,lcd_right1
inc r1
djnz r2,next_row1
ret
dis_cpl: ;将显示的图片数据读出来,取反后再重新显示
temp equ 66h
mov r1,#0b8h ;页首地址
mov r2,#8 ;页地址计数
next_row:
mov r3,#40H ;列首地址
mov a,r1 ;设置下一页地址(左右区相同)
lcall out0
lcall out1
lcd_left: ;处理左边显示区
mov a,r3
lcall out0 ;设置读取数据的地址
lcall data_read0;空操作(在重新设置地址时需要读两次)
lcall data_read0;读取数据(第二次读到的才是真正的DDRAM内容) //读取的数据存放在ACC寄存器里
cpl a ;取反读到的数
mov temp,a ;保存读取到的数据
mov a,r3
lcall out0 ;设置写入数据的地址
mov a,temp ;取刚才读到的数据,并写入LCD
lcall data0
inc r3
cjne r3,#80h,lcd_left ;总共有64列
mov r3,#40h
lcd_right: ;处理右边显示区
mov a,r3
lcall out1
lcall data_read1
lcall data_read1
cpl a
mov temp,a
mov a,r3
lcall out1
mov a,temp
lcall data1
inc r3
cjne r3,#80h,lcd_right
inc r1
djnz r2,next_row
ret
这些内容来自LCD在线(http://www.lcdinline.com),如需转载,请联系网站管理QQ:56154083
- 相关文章
- 汇编驱动内置ST7920的字库液晶程序|LCD12864,S..[07-30]
- KM12832A-图形点阵液晶模块|LCD12832[04-20]
- MCS-51内核的单片机汇编指令解析[03-21]
- KM12864(KS0108)系列液晶程序-汇编[03-17]
- 带字库液晶12864-12/12232F等C51驱动程序和电..[03-17]
- 汉字库液晶KM12864-19B[03-17]
- 最新文章
- 汇编驱动内置ST7920的字库液晶程序|LCD12864,S..[07-30]
- 中文字库模块-KM24064A-GB规格,接口说明[06-30]
- 串行FLASH SSF1101 入门介绍[06-13]
- 图形点阵液晶KM240128A|T6963或兼容控制器[06-08]
- Step by step教你写HT1621/HT1622驱动..[04-22]
- 触摸屏学习及触控程序开发[04-22]
