[讨论] 基于51单片机的汉字LCD智能显示模块设计

SuperStar515   2007-7-20 13:42 楼主
基于51单片机的汉字LCD智能显示模块设计 引言 在电子产品设计中,人机交互显示界面是必不可少的工作,目前一般使用的液晶显示器均为七段笔划式,只能显示数字和少量字符,功能往往受到局限,对于较复杂的字符或图形则无能为力。而LCD智能型显示模块则是一种低功耗、低损耗、低价值的显示器件,它不但可以显示各式各样的字符、汉字和图形,同时具有可编程能力,且与单片机接口方便,基于以上优点,LCD智能显示模块获得了广泛的应用。 系统组成 本系统主要由三部分组成,分别为单片机,LCD模块和FLASH字库,图1所示是该系统的硬件原理框图,由于显示所需要占用的资源过多(本设计采用的是16×16点阵,每个汉字存储需要32个字节),而单片机内部RAM资源及其有限,所以系统设计时有必要扩展—FLASH存储器,I2C接口主要负责通讯,该接口具有通讯速度较快,器件之间电气部分设计较好等特点,可以使接口部分达到设计标准。 汉字的显示原理 汉字一般是以点阵式存储的,如16×16,24×24点阵,汉字的字模其实是汉字字形的图形化,所谓16点阵字模,就是把汉字写在一个16×16的网格内,汉字的笔划通过某网格时该网格就对应1,否则该网络对应0,这样,每一网络均对应1或0,把对应1的网格连起来看,就是这个汉字,汉字就是这样通过字节表示其点阵存储在字符字库中的,为了方便查找所需汉字的点阵,每个汉字都与一个双字节的内码一一对应,通过汉字的内码可以计算出它的点阵起始字节。现以16点阵为例来进行说明,首先,可由内码计算出他在汉字库中的区位码,其计算公式为: BQ=Bn1-160 Bw=Bn2-160 式中,BQ表示区码,Bw为表示位码,而Bn1和Bn2则分别表示内码的第一字节和内码的第二字节。 当这些区位码被计算出来之后,就可以用区位码得到它在汉字库中字模第一个字节的位置,即: (BQ×94+Bw)×32 这样,接下来就可以向连续读出由32个字节组成的该字的点阵数据。 主要器件介绍 ◇ 显示模块LM12864 LM12864 是内置了HD61202U控制器的128×64点阵式液晶显示器,LM12864的显示区域被分为左右两个区,均为64×64大小,左右区的选择由CSA 和CSB的组合来决定,当CSA、CSB的组合为01时,选择左区,当二者的组合为10时,选择右区,二者组合为00或11时均无效,LM12864内置的HD61202U为一可编程器件,通过对HD61202U控制器的编程可以实现液晶显示器的各种功能,所有显示功能均可由指令控制实现,本系统共有7条指令。 ◇ FLASH存储器 串行Flash存储器以其体积小、密度高、功耗低、操作易而备受青睐,本文简单介绍了MEGAWIN公司生产的Flash存储器MM36SB020EMM36SB020E为2M×8BIT串行FLASH,大小为256KBYTE,接线方式可采用2线和3线制,器件的忙判断可以由内部的状态寄存器来判断,也可以通过外部引脚BUSY来判断,可以说,该 FLASH不仅操作十分简单,并且可以适用于多个设计方案。 通常可以把汉字库放在FLASH里,典型的汉字库可选用UCDOS下的字库,(如16点阵字库HZK16),但需要256KB空间,读取也很不方便,鉴于实际应用中需要的汉字非常少,因此可以自己制作小的汉字库,在这个小字库里只包含系统需要的汉字,需要显示某个汉字时,先算出它的区位码,再求出点阵起始位置,接着从FLASH中顺序调出该字的点阵数据并存在缓冲区里,最后依次送往LCD显示,以描出该字。 软件设计 ◇ 字库制作和维护软件设计 汉字库可存储在2线串行存储器MM36SB020E中,该存储器分为2048页,每页为128字节的存储单元,且带有128个字节的缓冲区,它有严格的时序和规定的命令格式,操作时可以通过其特有缓冲区(128字节)对其内部进行读或写,器件的智能显示接口模块通过I2C通讯接口从外部获取汉字点阵库的源数据,并根据汉字的区位码确定其点阵信息在汉字库中的存放位置,接着把存储器的点阵信息整页读出到缓冲区进行修改,最后再写入存储器,操作结束时,应清除新指令标志以免重复响应,字库制作与维护的流程。 ◇ 显示软件设计 LM12864中的显示区共有64行,分为8页,每页8行,这样就必须向两页中的对应列送数据,实际上,在写每个汉字时,一般先取字模的上16个字节并将其写在一页中,再将字模的下16个字节写在下一页中即可。共显示流程。 结束语 本文所介绍的这种LCD智能显示模块不但能够显示数据,也能够显示中文文字和图形,其显示效果远远超过数码管;随着其价格的不断下降,该模块无疑将被越来越多的智能系统所采用。
世界是个圈,人生也是个圈。

回复评论 (13)

回复:基于51单片机的汉字LCD智能显示模块设计

楼主以后多发些这类文章,非常受用的,非常感谢!!
点赞  2007-7-20 13:43

回复:基于51单片机的汉字LCD智能显示模块设计

大哥,兄弟佩服!!看此论坛中的你就如感受游戏公司中的暴雪,贴贴经典!!
点赞  2007-9-13 19:22

回复:基于51单片机的汉字LCD智能显示模块设计

老大,忘一个请求,可不可以把连接的电路图传上来啊?谢谢了,有图可以看的更明了,就是你所说的图一啊,没有图哦
点赞  2007-9-13 19:28

回复:基于51单片机的汉字LCD智能显示模块设计

现在很多夜晶都是带字库的了
点赞  2007-9-16 16:32

支持一下

支持一下支持一下支持一下
http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
点赞  2008-12-8 14:20

Re: 基于51单片机的汉字LCD智能显示模块设计

想麻烦楼主一个问题,老师现在让我做的毕业设计是十字路口交通信号控制系统,除了一些基本的要求还要求要LCD液晶显示“小人”不同的状态,即在绿灯时两边的人行道通行,“小人”显示为绿色动态,在红灯和黄灯的情况下显示红色静止。
请教下怎么搞比较好啊?:(
点赞  2008-12-8 18:06

Re: 基于51单片机的汉字LCD智能显示模块设计

好好啊好哦东西啊啊啊 谢谢谢谢啊   嗷嗷嗷
点赞  2008-12-8 20:28

Re: 基于51单片机的汉字LCD智能显示模块设计

好好啊好哦东西啊啊啊 谢谢谢谢啊   嗷嗷嗷
点赞  2008-12-8 20:29
要是再排版一下更好
点赞  2009-6-4 14:44

回复 楼主 SuperStar515 的帖子

资料很受用呢,楼主能发个图吗?
点赞  2009-6-20 00:43

回复 楼主 SuperStar515 的帖子

非常受用的,非常感谢!!
点赞  2009-6-21 04:43
好好啊好哦东西啊啊啊 谢谢谢谢啊!
点赞  2011-4-2 09:29
求图~~~~~
好好学习,天天减肥。
点赞  2011-4-2 11:02
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复