微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于ACM12864J液晶显示模块应用设计

基于ACM12864J液晶显示模块应用设计

时间:03-13 来源:互联网 点击:

0. 引言
点阵式平板图形液晶显示器在各种便携式产品中具有非常广泛的应用。显示器的核心液晶显示器控制器品种繁多,各种控制芯片在控制电路逻辑、控制指令、指标参数等方面各有差异。但是对于已经带有控制电路的平板点阵式图形液晶显示器,使用者无需关心其控制核心的集成芯片,控制电路的几个信号,就可以方便地利用它进行开发。

1.ACM12864J液晶显示模块的特性

ACM12864J是采用联合电子公司生产的小型液晶显示模块,该模块价格低,数据可读写,自带负压发生电路,单+5V供电,带背光,可由各种微控制器器直接控制,数据读写操作不受外部时钟控制,不带汉字库,占空比为1/64,外部共有20条引脚来进行外部接口。

ACM12864J 采用的数据传送方式是纵向数据传送方式,64行共分为0~7页,每页8行,逐页显。发送数据步骤:先发送第0页第一列,高位在下,为一个字节;再发送第二列,直到128行结束;然后发送第2页第一列,依次类推,直到整屏数据发送完为止。。这种数据显示方式利用字模提取软件,采用"纵向8点下高位"输出格式取模,不做任何修改,就能很好的显示。其写时序如图1所示。
2.ACM12864J液晶显示模块应用的硬件设计

ACM12864J数据为8位并行数据接口,外加数根控制线,若直接与单片机接口,占用口线太多。而SPCE061A内置有SIO接口,通过 74HC164进行的串并转换,可以用来传送8位并行数据。这样加上连背光灯控制信号线也不过占用8根I/O口。倘若不进行读操作,可减至7根控制信号线。SIO的接口共有四种接口方式,即地址为8位、16位、24位和无地址接口,与ACM12864J的接口采用无地址方式传送,设置好寄存器工作状态,即可直接传送数据,SPCE061A的SIO接口最高传输率可达5Mb/S。数据的读写控制线由单片机的I/O线控制,LCD所需的时序延时由编好的位操作函数直接控制,编程时不须考虑SPCE061A与ACM12864J接口的时间要求,简化了编程。硬件电路如图2所示。

3. 软件程序编制
3.1 SIO初始化及写数据

SPCE061A单片机是由台湾凌阳科技股份有限公司生产的具有SOC系统的微控制器,该控制器内置A/D转换、SIO口等。SPCE061A的串行外围设备接口SIO在传送数据之前,须对SIO口控制寄存器进行初始化。SIO口控制寄存器P_SIO_Ctrl主要设置SIO口通信的工作模式,包括设备地址、传输速度、读写设置、功能设置等。SIO口数据寄存器P_SIO_Data主要负责读写过程中数据的接收与发送。SIO口的启动控制寄存器 P_SIO_Start,又是状态控制寄存器,根据P_SIO_Start的状态,判断数据接收或发送完毕。

SPCE061A不提供位操作指令,对位进行操作时,要不影响其他位的状态,可采用"读---改---写"的办法,即:先读出某一位的的值,经逻辑与、逻辑或运算,再回写到当前字节,即改变了I/O口的状态。为此,编写位操作函数Set_IOA_Bit(n,dir,attrib,buffer,data)、 Set_IOB_Bit(n,dir,attrib,buffer,data)解决上述问题,该函数的参数定义如下:n-位操作的位数;dir,attrib,buffer-位操作的属性;data-位操作的数据;。其传送数据的程序如下:

3.2 ASCII字符的显示

最常用的办法是采用字模提取软件提取字模,这种方法在资源比较少的条件下是适宜的。缺点是比较麻烦,要来回改动,且不好寻址。一种比较实用的方法是制作好一个ASCII字模表,定义为一个一维数组的形式。程序中若出现数字变量的操作,须把变量转化为字符显示时。因此,先判断显示的是字符还是数字,若是数字,先应转化为字符。然后再把ASCII值减去32得到索引值,根据索引值直接查表,查得8*16的点阵字模,送出显示。在程序中可以用变量直接表示数字并进行运算,显示时只送变量。对于SPCE061A,内置有32K字的flash ROM,而表格又不大,在数组前加入"const"即可把数组存到内部的flash ROM中。在ACM12864J中,取每个ASCII字模为 8*16,每个ASCII字模占16个字节,按ASCII从小到大的顺序排列,便于查找。

3.3 汉字的显示

汉字在ACM12864J上一般采用两种取模方式:一种为12*12点阵,可显示5行汉字,缺点是编程较为困难;一种为16*16点阵,可显示4行汉字,编程比较简单。以16*16点阵为例来说,每个汉字占用32个字节,根据LCD显示的要求,利用字模提取软件,采用"纵向8点下高位"能满足要求。
在进行中文菜单设计时,每行可显示8个汉字,有个"焦点"问题,编程时可设置一个"焦点指针",处于焦点之下的反白显示,其他的正常显示。这样可把每行显示编成一个函数的形式,控制好焦点,显示时调用一次显示行子函数。汉字显示程序如下(fb=1,反白显示):

3.4 图形及动画的显示

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top