当前位置:首页 > 显示光电 > 显示光电
[导读]摘 要: 研究了图形液晶模块的汉字显示方法, 以8051 单片机为基础, 介绍了液晶模块与单片机的典型接口电路, 描述了通过外扩的EEPROM 存储汉字字模数据, 将其作为外部数据存储器进行寻址, 通过C51 程序详细介绍了

摘 要: 研究了图形液晶模块的汉字显示方法, 以8051 单片机为基础, 介绍了液晶模块与单片机的典型接口电路, 描述了通过外扩的EEPROM 存储汉字字模数据, 将其作为外部数据存储器进行寻址, 通过C51 程序详细介绍了使用方法。对于程序存储器和数据存储器分开寻址的单片机, 该方式能起到节省程序存储器, 扩大程序容量的作用。

1 引 言

液晶显示器件( LCD) 独具的低压、微功耗特性使它可以直接与大规模集成电路结合开发出一系列具有便携显示功能的产品。这些产品不仅改变了人类生活甚至也改变了社会。例如, 液晶显示的电子表、电子计算器已成为生活必需品, 而液晶显示的移动通讯已成为人类社会活动的必备工具。

常用的液晶显示模块分为数显液晶模块、点阵字符液晶模块和点阵图形液晶模块。图形液晶模块在我国应用较为普及, 因为中文不能像西文字符那样用字符模块即可显示, 要想显示中文必须用图形模块。

2 液晶模块显示汉字方法

使用图形液晶模块可以显示汉字和图形。以DG12864( 128×64) 液晶模块为例, 其内置的液晶显示驱动控制器为日本东芝公司的T6963C, 在液晶屏上横向8 个点为1 个字节数据, 每个字节在显示缓冲区内有对应的地址, 液晶屏幕的左上角横向8 个点对应液晶模块显示缓冲区的首地址。采用图形显示方式, 在液晶显示器上汉字用点阵来显示, 最常用的是16×16 的汉字, 一个16×16 的汉字用32 个字节表示, 这32 个字节存放方式如下所示:

 

 

而一个24 ×24 的汉字则需72 个字节, 存放方式如下:

 

 

其他规格的汉字存放方式依此类推。在液晶显示器上需显示汉字时, 只要将要显示的汉字的点阵按其存放方式依次写入液晶控制器的显示缓冲区即可。

通过单片机将已提取的汉字的字模输入液晶控制器, 即可按设定在液晶模块显示屏上显示汉字。常见的做法是事先通过字模提取软件提取要显示的汉字的字模, 将其作为常量数组存放在单片机的程序存储区内。以C 语言格式建立包含"合"和"肥"两字的汉字字模常量数组, 如下:

Code const char Hz-Dot [ ] = {0x01, 0x01, 0x02, 0x04, 0x08, 0x 10, 0x 2F,0xC0, / / 合0

0x00, 0x1F, 0x 10, 0x10, 0x10, 0x 10, 0x1F, 0x10,0x00, 0x00, 0x 80, 0x40, 0x 20, 0x10, 0xEE, 0x 04,0x10, 0xF8, 0x 10, 0x10, 0x10, 0x 10, 0xF0, 0x10,0x04, 0x 7F, 0x 45, 0x45, 0x45, 0x7D, 0x 45,0x45, / / 肥0x 20

0x45, 0x7D, 0x 45, 0x45, 0x 45, 0x45, 0x 54, 0x 88,0x04, 0xFE, 0x 24, 0x24, 0x 24, 0x24, 0x 24, 0xFC,0x04, 0x 00, 0x 00, 0x02, 0x02, 0x02, 0xFE,0x00} ;

每个汉字字模由32 个字节组成, 单片机通过接口电路, 根据规定的时序, 将要显示的汉字字模的所有字节按液晶控制器规定的方式, 按预定位置写入液晶控制器显示缓冲区即可。这种方式适用于程序不大或单片机无外部扩展数据存储区功能的情况。

采用哈佛结构的单片机, 如8051 单片机及其派生产品, 程序存储器( ROM) 和数据存储器( RAM) 可分别寻址, 8051 单片机ROM 和RAM最大的寻址空间均为64 K.通常来说, 对于中型的嵌入式系统, 尤其是带液晶模块的单片机系统,64 K 的程序空间并不富裕, 而将汉字字模作为常量数组会大大占用ROM 的空间。而相对来说,数据存储器只需几K 就够用了, 剩下很多空间可用于功能芯片的扩展。将提取的汉字字模数据存放在EPROM 或EEPROM 内作为扩展的数据存储器供CPU 调用, 则只要设定该芯片的片选地址, 并知道每个汉字字模数据在该芯片的存储位置, 通过程序计算出偏移地址, 即可实现同样的显示功能。

3 单片机通过EEPROM 调用汉字字模的方法

图1 是DG12864 液晶模块与8051 单片机的接口电路。在电路中, 地址线A13??A15 通过GAL16V8 译码得到外扩芯片的片选信号, 其中液晶模块的译码地址为0xE000, 将地址线A0 与液晶模块控制口的C/ D 相连。当A0 为低时液晶控制器接收数据, A0 为高时液晶控制器接收命令码。因此液晶模块数据端口地址为0xE000, 液晶模块命令端口为0xE001.采用Keil C51 进行程序设计, 在程序中可进行如下定义:

# define XBYTE ( ( unsigned char volat ile x data* ) 0)

# def ine LCD-Data XBYT E[ 0xE000]/ / 液晶模块数据端口

# def ine Lcd-Code XBYT E[ 0xE001]/ / 液晶模块命令端口

存放汉字字模数据的EEPROM 芯片2864的片选地址为0x 9000, 则通过程序定义:

# def ine Hz-Dot 0x 9000

# define VBYTE ( unsigned char volatile x data* )

 

 

图1 51 单片机与液晶模块接口电路

编制16 ×16 汉字显示子函数Wr ite-Hz.其中要调用另外两个子函数Lcd-Wait 和Disp-address.Lcd-Wait 为读取液晶控制器是否忙函数, 而Disp-address 为液晶控制器显示缓冲区地址设置函数, 可根据液晶控制器资料编制。根据液晶控制器T 6963 的操作方法, 每次对液晶控制器进行读写时, 应执行Lcd-Wait 函数判断液晶控制器是否忙, 在将汉字字模数据写入液晶控制器显示缓冲区前, 应根据汉字在液晶屏上的显示位置设定写入数据的液晶控制器显示缓冲区地址, 具体Write-Hz 如下:

void Write-Hz( Uchar x ,U char y, Uint p) // 写汉字

// x , y 为汉字在液晶屏的显示位置坐标,

// p 为要显示的汉字在数组中的下标。

{

Uchar i, low-ad, hig h??ad;

Uint addr ess, tp;

address= ( Uint) x * Wide+ y ; / / * *

// 根据要显示汉字在液晶屏幕的横坐标和纵坐标

// 设定液晶控制器的显示缓冲区的偏移地址

tp= address;

for ( i= 0; i< 16; i+ + ) / / 写左半部

{

low-ad= ( Uchar) ( tp & 0x f f) ;

hig h-ad= ( Uchar) ( tp 8) ;

Disp-address( low-ad, high-ad) ;

/ / 设定写入地址

Lcd-Wait ( ) ;

Lcd-Data = * ( VBYT E( Hz-Dot+ p+ i ) ) ;

/ / 从EEPROM 中提取汉字字模

Lcd-Wait ( ) ;

Lcd-Code= 0xC4; / / 写数据命令

tp= tp+ Wide;

}

address+ + ;

tp= address;

fo r( i= 0; i< 16; i+ + ) / / 写右半部

{

low-ad= ( U char) ( tp & 0xf f ) ;

hig h-ad= ( Uchar) ( tp 8) ;

Disp-address( low??ad, high??ad) ;

Lcd-Wait ( ) ;

Lcd-Data = * ( VBYTE ( Hz-Dot+ p+16+ i) ) ;

Lcd-Wait ( ) ;

Lcd-Code= 0xC4;

tp= tp+ Wide;

}

}

函数Wr ite??Hz 的参数x 和y 对应液晶屏幕的显示位置, 以屏幕左上角为原点, x 为纵坐标, y为横坐标, 其在液晶控制器显示缓冲区中的地址通过行* * 计算出, 该行中Wide 为事先定义的液晶屏每行字节数, 对于DG12864 液晶模块而言,Wide 为16。

函数Write-Hz 根据16×16 点阵汉字在液晶控制器显示缓冲区的存放形式, 依次改变显示地址, 先将左半部1~ 16 个字节写入显示缓冲区, 再写入右半部17~ 32 个字节。设"合肥"两字存放在2864 中最前列, 则"合"字模首字节在2864 中的偏移地址为0, 共32 个字节, 紧跟在后面的肥!字模的首地址为0x20, 若要液晶模块显示合肥!两字, 只要在程序中带显示地址参数调用该函数即可。如:

Write-Hz( 0, 4, 0) ; / / 合

Write-Hz( 0, 10, 0x20) ; / / 肥

4 结 语。

本文介绍了图形液晶的汉字显示方法, 并以8051 单片机为基础, 结合液晶模块与单片机的典型接口电路, 叙述了使用EEPROM 或EPROM存放汉字字模的方法, 并给出C51 程序例子, 具有很强的使用指导性。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭