首页 > 爱游戏直播稳定版 > 智慧生活

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

时间: 2023-12-12 20:42:57 |   作者: 智慧生活

  控制器的使用方法,简要介绍夏普LM057QC1T01液晶显示模块以及它和S3C44B0X的接口方法。并在此基础之上,讨论了彩色英文、

  S3C44B0X是面向嵌入式系统的超高的性价比微处理器,它采用ARM7TDMI核,工作在66MHz。为了节约项目开发周期和成本,S3C44B0X大量集成了ADC、LCD控制器等外围器件。其中,LCD控制器支持在LCD上的单色、4级、16级灰度、256色的显示,有着非常强的通用性。夏普LM057QC1T01是像素格式为320×3×240的256色TSTN透光型液晶显示模块。本文讨论了S3C44B0X和夏普LCD接口的连接。在此基础之上着重讨论彩色图形显示和英文、汉字显示实现的具体原理和方法。

  S3C44B0X LCD控制器的作用是将缓存中的数据传送到外部的LCD驱动器,并产生必须的LCD控制信号。LCD 控制器可以编程支持不同水平和垂直点数(640×480, 320×240, 160×160等)、不同数据线宽度、不同接口时序和刷新速率的LCD,支持4位双扫描、4位单扫描、8位单扫描模式,并支持水平/垂直卷动,以用来支持更大的屏幕显示(如1280×1280)。

  LM057QC1T01是夏普公司生产的图形点阵256色STN液晶模块,它的分辨率为320×240,由于它具有接口简单、工作稳定和便于操作等特点,在嵌入式系统有较为广泛的应用。

  由于S3C44B0X和LM057QC1T01液晶显示模块都有着非常强的通用性。所以它们的连接非常容易实现,但是由于LCD模块需要有液晶显示所必需的偏转电压,所以要在控制器和LCD接口之间加装能实现电压偏转功能的电路,实现输出LCD显示所需的27V偏转电压。具体引脚连接如表1所示。

  LCD控制器有20个引脚,其中针对夏普LM057QC1T01液晶显示模块,引脚13~17没用意义,在实际的连接中悬空不接。其他引脚和LCD的连接如表1所示。在LCD显示模块中,引脚6所接入的用于液晶显示所需的27V偏转电压由外部外接电路提拱。外接电路所需要的电源可以由LCD控制器提供,也可以由其它电路提供。但LCD模块显示所需的高压只能由外接电路实现。

  在S3C44B0X中,由于CUP不支持文件管理,必须把要显示的图片包含到程序中。例如,如果要在LCD显示320×240大小的图片,在真实的操作中,首先应使用转换工具把图片转换成C格式的数组文件,即把每一个象素点的颜色转换成用一个字节表示,然后把整个文件保存成240×320的数组形式。例如:

  在实际应用中,通常用一个数组保存字母和字符点阵。以16×8点阵为例,用16×8个点阵表示一个字符,例如显示字符 1 ,象素需要显示的地方用*表示,否则为空白,这样,一个字符 1 就显示出来。把这个点阵用十六进制的形式表示出来,字符1所对应的点阵是:

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

  在容量比较大的系统中实现汉字的显示通常有两种方法,1. 把汉字库烧录到存储器,用烧写的地址加字库的偏移地址确定具体汉字的位置。2. 把汉字库转化成数组的形式,在程序中以读取数组的形式读取字库。这两种方法各有优缺点,这里讨论用第二种方法实现汉字显示。

  在汉字库中,为了方便查找所需汉字的点阵,每个汉字都与一个双字节的内码一一对应。通过汉字的内码可以计算出它的点阵起始字节。以16×16宋体横向点阵为例,计算点阵起始字节地址的公式为:

  假设转换后的汉字库存放在一维数组Hzk中,那么Hzk[1C120]至Hzk[1C120+32]所对应值就是汉字“嵌”所对应的十六进制点阵。由于在LCD显示的过程中,点阵中的一行数据要用两个字节来表示,在确定所要显示的行数据在点阵中的位置时需要做必要的调整,例如:在LCD上显示底Y行象素数据的时候,对应于汉字点阵中的数据应该是汉字库数组中的偏移地址,即2*Y和2*Y+1所对应的数据。所以在确定偏移地址的时候应在行前乘2。在显示一行的过程中,前八个象素点对应的偏移地址是2*Y,后八个象素是2*Y+1,所以在计算偏移地址的时候应用表示象素点列的数据与8相除,即Y*2+X/8.在具体实现过程中,为了方便,首先把所要显示的汉字点阵从字库中读出,实现程序是:

  读出字库后,同样需要处理字库中的一位表示一个象素和LCD缓冲区中的一个字节表示LCD上一个象素的问题。处理方法和显示英文字母大体相同。

  关于换行:在显示点阵为16×16汉字、LCD模块为320×240大小的情况下,每行显示20个汉字,共有15行,每屏能显示300个汉字或者字符。在程序的实现中,用数字0~15×20代表每个汉字的位置,例如0代表开始的第一个位置,15代表第二行的第一个位置,以此类推。假设当前显示位置为Positon,当显示中需要换行,重新计算显示位置时可以用如下程序实现:

  本文主要讨论了ARM7处理器S3C44B0X内置LCD控制器的使用方法,简要介绍了夏普LM057QC1T01图形点阵式液晶显示模块,并详细给出了与S3C44B0X内置LCD控制器的硬件连接方法,搭建以两者为基础的嵌入式工作平台。在此平台的基础上,本文详细讨论了图形、英文和汉字的显示原理和方法,并给出了具体实现的程序。

  这些显示方法和程序在实现S3C44B0X与别的类型LCD模块连接时,只需做少量的修改即可,具有使用简单、运行稳定、便于移植修改等特点。

上一篇:LED显现屏的构成及功用模块作业原理

下一篇:lcd1602工作原理是什么?