图形LCD模块ACM19264ASB的汉字显示
4.5显示数据存储单元地址表 5汉字库到LCD的调整与转换 CPLD用来扩展I/O口,单片机通过CPLD读取汉字库EEPROM点阵数组,缓存到SRAM中,然后依次写入LCD显示出来,键盘用来输入指令与改变数据。
4.4模块主要硬件构成说明
图形显示LCD模块ACM19264ASB的内部结构
如图2所示。IC4为行驱动器,IC3~IC1为列驱动器,各驱动器含有如下功能器件:指令寄存器(IR),数据寄存器(DR),忙标志(BF),显示控制触发器(DFF),XY地址计数器,显示数据RAM(DDRAM),Z地址计数器(即行扫描计数器,扫完一行自动加1,0~63循环,故可实现滚屏显示)。
表2示出显示数据存储单元地址。
表2图形显示LCD模块ACM19264ASB的DDRAM地址表
从表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示出汉字显示的典型应用框图。
使用过程中应注意几个问题:
1)LCD分3个区CS1~CS3分别选中写入,确定显示位置后,先选中对应区CS再写入;
2)该型号LCD每行只能显示24个汉字,到边界时注意加一个判断程序,防止显示位置出错;
3 )程序中可能用到数码,为了节省显示空间,可以事先将数码压成8×16点阵,添加到EEPROM汉字库后面。 本系统在信号源产生系统中,已成功使用,速度快,程序简捷,没有出现误码等问题。
- 为手持设备的被动式OLED显示器供电(11-25)
- LCD显示屏的器件选择和驱动电路设计(02-15)
- 基于DSP的液晶显示若干问题的探讨(06-02)
- LCD背光及对比度调节应用方案(-24V应用方案)(06-11)
- 世健基于Pearl的LCD电视解决方案(06-26)
- LCD驱动IC诸元趋势分析(11-05)