- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【2018年整理】液晶显示在嵌入式系统中的应用
天马行空官方博客:/tmxk_docin ;QQ:1318241189;QQ群:175569632
液晶显示在嵌入式系统中的应用?
摘要:介绍了液晶显示在嵌入系统中的应用编程,给出了在液晶显示与系统接口的应用层编程中,采用环形结构算法来达到快速、简单地进行汉字代码的编码以及汉字的分页和分行显示的显示应用程序。 ??? 关键词:嵌入式系统;液晶显示;环形结构算法;汉字显示
1 引言
在嵌入系统中,一个良好的人机界面必须提供友善的菜单,同时应能实现汉字和图形显示,并应提供英文、数字输入和汉字输入功能。笔者采用香港精电公司的128×64点阵显示模块在以MPC860作为主CPU并以Nuclus PLUS为嵌入式操作系统的系统中进行液晶显示取得了较为满意的效果。图1所示为其结构框图。
香港精电公司的128×64点阵模块内部自带液晶图形显示控制芯片T6963,其中C/D脚用于控制字与数据,RD和WR分别为读、写使能端。当WR为低时,C/D为高为写命令,C/D为低为写数据;而当RD为低时,C/D为高为读状态C/D为低为读数据。另外,CE为器件使能引脚,D0~D7为数据和地址复用总线引脚。
2 应用编程
利用MPC860嵌入式系统的快速性,可将显示应用程序分为两层,其中底层为硬件接口层,上层为应用层。硬件接口层主要是显示液晶模块自带的ASCII函数和显示汉字代码函数。由于硬件各不相同,在此不作具体介绍。而上层应用层的主要功能是提供友善的菜单,同时实现汉字和图形显示,并提供英文、数字输入和汉字输入功能。由于硬件接口层的隔离作用,不同的系统具有一定的通用性,以下重点介绍应用层编程中的汉字代码编码方法和显示编程的实现这两部分。
2.1 汉字代码编码
一般西文为8×8点阵,因而显示一个西文字需要8个字节而每个汉字占4个西文字体,因此显示一个汉字需要32个字节。汉字字库表为一张数据表 每个汉字在数据表中,通常由32个字节组成一个点阵图形。由于ASCII码编码是由0X00-0X7F表示,因此每个汉字可由两个字节0Xxx和0Xyy来表示,每个字节为0X80~0XFF(区别于ASCII代码)。第一汉字定义为0X80 0X80,依此类推直至0X80 0XFF ,0X81 0X80,……,……,0XFF 0XFF ,总计可以定义128×128=16384个汉字。
一个汉字代码表可简单表示为:
hz code tableINT=
//汉字“数”的32字节的点阵图形代码为
0x080x490x2A0x080xFF0x190x2C0x4A
0x100xFE0x220x220x140x180x250x42
0x400x400x400x840xFE0x080x880x88
0x880x900x500x200x500x880x0E0x04
//汉字“据”的32字节的点阵图形代码为
0x100x130x120x120xFF0x120x160x1B
0x320xD20x130x150x150x150x590x21
0x040xFE0x040x040xFC0x200x240xFE
0x200x240xFE0x040x040x040xFC0x04,
…
}
2.2 显示编程
在系统显示中,主要的显示方式有页处理和行处理两种。系统可以根据按键来显示某一页。实际上,页也是由相应行来显示的。页中的行可由按键来改变。一个页能显示8行ASCII码或4行汉字代码,带有汉字的行一般要占有2个只有ASCII码的行,而页可以由任意多行组成。显示时,通过按键可控制能显示行,并可在行中输入汉字或ASCII码。
??? 在设计中,所有的页可组成一个环形队列结构,页中的行也可组成一个环形队列结构,其关系如图2所示。图3所示是该系统的显示流程。
下面给出一个行结构:
typedef struct lcdLine
{
struct lcdLine *previous //前一行
struct lcdLine *next //后一行
unsigned short lineId //行特征字
unsigned char showflag //是否显示汉字
unsigned char start //显示行号 ,汉字一
定是奇数行如 1,3,5,7
unsigned char lcdseg16
//显示的代码如是ASCII码,0X10显示0,
0X3C显示\ 汉字为0X80 0X81 显示汉字“据”
void *flcdLinestruct lcdLine * plcdLine
//处理行函数
};
由于页是由行组成的,所以页结构的定义如下:
文档评论(0)