碧波液压网 欢迎你,游客。 登录 注册

基于单片机的图形LCD模块ACM19264ASB汉字显示

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。
液压导航网

  1引言

  在基于单片机的智能系统中,汉字显示模块是很重要的一个组成部分,它应用广泛、操作容易、调试简便。

  然而,在单片机上显示汉字也存在几个问题。首先,单片机资源有限,我们不能为了显示汉字占用太多的资源;其次,汉字存储读取比较繁琐,使用不方便;第三,汉字是通过点阵显示出来的,往往与LCD写入方式不一样,这就得进行转换和调整。

  值得注意的是,基于单片机的汉字显示不能在字符LCD上实现。使用图形LCD有很多优点,不仅能显示汉字,而且可以实现汉字动态移动和上下滚屏,实现汉字与图形的混合显示,同时功耗低。

  2基于单片机的汉字显示原理

  2.1汉字字模

  汉字一般是以点阵式存储的,如16×16,24×24点阵(即汉字的字模),每个汉字由32字节(16点阵)或72字节(24点阵)描述。根据汉字的不同字体,也可分为宋体字模、楷体字模、黑体字模等等。

  汉字的字模其实是汉字字形的图形化。对于16点阵字模,就是把汉字写在一个16×16的网格内,汉字的笔画能过某网格时该网格就对应1,否则该网格对应0,这样每一网格均对应1或0,把对应1的网格连起来看,就是这个汉字。汉字就是这样通过字节表示点阵存储在字库中的。

  为了方便查找所需汉字的汉字字模,每个汉字都与一个双字节的内码一一对应。通过汉字的内码可以计算出它的点阵起始字节。现以16点阵为例说明。

  先由内码计算出它在汉字库中的区位码,计算公式为:

  区码=内码第一字节-160

  位码=内码第二字节-160

  再由区位码可以得到它在汉字库中字模第一个字节的位置:

  (区码×94+位码)×32 于是,可以向后连续读出由32个字节组成的该字的点阵数据。

  2.2汉字显示

  汉字占用资源太多(如16点阵,每个汉字就需32字节),因而通常把汉字库放在EEPROM里,需要显示某个汉字时,先算出它的区位码,再求出点阵起始位置,从EEPROM中顺序调出该字的点阵数据,存在缓冲区里,最后依次送往LCD显示,描出该字。需要说明的是汉字存储方式与LCD显示方式有一定差别。

  本文使用另一种显示方法,即事先将程序用到的汉字、符号和数码(为了节省显示空间,可以将数  码压成8×16点阵),编成一个文本文件,用一段小程序做出相应小的汉字库,这个小字库的汉字点阵数据取自于一般汉字库。再经过转换和调整,得到新的汉字库,最后把新字库固化在EEPROM中。单片机只需按序号读出点阵字节,送往LCD即可显示所需汉字。减轻了单片机的负担,去除了繁琐的查找内码、求起始位置、转换、调整等工作,提高了系统可靠性。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码: 看不清?点击更换

最新评论