电子信息网-电子电器电气站
电子信息网
电子系统 显示光电 接口电路 存储器 无线通信 电子控制 EDA/PLD 单片机 DSP技术 模拟技术 通信网络 电测仪表 视频音频 芯片应用 电子通信 IC电子 电子设计 自控测量 IC嵌入式 IC系统 EDA系统 通信网络 传感控制 电源技术 单片机技术 显示光电 接口电路 无线通信 消费电子 DSP产品 元件工艺 电测仪表 模拟技术 存储器设备 设计应用 智能网应用 集成电路 电子电源 IC智能设计 PLD系统 电子传感
>>首 页->电子信息网->S3C44B0X与LM057QC1T01的接口方法及其应用->正 文 
[电子信息]:S3C44B0X与LM057QC1T01的接口方法及其应用 摘   要:本文着重介绍了ARM7处理器S3C44B0X内置LCD控制器的使用方法,简要介绍夏普LM057QC1T01液晶显示模块以及它和S3C44B0X的接口方法。并在此基础之上,讨论了彩色英文、汉字和图形在LCD模块上的显示原理和实现方法。
关键词:S3C44B0X;LCD Controller;LM057QC1T01

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

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

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

S3C44B0X和LM057QC1T01的连接
由于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的数组形式。例如:
char BMP[240][320]= {0x00,0x00,0x01, 蓕;
然后把文件包含在项目工程中,用如下循环语句实现显示:
 for(i=0;i<240;i++)
  for(j=0;j<320;j++)
{
LCD_Buffer_Color[i][j]= BMP[i][j];
}
显示英文字母和字符
在实际应用中,通常用一个数组保存字母和字符点阵。以16×8点阵为例,用16×8个点阵表示一个字符,例如显示字符 ‘1’ ,象素需要显示的地方用*表示,否则为空白,这样,一个字符 ‘1’ 就显示出来。把这个点阵用十六进制的形式表示出来,字符1所对应的点阵是:
0x00,0x00,0x18,0x38,0x78,0x18,0x18,0x1,
0x18,0x18,0x18,0x7e,0x00,0x00,0x00,0x00,
在把字符送LCD缓冲区显示的时候,由于在缓冲区中是用一个字节表示一个象素,而字库中的一个位表示一个象素,即字库中一个字节对应缓冲区的八个字节,所以在送入缓冲区之前必须对字库进行必要的调整。具体方法是在显示一个象素之前,先把这个位右移到字节的最低位,然后屏蔽除此象素点的其它七位,再乘这个象素要显示的颜色,最后把调整后的数据送入对应的缓冲区。例如:假设字符‘1’点阵存在一维数组字库Zfk[],起始地址为20,显示颜色值为42的字符‘1’到第8行第10列的程序是:
for (i=0;i<16;i++)
for(j=0;j<8;j++) 
LCD_Buffer_Color [10*16+i][(*8+j)]= (Zfk[20+i]>>(7-j))&0x01))*42;
显示汉字
在容量比较大的系统中实现汉字的显示通常有两种方法,1. 把汉字库烧录到存储器,用烧写的地址加字库的偏移地址确定具体汉字的位置。2. 把汉字库转化成数组的形式,在程序中以读取数组的形式读取字库。这两种方法各有优缺点,这里讨论用第二种方法实现汉字显示。
在汉字库中,为了方便查找所需汉字的点阵,每个汉字都与一个双字节的内码一一对应。通过汉字的内码可以计算出它的点阵起始字节。以16×16宋体横向点阵为例,计算点阵起始字节地址的公式为:
地址=((内码高字节-160)*94+
(内码低字节-160))*32
例如:汉字“嵌”所对应的内码是C7B6H,那么它在汉字库中的地址是:
long int adress= 
((C7-0xa1)*94+(B6-0xa1))*32
=1C120
假设转换后的汉字库存放在一维数组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.在具体实现过程中,为了方便,首先把所要显示的汉字点阵从字库中读出,实现程序是:
 char hzbuff[16];
for (i=0;i<16;i++)
{
hzbuff[i]= Hzk[address+i] ;
}
读出字库后,同样需要处理字库中的一位表示一个象素和LCD缓冲区中的一个字节表示LCD上一个象素的问题。处理方法和显示英文字母大体相同。
举例:在LCD模块Y行X列显示颜色为C的汉字“嵌”的程序是:
for (i=0;i<16;i++)
         for(j=0;j<16;j++)
{
 LCD_Buffer_Color [y*16+i][x*16+j]= (( hzbuff[i*2+j/8]>>(7-j%8))&0x01)*C;
}
关于换行:在显示点阵为16×16汉字、LCD模块为320×240大小的情况下,每行显示20个汉字,共有15行,每屏能显示300个汉字或者字符。在程序的实现中,用数字0~15×20代表每个汉字的位置,例如0代表开始的第一个位置,15代表第二行的第一个位置,以此类推。假设当前显示位置为Positon,当显示中需要换行,重新计算显示位置时可以用如下程序实现:
Position=(position/20+1)*20; 

结语
本文主要讨论了ARM7处理器S3C44B0X内置LCD控制器的使用方法,简要介绍了夏普LM057QC1T01图形点阵式液晶显示模块,并详细给出了与S3C44B0X内置LCD控制器的硬件连接方法,搭建以两者为基础的嵌入式工作平台。在此平台的基础上,本文详细讨论了图形、英文和汉字的显示原理和方法,并给出了具体实现的程序。
这些显示方法和程序在实现S3C44B0X与其它类型LCD模块连接时,只需做少量的修改即可,具有使用简单、运行稳定、便于移植修改等特点。■

◆ 相关电子资料:S3C44B0X与LM057QC1T01的接口方法及其应用...
◆ 更多电子资料:S3C44B0X与LM057QC1T01的接口方法及其应用...
·Google:"S3C44B0X与LM057QC1T01的接口方法及其应用电子资料信息"
·Baidu:"S3C44B0X与LM057QC1T01的接口方法及其应用电子资料信息"
·Sogou:"S3C44B0X与LM057QC1T01的接口方法及其应用电子资料信息"
·Zhongsou:"S3C44B0X与LM057QC1T01的接口方法及其应用电子资料信息"

网站简介 |  网站导航 |  广告服务 |  联系我们 |  诚聘英才 |  意见反馈 |  版权声明 |  友情链接
Copyright (C) 2003 ELECTRONIC ENGINEERING & PRODUCT WORLD. All rights reserved.
 电子信息网-电子电器电气站 www.ELEcn.net