最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

基才ST7920控制器的液晶显示器LG128645画线功能的实现

IT圈 admin 32浏览 0评论

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 

}.

..

.一

一 

 明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  ̄

_ 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点 

_

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 

_

 .一 . 

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 

是画点功能的实现。其他图形功能的实现都是以画 

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 

_

收稿日期: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 

}.

..

.一

一 

 明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  ̄

_ 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点 

_

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 

_

 .一 . 

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 

是画点功能的实现。其他图形功能的实现都是以画 

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 

_

收稿日期:20o6—08一l9 

x=s x—e x; 

咨询编号:070107 

发布评论

评论列表 (0)

  1. 暂无评论