|
点阵式LCD显示复杂图形的解决方案
|
Image Display On Dot matrix LCD
|
■福建省厦门大学机电工程系 苏俊峰
|
前言
随着测控技术发展的日新月异,液晶显示器以其低功耗、重量轻、内容显示丰富而成为显示发展的主流。而在点阵式液晶图形显示器的实际应用中,越来越的多场合需要的不再是简单的数字字母或汉字显示,图形作为一种更为生动的表现方式,成为用户需求的重点。本文介绍的就是一种运用几种常见工具软件,实现将图形转化为LCD可以显示的图形点阵的方法。
显示原理及其MPU接口
1.MGLS-12864简介
MGLS-12864LCD内藏2片HD61201液晶显示驱动器,共可以显示2 64 64=64K的点阵图形,其主要特点为:
(1)与80系列微处理器直接接口。(2)可以图形方式、字符方式及图形和字符组合方式进行显示。(3)具有内部存储器,管理空间可达64K。
LCD的逻辑电路图如图1所示。
2. MGLS-12864与MPU接口电路
LCD模块接口有数据总线、数据和指令读写线,如果数据总线直接和CPU相连,读写线和CPU的读写线相连,则称为直接控制方式;如果LCD模块不是和CPU的数据总线(P0口)直接相连,而是和P1口相连,读写线和P3口相连,则称为间接控制方式。
本文采用的是直接控制方式,其电路接口图如图2所示。
3. MGLS-12864控制指令应用
MGLS-12864有独立的一套指令系统,和单片机以如图2的方式进行接口后,就可以利用其指令系统完成对LCD的读取状态、读取RAM数据、写入显示数据、开\关显示等操作。
下面以显示一张半屏图片(64列 8页)为例,详细说明显示程序的运行过程(程序流程图见图3)。其中使用到的几个内部存储器功能如下所示:
20H:存放列地址,每次调用设置列子程序时,都会读入该存储器内容。
21H:存放页地址。存放待写入的数据。
22H:在程序中,图形字模放在以GRZM为首地址的单元中,每个半屏图形模块共需8页 64列 1字节的存储空间来存放一块图形的内容,而且其存放的方式是顺序存储,因此在程序中我们使用一个寄存器R5来作为偏移地址,从0至255依次调入图形数据存入LCD数据单元,因为一块图形共有8页
64列 =512列,所以1个字节作为地址只能调入上半块图形数据,因此我们在程序中调入下半块图形的数据时,可以采用DPTR的高位存储器DPH增1来实现调入,该思路应用在调试时获得成功。
MOVR5,#0;偏移地址计数器
DISGR:SETB CS1;选中第一片
CLR CS2
MOV R1,#4;页循环计算器
MOV 21H,#0
DISG2:LCALL SETPA;设置页,读入21H中的数据
MOV 20H,#0;
MOV R4,#64
DISG1:MOV DPTR,#GRZM;GRZM为图形字模首地址
NPAG1:MOV A,R5
MOVC A,@A+DPTR;循环取得图形数据
MOV 22H,A
LCALL WDATA
INC 20H
LCALL SETCO;设置列,读入20H中的数据
INC R5
DJNZ R4,DISG1
INC 21H
DJNZ R1,DISG2
MOV R1,#4
MOV R5,#0;
MOV 21H,#0
DISG3:LCALL SETPA
MOV 20H,#0
MOV R4,#64
DISG4:MOV DPTR,#GRZM
INC DPH;字模地址高8位增1,调入下半屏图形数据
MOV A,R5
MOVC A,@A+DPTR
MOV 22H,A
LCALL WDATA
INC 20H
LCALL SETCO INC R5
DJNZ R4,DISG4
INC 21H
DJNZ R1,DISG3
RET
GRZM;图形模块首地址,每块图形共占用512字节存储空间。
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,07fH
…….
DB 00H,00H,00H,00H,00H,00H,00H,0e0H
图形点阵的生成
将任意格式图形转化为LCD可显示点阵必须经过两步转化,运用两个软件。首先是使用Photoshop 5,这是为下一步利用LCDcovert转化点阵做准备工作,以MGLS12864LCD为例,它最多只能显示128*64个点,大于这个数量的图形数据,都不能在一屏上完整的显示出来。因此,在选择图形时,必须选择内容简单,主题明确的图形;又由于LCD只能显示黑白的图案,所以在选择彩色图形时必须认识到,该图像的内容并无法得完美的显示。
因此生成一个图形点阵的两个步骤是:
(1)利用Photoshop 5将任意图像转化为LCDcovert可以辨认的图像格式。
(2)利用LCDcovert将图像转化为点阵。
结论
以上各软件在Windows98环境下调试通过,并最终运行显示在液晶显示器上,由于对图形取点阵的过程有了比较大简化,在单片机内置存储空间越来越大的情况下,可以让LCD显示更多更为生动活泼的画面。
|
|