当前位置:首页 > 显示光电 > 显示光电
[导读]1引言  在基于单片机的智能系统中,汉字显示模块是很重要的一个组成部分,它应用广泛、操作容易、调试简便。  然而,在单片机上显示汉字也存在几个问题。首先,单片机资源有限,我们不能为了显示汉字占用太多的资

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即可显示所需汉字。减轻了单片机的负担,去除了繁琐的查找内码、求起始位置、转换、调整等工作,提高了系统可靠性。

  表116点阵汉字字库存储方式

3自定义小字库的制作

  典型的汉字库可选用UCDOS下的字库,如16点阵字库HZK16。需要256K空间,用了较大的EEPROM,又不方便读取,而实际应用中需要的汉字又非常少,因而我们可以自己制作小的汉字库,在这个小字库里只包含系统需要的汉字。这样,一方面节省读取时间,另一方面大大地节省了资源。

  限于篇幅,这里仅仅给出流程图(假定事先将所需汉字写到了一个文本文件),如图1所示。

4图形点阵液晶显示模块ACM19264ASB的结构与原理

  4.1技术参数和性能

  1)电源:+5V;
  2)显示内容:192(列)×64(行)点阵,可显示图形,也可显示12×4(16点阵)汉字;
  3)全屏幕点阵;
  4)7种指令
  5)与CPU接口采用8位数据总线并行输入输出和8条控制线。

  4.2模块主要外部接口
  
  1)VSS:地;
  2)D/I:高时表示DB7~DB0为显示数据,低时表示为显示指令数据;
  3)R/W:读写控制;
  4)E:使能信号;
  5)DB7~DB0:数据线;
  6)CS3~CS1:3组列驱动选择器;
  7)RESET:复位控制;
  8)VEE:负电压驱动。

  4.3指令说明,指令字为【R/W,D/I,DB7,DB6,DB5,DB4,DB3,DB2,DB1,DB0】

  1)显示开关控制【0,0,0,0,1,1,1,1,1,D】,D=1表示开显示,可进行各种显示操作;

  2)设置显示起始行【0,0,1,1,A5,A4,A3,A2,A1,A0】,起始行地址可以是0~63的任意一行;

  3)设置页地址(即X地址)【0,0,1,0,1,1,1,A2,A1,A0】,8行为一页,模块共64行即8页,0~7可选;

  4)设置Y地址【0,0,0,1,A5,A4,A3,A2,A1,A0】,Y可从0~63选,对应CS3~CS1,各包含64列,Y可选择其中一列作读写操作起始列,每操作一次Y自动加1;

  5)读状态【1,0,BF,0,ON/OFF,RST,0,0,0,0】,其中BF为忙标志,BF=1表示内部正进行操作,不接受外部指令,ON/OFF为显示控制触发器状态,ON/OFF=1为开显示,数据就显示在屏幕上,RST=1表示内部正进行初始化,不接受任何指令和数据;

  6)写显示数据【0,1,D7,D6,D5,D4,D3,D2,D1,D0】,写入显示数据存储单元进行显示,Y地址指针自动加1;

  7)读显示数据【1,1,D7,D6,D5,D4,D3,D2,D1,D0】,读出数据,Y自动加1。

  4.4模块主要硬件构成说明

  图形显示LCD模块ACM19264ASB的内部结构

  如图2所示。IC4为行驱动器,IC3~IC1为列驱动器,各驱动器含有如下功能器件:指令寄存器(IR),数据寄存器(DR),忙标志(BF),显示控制触发器(DFF),XY地址计数器,显示数据RAM(DDRAM),Z地址计数器(即行扫描计数器,扫完一行自动加1,0~63循环,故可实现滚屏显示)。

4.5显示数据存储单元地址表

表2示出显示数据存储单元地址。


  表2图形显示LCD模块ACM19264ASB的DDRAM地址表

5汉字库到LCD的调整与转换

  从表1和表2可以看出,汉字库点阵需要经过调整和转换才能显示在LCD上。具体地讲,需要先从行点阵转换到列点阵,再翻转180°。相应程序如下:

  先将#include加到头文件中,然后设置数组:

  unsignedintfarHzLib[16*1000];转换前的汉字库点阵数组,双字节写入unsignedintfarHzXLib[8*2000];转换后的汉字库点阵数组,单字节写入 这里,转换前的汉字库数组每次按双字节写入16位点阵数据,快捷方便,转换后的汉字库数组按单字节写入。 最后把转换子程序函数加到主程序后面即可。转换子程序如下:voidHZ_TZH(){

  inti,j,k,GetBit;for(k=0;k{for(i=0;i<16;i++);先转换低16字节{for(j=7;j>=0;j--){GetBit=(HzLib[16*k+j]>>(15-i))-(HzLib[16*k+j]>>(16-i))*2;取每个字节的相同位,实现行到列的转换HzXLib[i+32*k]+=GetBit<时,高低位顺序倒转180°}}for(i=16;i<32;i++);再转换高16字节{for(j=15;j>=8;j--){GetBit=(HzLib[16*k+j]>>(31-i))-(HzLib[16*k+j]>>(32-i))*2HzXLib[i+32*k]+=GetBit<<(j-8)}}}}

  6汉字显示应用举例

  图3示出汉字显示的典型应用框图。

CPLD用来扩展I/O口,单片机通过CPLD读取汉字库EEPROM点阵数组,缓存到SRAM中,然后依次写入LCD显示出来,键盘用来输入指令与改变数据。

  使用过程中应注意几个问题:

  1)LCD分3个区CS1~CS3分别选中写入,确定显示位置后,先选中对应区CS再写入;
  2)该型号LCD每行只能显示24个汉字,到边界时注意加一个判断程序,防止显示位置出错;
  3 )程序中可能用到数码,为了节省显示空间,可以事先将数码压成8×16点阵,添加到EEPROM汉字库后面。 本系统在信号源产生系统中,已成功使用,速度快,程序简捷,没有出现误码等问题。

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

杭州2022年8月19日 /美通社/ -- 8月18日,“第一届中国酒馆行业高峰论坛”、“第二届中国酒吧创新论坛”在杭州城中·香格里拉酒店分设两大会场同步举行...

关键字: ACM BSP 灯光 音响

(全球TMT2022年7月15日讯)中视典正式推出ARX协作平台,赋能企业生产管控环节,助力企业降本增效,推动企业数字化转型。中视典ARX协作平台是面向企业的数字化管理协作平台,以AR/MR技术为核心,综合运用AI、云...

关键字: 数字化 3D模型 云计算 指令

香港2022年7月5日 /美通社/ -- 近日,TUV南德意志集团(以下简称“TUV南德”)联合HK3C Association Ltd.(以下简称“HK3C”)于香港成功举...

关键字: 研讨会 指令 PS AN

2022 年 6 月 30 日,中国—— 依托在串行EEPROM技术领域的积累和沉淀,意法半导体率先业界推出了串行页EEPROM (Serial Page EEPROM)。这款全新类别的EEPROM 是一种SPI串行接口...

关键字: 意法半导体 EEPROM 非易失性存储器

(全球TMT2022年6月20日讯)2022年6月,亚马逊云科技宣布和神州泰岳共同推动中国企业上云出海,加快海外业务的数字化转型和持续创新。目前,神州泰岳携手亚马逊云科技已为200多家企业的出海业务提供了服务。...

关键字: 亚马逊 神州 MARKET 指令

(全球TMT2022年6月15日讯)亚马逊云科技宣布,神州泰岳依托亚马逊云科技的全球优势,结合深厚的技术积淀和丰富的客户运维经验,共同推动中国企业上云出海,加快海外业务的数字化转型和持续创新。目前,借助亚马逊云科技,神...

关键字: 亚马逊 神州 汽车 指令

北大本科生,刚刚凭借在芯片领域的贡献,斩获国际计算机学会(ACM)年度学生科研竞赛总决赛第一名(本科生组)!

关键字: 芯片 半导体 ACM

广州2022年6月1日 /美通社/ -- 近日,国际独立第三方检测、检验和认证机构德国莱茵TUV大中华区(以下简称“TUV莱茵”)为万居隆电器有限公司(以下简称“万居隆”)研...

关键字: 热泵 CE 指令 电器

在支持性的基础市场,强劲的有机增长高达16.4% 价格加速上涨,从而在第一季度产生正向的价格成本价差 在圣戈班业务遍布的所有国家,不断扩大能效和脱碳解决方案的部署 2022年前景展望得到确认 上海...

关键字: IMPACT 应用技术 指令 CK

(全球TMT2022年4月28日讯)4月25日,国际独立第三方检测、检验和认证机构德国莱茵TUV大中华区(简称“TUV莱茵”)为南京楚航科技有限公司(简称“楚航科技”)研发的60GHz生命体征探测雷达和77GHz前向雷...

关键字: 指令 毫米波雷达 CE HZ

显示光电

64675 篇文章

关注

发布文章

编辑精选

技术子站

关闭