LCD彩色图形显示和英文、汉字显示实现的具体原理和方法.doc

上传人:夏** 文档编号:562677657 上传时间:2022-10-08 格式:DOC 页数:3 大小:30.50KB
返回 下载 相关 举报
LCD彩色图形显示和英文、汉字显示实现的具体原理和方法.doc_第1页
第1页 / 共3页
LCD彩色图形显示和英文、汉字显示实现的具体原理和方法.doc_第2页
第2页 / 共3页
LCD彩色图形显示和英文、汉字显示实现的具体原理和方法.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《LCD彩色图形显示和英文、汉字显示实现的具体原理和方法.doc》由会员分享,可在线阅读,更多相关《LCD彩色图形显示和英文、汉字显示实现的具体原理和方法.doc(3页珍藏版)》请在金锄头文库上搜索。

1、摘 要:本文着重介绍了ARM7处理器S3C44B0X内置LCD控制器的使用方法,简要介绍夏普LM057QC1T01液晶显示模块以及它和S3C44B0X的接口方法。并在此基础之上,讨论了彩色英文、汉字和图形在LCD模块上的显示原理和实现方法。 关键词:S3C44B0X;LCD Controller;LM057QC1T01 引言 S3C44B0X是面向嵌入式系统的高性价比微处理器,它采用ARM7TDMI核,工作在66MHz。为了节约项目开发周期和成本,S3C44B0X大量集成了ADC、LCD控制器等外围器件。其中,LCD控制器支持在LCD上的单色、4级、16级灰度、256色的显示,具有很强的通用性

2、。夏普LM057QC1T01是像素格式为3203240的256色TSTN透光型液晶显示模块。本文讨论了S3C44B0X和夏普LCD接口的连接。在此基础之上着重讨论彩色图形显示和英文、汉字显示实现的具体原理和方法。 LCD控制器 S3C44B0X LCD控制器的作用是将缓存中的数据传送到外部的LCD驱动器,并产生必须的LCD控制信号。LCD 控制器可以编程支持不同水平和垂直点数(640480, 320240, 160160等)、不同数据线宽度、不同接口时序和刷新速率的LCD,支持4位双扫描、4位单扫描、8位单扫描模式,并支持水平/垂直卷动,以用来支持更大的屏幕显示(如12801280)。 液晶显

3、示模块LM057QC1T01 LM057QC1T01是夏普公司生产的图形点阵256色STN液晶模块,它的分辨率为320240,由于它具有接口简单、工作稳定和便于操作等特点,在嵌入式系统有比较广泛的应用。 S3C44B0X和LM057QC1T01的连接 由于S3C44B0X和LM057QC1T01液晶显示模块都具有很强的通用性。所以它们的连接比较容易实现,但是由于LCD模块需要有液晶显示所必需的偏转电压,所以需要在控制器和LCD接口之间加装能实现电压偏转功能的电路,实现输出LCD显示所需的27V偏转电压。具体引脚连接如表1所示。 LCD控制器有20个引脚,其中针对夏普LM057QC1T01液晶显

4、示模块,引脚1317没有使用意义,在实际的连接中悬空不接。其他引脚和LCD的连接如表1所示。在LCD显示模块中,引脚6所接入的用于液晶显示所需的27V偏转电压由外部外接电路提拱。外接电路所需要的电源可以由LCD控制器提供,也可以由其它电路提供。但LCD模块显示所需的高压只能由外接电路实现。 图形和字符显示 显示图片 在S3C44B0X中,由于CUP不支持文件管理,必须把要显示的图片包含到程序中。例如,如果要在LCD显示320240大小的图片,在实际操作中,首先应使用转换工具把图片转换成C格式的数组文件,即把每一个象素点的颜色转换成用一个字节表示,然后把整个文件保存成240320的数组形式。例如

5、: char BMP240320= 0x00,0x00,0x01, 蓕; 然后把文件包含在项目工程中,用如下循环语句实现显示: for(i=0;i240;i+) for(j=0;j320;j+) LCD_Buffer_Colorij= BMPij; 显示英文字母和字符 在实际应用中,通常用一个数组保存字母和字符点阵。以168点阵为例,用168个点阵表示一个字符,例如显示字符 1 ,象素需要显示的地方用*表示,否则为空白,这样,一个字符 1 就显示出来。把这个点阵用十六进制的形式表示出来,字符1所对应的点阵是: 0x00,0x00,0x18,0x38,0x78,0x18,0x18,0x1, 0x

6、18,0x18,0x18,0x7e,0x00,0x00,0x00,0x00, 在把字符送LCD缓冲区显示的时候,由于在缓冲区中是用一个字节表示一个象素,而字库中的一个位表示一个象素,即字库中一个字节对应缓冲区的八个字节,所以在送入缓冲区之前必须对字库进行必要的调整。具体方法是在显示一个象素之前,先把这个位右移到字节的最低位,然后屏蔽除此象素点的其它七位,再乘这个象素要显示的颜色,最后把调整后的数据送入对应的缓冲区。例如:假设字符1点阵存在一维数组字库Zfk,起始地址为20,显示颜色值为42的字符1到第8行第10列的程序是: for (i=0;i16;i+) for(j=0;j(7-j)&0x0

7、1)*42; 显示汉字 在容量比较大的系统中实现汉字的显示通常有两种方法,1. 把汉字库烧录到存储器,用烧写的地址加字库的偏移地址确定具体汉字的位置。2. 把汉字库转化成数组的形式,在程序中以读取数组的形式读取字库。这两种方法各有优缺点,这里讨论用第二种方法实现汉字显示。 在汉字库中,为了方便查找所需汉字的点阵,每个汉字都与一个双字节的内码一一对应。通过汉字的内码可以计算出它的点阵起始字节。以1616宋体横向点阵为例,计算点阵起始字节地址的公式为: 地址=(内码高字节-160)*94+ (内码低字节-160)*32 例如:汉字“嵌”所对应的内码是7B6H,那么它在汉字库中的地址是: long

8、int adress= (7-0xa1)*94+(B6-0xa1)*32 =1C120 假设转换后的汉字库存放在一维数组Hzk中,那么Hzk1C120至Hzk1C120+32所对应值就是汉字“嵌”所对应的十六进制点阵。由于在LCD显示的过程中,点阵中的一行数据要用两个字节来表示,在确定所要显示的行数据在点阵中的位置时需要做必要的调整,例如:在LCD上显示底Y行象素数据的时候,对应于汉字点阵中的数据应该是汉字库数组中的偏移地址,即2*Y和2*Y+1所对应的数据。所以在确定偏移地址的时候应该在行前乘2。在显示一行的过程中,前八个象素点对应的偏移地址是2*Y,后八个象素是2*Y+1,所以在计算偏移地

9、址的时候应该用表示象素点列的数据与8相除,即Y*2+X/8.在具体实现过程中,为了方便,首先把所要显示的汉字点阵从字库中读出,实现程序是: char hzbuff16; for (i=0;i16;i+) hzbuffi= Hzkaddress+i ; 读出字库后,同样需要处理字库中的一位表示一个象素和LCD缓冲区中的一个字节表示LCD上一个象素的问题。处理方法和显示英文字母大体相同。 举例:在LCD模块Y行X列显示颜色为C的汉字“嵌”的程序是: for (i=0;i16;i+) for(j=0;j(7-j%8)&0x01)*C; 关于换行:在显示点阵为1616汉字、LCD模块为320240大小

10、的情况下,每行显示20个汉字,共有15行,每屏能显示300个汉字或者字符。在程序的实现中,用数字01520代表每个汉字的位置,例如0代表开始的第一个位置,15代表第二行的第一个位置,以此类推。假设当前显示位置为Positon,当显示中需要换行,重新计算显示位置时可以用如下程序实现: Position=(position/20+1)*20; 结语 本文主要讨论了ARM7处理器S3C44B0X内置LCD控制器的使用方法,简要介绍了夏普LM057QC1T01图形点阵式液晶显示模块,并详细给出了与S3C44B0X内置LCD控制器的硬件连接方法,搭建以两者为基础的嵌入式工作平台。在此平台的基础上,本文详细讨论了图形、英文和汉字的显示原理和方法,并给出了具体实现的程序。 这些显示方法和程序在实现S3C44B0X与其它类型LCD模块连接时,只需做少量的修改即可,具有使用简单、运行稳定、便于移植修改等特点。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号