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

2009-2-21 08:17 2225 3 3 分类: MCU/ 嵌入式

4图形点阵液晶显示模块ACM19264ASB的结构与原理<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


4.1技术参数和性能


1)电源:+5V


2)显示内容:192(列)×64(行)点阵,可显示图


形,也可显示12×416点阵)汉字;


3)全屏幕点阵;


47种指令;


5)与CPU接口采用8位数据总线并行输入输出和8条控制线。


4.2模块主要外部接口


1VSS:地;


2D/I:高时表示DB7DB0为显示数据,低时


表示为显示指令数据;


3R/W:读写控制;


4E:使能信号;


5DB7DB0:数据线;


6CS3CS13组列驱动选择器;


7RESET:复位控制;


8VEE:负电压驱动。


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,起始行地址可以是063的任意一行;


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


4)设置Y地址【0,0,0,1,A5,A4,A3,A2,A1,A0】,Y可从063选,对应CS3CS1,各包含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为行驱动器,IC3IC1为列驱动器,各驱动器含有如下功能器件:指令寄存器(IR),数据寄存器(DR),忙标志(BF),显示控制触发器(DFF),XY地址计数器,显示数据RAMDDRAM),Z地址计数器(即行扫描计数器,扫完一行自动加1063循环,故可实现滚屏显示)。

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />


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


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


2 LCD ACM19264ASB DDRAM



CS1=1


CS2=1


CS3=1


Y=


0


1



63


0


1



63


0


1



63


行号


X=0


DB0DB7


DB0DB7



DB0DB7


DB0DB7


DB0DB7



DB0DB7


DB0DB7


DB0DB7



DB0DB7


07















 


X=7


DB0DB7


DB0DB7



DB0DB7


DB0DB7


DB0DB7



DB0DB7


DB0DB7


DB0DB7



DB0DB7


5663


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


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


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


unsignedintfarHzLib[161000];转换前的汉字库点阵数组,


双字节写入


unsignedintfarHzXLib[82000];转换后的汉字库点阵数组,


单字节写入


这里,转换前的汉字库数组每次按双字节写入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[16kj]>>(15i))(HzLib


[16kj]>>(16i))2;


取每个字节的相同位,实现行到列的转换


HzXLib[i32k]=GetBit<时,高低位顺序倒转180°


}


}


for(i=16;i<32;i++);再转换高16字节


{


for(j=15;j>=8;j--)


{


GetBit=(HzLib[16kj]>>(31


i))(HzLib[16kj]>>(32i))


2


HzXLib[i32k]=GetBit<<(j


8)


}


}


}


}


6汉字显示应用举例


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


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


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


1LCD3个区CS1CS3分别选中写入,确定显示位置后,先选中对应区CS再写入;


2)该型号LCD每行只能显示24个汉字,到边界时注意加一个判断程序,防止显示位置出错;


3)程序中可能用到数码,为了节省显示空间,可以事先将数码压成8×16点阵,添加到EEPROM汉字库后面。

本系统在信号源产生系统中,已成功使用,速度快,程序简捷,没有出现误码等问题
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
3
关闭 站长推荐上一条 /3 下一条