基于ACM12864J液晶显示模块应用设计
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 图形及动画的显示
图形及动画的显示一般是整屏操作的,字模的选取可以先用windows下的画笔工具。新建一幅128*64像素的图片,编完图片后,保存为黑白图象。然后在字模软件中打开,提取出字模来。每幅图片占用128*8个字节的空间,根据图片数据存储的特点,提取的邻近字模数据相同。若是图片比较多或者进行动画显示,最好进行压缩保存,节省控制器宝贵的资源,读取时编写控制器软件解压缩。
3.5 曲线的显示与绘制
点是组成曲线的基本单位,画曲线也就是多次调用点函数进行显示的。点函数编制思想也就是根据横坐标X(1=X=128),纵坐标Y(1 lt;=Y=64)来确定某一点,而在画函数时,X坐标从左往右,正好符合人的习惯。但Y坐标从上到下依次增大,与人相反,故必须校正。以画两个周期的正弦函数为例,可包含头文件"math.h",调用库函数y=sinf(x),其中x为浮点数弧度显示,y的值介于-1与1之间。要满屏显示,须加 1变为正,放大31倍;x坐标为128点,取步进量为0.1弧度,可参考以下程序:
4. 结语
本文介绍了不带中文字库的ACM12864J与SPCE061A的接口技术,提出了技巧性的编程解决办法。采用ACM12864J液晶显示模块,可以显示字符、中文汉字、图形与动画等,提高了系统的可视化界面,在工业仪器仪表中得到了广泛的应用。凌阳公司生产的SPCE061A具有不仅具有一般控制器的功能,加上其独具特色的语音处理功能,可以开发出许多智能化的产品。
参考文献
[1] 深圳联合电子公司液晶显示模块ACM12864J用户使用手册
[2] 凌阳科技股份有限公司.μ'nSPTM 单片机[R]. 2001
[3] 薛钧义等. 凌阳十六位单片机原理及应用. 北京航空航天大学出版社,2003
评论