2024年5月9日发(作者:隐锐进)
维普资讯
一
28一 《国外电子元器 ̄)2007#-g 1期 2007年1月
●应用与设计
基才ST7920控制器的液晶显示器LG128645
画线功能的实现
刘升
(淮北煤炭师范学院计算机科学与技术系,安徽淮北235000)
摘要:论述了基于SrI7920控制器的液晶显示器LG128645的画点和画线方法,给出了相应的硬件
接口电路和基于89C51的详细实现程序,其他类型的LCD也可参照本文实现图形绘制功能。
关键词:LG128645;液晶显示器;S17920;89C51;画点;画线
中图分类号:TN873 文献标识码:A 文章编号:1006—6977(2007}01—0028-03
Implementation of draw-line function on LG128645 LCD
.
based on ST7920
LIU Sheng
(Department ofComputer Science and Technology,Huaibei Cod Industry 口c胁 College.Huaibei 235000,China)
Abstract:The method of drawing dot and drawing line on the LG128645 which uses ST7920 as its
controller is introduced.The speciifc hardware interface circuit and detailed 89C5 1 program are given.
hiTs scheme.is a reference to other tye pof.LCD・
Key words:LG128645;LCD;ST7920;89C51;draw—dot;draw—line -
.
1 引言
仪表用中文液晶显示器LGl28645采用台湾矽
创电子公司的ST7920作为控制/驱动器,该器件内
论采用哪种接口方式,必须保证单片机不仅能向
S 920控制器的命令寄存器或数据寄存器中写入
信息,而且也能读取信息,这是因为画图是按点控
制的,而S,I7920必须连续向绘图RAM中写入两个
字节数据,即一次必须画l6个点,单片机通过控制
含8 t92个国标简体汉字(16x16点阵)和 128个英
文符号字库(16x8点阵)。用户输入国标码或ASCII
码即可实现文本显示(满屏l6个汉字×4行)。另外,
器提供的屏读命令,将当前地址所指向的连续两个
单元的值读出来.再把将要写入的每个单元的值与
原来的值相或,这样既不会破坏原来的值,又可以
写入新值,实现了所要求的按点控制的方式,这也
是LG128645液晶显示器实现画点和绘制其他图形
还提供64x256点的绘图RAM(简称GDRAM),可以
与文字混合显示,而且内含字型产生RAM(简称
CGRAM),提供可编程造字功能。在很多测试类设备
中,需要使用液晶显示的设备能够实时显示曲线以
判断被测设备的工作状况或实时显示被测物理量
的关键。
本文编程示例是以图l的电路为例.采用总线
方式连接,LG128645的数据线与AT89C51的P0口
的变化情况.这就要求能够用点阵式液晶显示器实
现画点、画线和绘制其他图形。
相连,RS和R/W信号通过一片74LS373获得,复位
信号由单片机的复位信号取反后获得,但必须保证
单片机的复位对地电阻不能大于5 kl1.否则在单片
2接口电路设计
为了实现画点和画线功能,LG128645与单片机
89C51的接祛可以采用I/O连接方式,也可以采用
机复位时.显示屏将不能正常复位。使能信号E的
宽度必须小于读写信号R/W的宽度,由于
LGl28645的读写操作实际上是用E信号下降沿完 总线连接,既可以串行连接,也可以并行连接,但无
维普资讯
基于SrI7920控制器的液晶显示器LGl28645画线功能的实现 一29—
89C51 ,
—
L P10 PO0 芏 / ●●..一 DBO
2 Pl1 P01 38 / 74LS373 \ 明1
3 P12 P02 兰Z 一 \ I D0 Qo 2 f'..一 明2
4
‘ P13 P03
§ 一 \ 曼 D1 O1
‘
fI
...一
DB4
DB3
6 P14 P04 三 一 、 Z D2 O2
6 lI
..一
_} P1 56 P056 / 、、 ! DD34 Q34 1
9
2
●
f
●
}.
..
.一
一
明6DB5
I P
15 f●
..一
DB7
+
''lI ‘ — 1NT1
P17
P20 21
07
、 !璺 D
D6
5 O
O6 l9
5 16 lIS
1NTO P2I 22 D7 Q7 R/w
4.7kQn ll…昔 导
T0
TI P
P23
22 卫
25
24 卜__l l 琵
LE
’ +SVl p
E
oss ible
一LI 』JL 且 丑 +SV}_厂 _一 VDsDs
lI — I9
X1
7
X2 ALE/F 30
P27
28
LG128645
30p0pF F上
7 30pF
口l一l I 1l01
I… _r4  ̄
6
。
_ RRS/ W LH
L:WritO
:DRIanetsaadt rUGti
・
Or
图1 LG128645的接口电路(基于总线方式)
成的,因此可用一片与非f-1 74L500实现,其逻辑表 )
达式为. 4 画点实现
E=P27・ +P27・冗D=1>27・WR・冗D
void pixel(uchar x,uchar y)
3基本读写函数
f,,在指定位置画点函数 坐标范围0.-,127,y坐标范围0--63
uchar id; .
#define RLCDI XBYTE[0x ̄0],,读出忙标志(BF)
uint position=Ox8000;//每次向绘图RAM写入16个点的
#define WLCDI XBYTE[0xfl00],,写指令到指令寄存器
画点位1
#define RLCDD XBYTE[0xffc0]// ̄kRsj寄存器读数据
if(y>31)Iy-=32;x+=128;),,屏128x64时应绘图RAM的
#define WLCDD XBYTE[0 ̄40],,写数据到数据寄存器
256x32
#define uchar unsigned char
position=position>>(x%16);,/确定画点位置
#define uint unsingedint
dwrctrl(ylOx80);_nop_O; // ̄@i坐标Y写入绘图RAM
void dwrctrl(uchar x)
dwrctrl(x/1610x80);_nop_0;,,将水平坐标 写入绘图RAM
l,,写命令 while((RLCDI&Ox80)==Ox8O);i=RLCDD;||芜DUMMY
while((RLCDI&0xS0)=--0xS0);|| 聋 标怎
READ一次
WLCDI--x;
while((RLCDl&OxS0)==OxS0);i=RLCDD;,,从绘图RAM读
1 .
取一个字节数据到
void dwrdata(uchar x)
while((RLCDI&0x80)==Ox80);j=RLCDD;,,读取第2字节数
l,,写数据 ,
据到_『
while((RLCDI&0xS0)=--Ox80);|| 釜 标志 writeXY(x/16,y,position/2561i,(uchar)positionlj);,,写入,实现
WLCDD=x:
画点
) . )
void writeXY(uchar x,uchar y,uchar data1,uchar data2)
I,,在 、y坐标处写两字节数母
5 画线实现
dwrctrl0"10xS0);_nop_0;_nop_0;dwrctrl(xl0xS0);_nop_0;
void line(uchar S_X,uchar s-J,uchar —x,uchar e—
_
nop_O;dwrdata(data1);_nop,O;_nop_O;dwrdata(data2);
I,,画线函数
_
nop_0;
char Err=0,D_x,D0;
维普资讯
一
30-- ‘ 《国外电子元器件>2007#-g 1期 2007年1月
i D- >=D_y)
1
if e-y!(s-y),,如果终点纵坐标大于起. 颤坐标则交筷之
I
D_x mm ex;e_x=s-x -x D-x;
_
.
while(s_x!:e—x)
I
e y’=s
D x:e
y;
y ̄s_y D-x;
__
l 。 .
if(Err>--O)
I
pixelis_x,s_y) ̄/t点
D
_
x=e
_
x—s-x;D
_
y=e_y一 ∥画点步数,D.-y大于
s-y+=1;Err+=(D_y—D-x);
l
else Err+=D0;S_X一=I;pixel(s_x,s-y);
-
或等于0 :
i D.j【>o),,终点在起点右方
I ,
l
l
else
‘
if -x>= ),,横坐标f,l距大于纵坐杼间距
1
while(s-x! -x)
I
-
I
while(s_yl=e—y)
I
if(Err>=O)
I
s-y+=1; :
,
ifE ̄<---O)Err+=D_x;
: Il1 ..
else
Err+=(DL-y—D._x);//Err为s_y的调整因子。决
定s
y是加1还是不变
_
I
s
_
.一 .
x-=l;Err+=(D-x—D );
l
else Err+=D_y;s-x+=1; lfs
x向e
x逼近,步
__
l
s- +=1;lpixel(s_x,s- );
l
I;’, ’。
距为1
pixel(s_x,s—y);
l
l
else,,纵坐标间距大于横坐标间距
l
l
l
1
6结束语
笔者所设计的余氯在线监控仪和智能矿灯充
电架都采用了该液晶模块。通过曲线显示被测量值
的变化情况。效果很好。绘图功能实现的难点主要
whileq(置-y! -y)
l
if0 ̄rr>O)
I
s
—
是画点功能的实现。其他图形功能的实现都是以画
x+=1;
点为基础,因此,读者可根据实际情况绘制需要的
图形。该方法还可以应用于测量等领域。
参考文献:
Err+=(D._x—DL-y);,,此处Err为s-x的调整因
子.决定8
X是否加1
_
l
else Err+=D
_
【l】于龙成,史延龄.仪表用中文LCD与单片机的接
x;s__y+=I;pixel(s_x,s- );
口技术[J】.仪表技术,2003(3):18—22.
【2】台湾矽创电子公司.s17920数据手 ̄I-[DB/OL].
. I
l
l
l
else ,,终点在起点左方
l_
http://www.sitronix.com.tw/sitronix/SASpecDoc.nsf/
,
I
File Download/Sr79201858309/FICE,S1_7920C34.
●
-●
’
oaf.2001.
●
- ●
I
D
_
收稿日期:20o6—08一l9
x=s x—e x;
咨询编号:070107
2024年5月9日发(作者:隐锐进)
维普资讯
一
28一 《国外电子元器 ̄)2007#-g 1期 2007年1月
●应用与设计
基才ST7920控制器的液晶显示器LG128645
画线功能的实现
刘升
(淮北煤炭师范学院计算机科学与技术系,安徽淮北235000)
摘要:论述了基于SrI7920控制器的液晶显示器LG128645的画点和画线方法,给出了相应的硬件
接口电路和基于89C51的详细实现程序,其他类型的LCD也可参照本文实现图形绘制功能。
关键词:LG128645;液晶显示器;S17920;89C51;画点;画线
中图分类号:TN873 文献标识码:A 文章编号:1006—6977(2007}01—0028-03
Implementation of draw-line function on LG128645 LCD
.
based on ST7920
LIU Sheng
(Department ofComputer Science and Technology,Huaibei Cod Industry 口c胁 College.Huaibei 235000,China)
Abstract:The method of drawing dot and drawing line on the LG128645 which uses ST7920 as its
controller is introduced.The speciifc hardware interface circuit and detailed 89C5 1 program are given.
hiTs scheme.is a reference to other tye pof.LCD・
Key words:LG128645;LCD;ST7920;89C51;draw—dot;draw—line -
.
1 引言
仪表用中文液晶显示器LGl28645采用台湾矽
创电子公司的ST7920作为控制/驱动器,该器件内
论采用哪种接口方式,必须保证单片机不仅能向
S 920控制器的命令寄存器或数据寄存器中写入
信息,而且也能读取信息,这是因为画图是按点控
制的,而S,I7920必须连续向绘图RAM中写入两个
字节数据,即一次必须画l6个点,单片机通过控制
含8 t92个国标简体汉字(16x16点阵)和 128个英
文符号字库(16x8点阵)。用户输入国标码或ASCII
码即可实现文本显示(满屏l6个汉字×4行)。另外,
器提供的屏读命令,将当前地址所指向的连续两个
单元的值读出来.再把将要写入的每个单元的值与
原来的值相或,这样既不会破坏原来的值,又可以
写入新值,实现了所要求的按点控制的方式,这也
是LG128645液晶显示器实现画点和绘制其他图形
还提供64x256点的绘图RAM(简称GDRAM),可以
与文字混合显示,而且内含字型产生RAM(简称
CGRAM),提供可编程造字功能。在很多测试类设备
中,需要使用液晶显示的设备能够实时显示曲线以
判断被测设备的工作状况或实时显示被测物理量
的关键。
本文编程示例是以图l的电路为例.采用总线
方式连接,LG128645的数据线与AT89C51的P0口
的变化情况.这就要求能够用点阵式液晶显示器实
现画点、画线和绘制其他图形。
相连,RS和R/W信号通过一片74LS373获得,复位
信号由单片机的复位信号取反后获得,但必须保证
单片机的复位对地电阻不能大于5 kl1.否则在单片
2接口电路设计
为了实现画点和画线功能,LG128645与单片机
89C51的接祛可以采用I/O连接方式,也可以采用
机复位时.显示屏将不能正常复位。使能信号E的
宽度必须小于读写信号R/W的宽度,由于
LGl28645的读写操作实际上是用E信号下降沿完 总线连接,既可以串行连接,也可以并行连接,但无
维普资讯
基于SrI7920控制器的液晶显示器LGl28645画线功能的实现 一29—
89C51 ,
—
L P10 PO0 芏 / ●●..一 DBO
2 Pl1 P01 38 / 74LS373 \ 明1
3 P12 P02 兰Z 一 \ I D0 Qo 2 f'..一 明2
4
‘ P13 P03
§ 一 \ 曼 D1 O1
‘
fI
...一
DB4
DB3
6 P14 P04 三 一 、 Z D2 O2
6 lI
..一
_} P1 56 P056 / 、、 ! DD34 Q34 1
9
2
●
f
●
}.
..
.一
一
明6DB5
I P
15 f●
..一
DB7
+
''lI ‘ — 1NT1
P17
P20 21
07
、 !璺 D
D6
5 O
O6 l9
5 16 lIS
1NTO P2I 22 D7 Q7 R/w
4.7kQn ll…昔 导
T0
TI P
P23
22 卫
25
24 卜__l l 琵
LE
’ +SVl p
E
oss ible
一LI 』JL 且 丑 +SV}_厂 _一 VDsDs
lI — I9
X1
7
X2 ALE/F 30
P27
28
LG128645
30p0pF F上
7 30pF
口l一l I 1l01
I… _r4  ̄
6
。
_ RRS/ W LH
L:WritO
:DRIanetsaadt rUGti
・
Or
图1 LG128645的接口电路(基于总线方式)
成的,因此可用一片与非f-1 74L500实现,其逻辑表 )
达式为. 4 画点实现
E=P27・ +P27・冗D=1>27・WR・冗D
void pixel(uchar x,uchar y)
3基本读写函数
f,,在指定位置画点函数 坐标范围0.-,127,y坐标范围0--63
uchar id; .
#define RLCDI XBYTE[0x ̄0],,读出忙标志(BF)
uint position=Ox8000;//每次向绘图RAM写入16个点的
#define WLCDI XBYTE[0xfl00],,写指令到指令寄存器
画点位1
#define RLCDD XBYTE[0xffc0]// ̄kRsj寄存器读数据
if(y>31)Iy-=32;x+=128;),,屏128x64时应绘图RAM的
#define WLCDD XBYTE[0 ̄40],,写数据到数据寄存器
256x32
#define uchar unsigned char
position=position>>(x%16);,/确定画点位置
#define uint unsingedint
dwrctrl(ylOx80);_nop_O; // ̄@i坐标Y写入绘图RAM
void dwrctrl(uchar x)
dwrctrl(x/1610x80);_nop_0;,,将水平坐标 写入绘图RAM
l,,写命令 while((RLCDI&Ox80)==Ox8O);i=RLCDD;||芜DUMMY
while((RLCDI&0xS0)=--0xS0);|| 聋 标怎
READ一次
WLCDI--x;
while((RLCDl&OxS0)==OxS0);i=RLCDD;,,从绘图RAM读
1 .
取一个字节数据到
void dwrdata(uchar x)
while((RLCDI&0x80)==Ox80);j=RLCDD;,,读取第2字节数
l,,写数据 ,
据到_『
while((RLCDI&0xS0)=--Ox80);|| 釜 标志 writeXY(x/16,y,position/2561i,(uchar)positionlj);,,写入,实现
WLCDD=x:
画点
) . )
void writeXY(uchar x,uchar y,uchar data1,uchar data2)
I,,在 、y坐标处写两字节数母
5 画线实现
dwrctrl0"10xS0);_nop_0;_nop_0;dwrctrl(xl0xS0);_nop_0;
void line(uchar S_X,uchar s-J,uchar —x,uchar e—
_
nop_O;dwrdata(data1);_nop,O;_nop_O;dwrdata(data2);
I,,画线函数
_
nop_0;
char Err=0,D_x,D0;
维普资讯
一
30-- ‘ 《国外电子元器件>2007#-g 1期 2007年1月
i D- >=D_y)
1
if e-y!(s-y),,如果终点纵坐标大于起. 颤坐标则交筷之
I
D_x mm ex;e_x=s-x -x D-x;
_
.
while(s_x!:e—x)
I
e y’=s
D x:e
y;
y ̄s_y D-x;
__
l 。 .
if(Err>--O)
I
pixelis_x,s_y) ̄/t点
D
_
x=e
_
x—s-x;D
_
y=e_y一 ∥画点步数,D.-y大于
s-y+=1;Err+=(D_y—D-x);
l
else Err+=D0;S_X一=I;pixel(s_x,s-y);
-
或等于0 :
i D.j【>o),,终点在起点右方
I ,
l
l
else
‘
if -x>= ),,横坐标f,l距大于纵坐杼间距
1
while(s-x! -x)
I
-
I
while(s_yl=e—y)
I
if(Err>=O)
I
s-y+=1; :
,
ifE ̄<---O)Err+=D_x;
: Il1 ..
else
Err+=(DL-y—D._x);//Err为s_y的调整因子。决
定s
y是加1还是不变
_
I
s
_
.一 .
x-=l;Err+=(D-x—D );
l
else Err+=D_y;s-x+=1; lfs
x向e
x逼近,步
__
l
s- +=1;lpixel(s_x,s- );
l
I;’, ’。
距为1
pixel(s_x,s—y);
l
l
else,,纵坐标间距大于横坐标间距
l
l
l
1
6结束语
笔者所设计的余氯在线监控仪和智能矿灯充
电架都采用了该液晶模块。通过曲线显示被测量值
的变化情况。效果很好。绘图功能实现的难点主要
whileq(置-y! -y)
l
if0 ̄rr>O)
I
s
—
是画点功能的实现。其他图形功能的实现都是以画
x+=1;
点为基础,因此,读者可根据实际情况绘制需要的
图形。该方法还可以应用于测量等领域。
参考文献:
Err+=(D._x—DL-y);,,此处Err为s-x的调整因
子.决定8
X是否加1
_
l
else Err+=D
_
【l】于龙成,史延龄.仪表用中文LCD与单片机的接
x;s__y+=I;pixel(s_x,s- );
口技术[J】.仪表技术,2003(3):18—22.
【2】台湾矽创电子公司.s17920数据手 ̄I-[DB/OL].
. I
l
l
l
else ,,终点在起点左方
l_
http://www.sitronix.com.tw/sitronix/SASpecDoc.nsf/
,
I
File Download/Sr79201858309/FICE,S1_7920C34.
●
-●
’
oaf.2001.
●
- ●
I
D
_
收稿日期:20o6—08一l9
x=s x—e x;
咨询编号:070107