4 图形动态显示
4.1 图形点阵式液晶显示控制原理
C8051F020实验板中使用的是内置液晶显示模块CGM12864B的液晶屏。CGM12864B内部没有振荡器电路,它必须由外部提供一个时序发生器作为振荡源方可工作,它由两片带有64列驱动控制器KS0108和一片带有64行驱动控制器KS0107组合而成。另外还可以附加负压发生电路。显示是以一128×64 个点的液晶屏显示。
图形液晶显示模块KS0108将显示区分为左右半屏,整个屏从上到下64 行分为8 页,每页8 行,页地址范围为:B8H~BFH。列地址范围为:40H~7FH。数据为纵向读写,即每页的第一行对应D0?? 第八行对应D7。左、右半屏由CS1、CS2选择。
控制器KS0108 的指令相对简单,总共七条指令:显示开关设定(3EH/ 3FH),显示起始行设定(C0H /FFH),页地址设定(B8H/ BFH),列地址设定(40H/ 7FH)状态读取,写数据,读数据。
128×64点阵式液晶模块的逻辑图见图4.1
[4]
图4.1 液晶模块逻辑图
4.2 液晶显示模块外部接口
外部接口信号见表11
表11 外部接口信号
管脚号 1 2 3 4 管脚名称 LEVER Vss Vdd V0 D/I 0 +0.5V - H/L 管脚功能描述 电源地 电源电压 液晶显示器驱动电压 D/I=“H”,表示DB7~DB0为显示数据 16
D/I=“L”,表示DB7~DB0为显示指令数据 5 R/W H/L R/W=“H”,E=“H”数据被读到DB0~DB7 R/W=“H”,E=“H?L”数据被写到IR或DR 6 E H/L R/W=“L”,E信号下降沿锁存DB7~DB0 R/W=“H”,E=“H”DDRAM数据读到DB7~DB0 7 8 9 10 11 12 13 14 15 16 17 18 19 20 DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 CS1 CS2 RST Vee LED- LED+ H/L H/L H/L H/L H/L H/L H/L H/L H/L H/L H/L -10V - - 数据线 数据线 数据线 数据线 数据线 数据线 数据线 数据线 H:选择芯片(右半屏)信号 H:选择芯片(左半屏)信号 复位信号,低电平复位 LCD驱动负电压 LED背光板电源 LED背光板电源 12864A接口定义及其与C8051F020的接口电路图见图4.2
图4.2 接口电路
KS0108采用8位数据传送,间接控制方式。
17
所谓间接控制方式就是通过单片机的并行接口与液晶显示模块直接连接,单片机通过对这些接口的操作,实现对液晶显示模块的控制,完成相应的显示,可以显示数字、字母、图形符号及自定义符号。
使用LCD做数据显示,一旦数据写入LCD,数据就会一直显示在液晶屏上,不必像数码管显示那样要定时扫描才能将数据显示,其显示效果远远超过数码管显示。
4.3 图形点阵液晶显示编码规则
4.3.1汉字编码规则
一般地,常用点阵液晶显示模块的汉字字模是直接从中文系统汉字字库中提取的,然后经过格式上的调整和转换,可以得到欲显示的汉字字模。在毕业设计中,我用的汉字不是从字库中提取字模,而是采用了一个字模软件来取模(将图形点阵转换为计算机内部显示缓冲单元的数据)。字模软件的界面见图4.3。
图4.3 字模软件界面图
这个字模软件使用起来相当简单和方便。LCD显示模块显示中文字符串中,显示汉字(16×16点阵)必须使用图形方式。在使用KS0108图形方式时,显示缓冲区单元与显示屏的对应关系见图4.4所示。
图4.4 显示缓冲区单元与显示屏的关系
[5]
18
图4.4所示的显示格式与我们的习惯正好相反,如想在显示屏上显示10010110,则须向RAM中写入01101001。这适应人们的习惯,在字模软件取模时设置“字节倒序”,字模软件在取模的参数设置见图4.5所示。16×16汉字共有32个字节。这32字节存放方式见表11所示:
表11 32字节存放方式 1 2 · · · 17 18 16 32
图4.5 取模参数设置
在取模时,须设置取模参数如图4.5所示:纵向取模、字节倒序。在对字符取模时,可以根据个人需要设置不同字体和字号。不同字体和字号,取模之后得到的对应字阵的宽和高不同,但建议最好用16×16字阵,这是为了在显示过程中便于控制写数据。例如:取模得到“湖”字的编码为:
/*-- 文字: 湖 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x10,0x21,0x86,0x60,0x90,0x90,0xFF,0x90,0x90,0x00,0xFE,0x92,0x92,0xFE,0x00,0x00,0x04,0xFC,0x03,0x00,0x1F,0x10,0x10,0x90,0x5F,0x30,0x0F,0x40,0x80,0 x7F,0x00,0x00
在一个字符显示过程中,扫描方式是按列扫描。
19
4.3.2 图形编码规则
图形与字符的编码规则一样。但在图形取模时,要求是位图(文件的扩展名为BMP),其它类型图形无法取模。位图的大小为128*64,不能超出这个范围。例如下图(图4.6)取模后所得编码在附录:程序代码里KS0108.C部分char code sreen3[]中已列出。
图4.6 位图
图形转换为机内字模之后,跟字符显示原理一样。在图形的上下滚动上,是将显示起始行地址在显示完本屏之后增加1;在图形的左右移动上,相对而言要复杂得多:起始行地址不变,但由于液晶屏的列是由两块KS0108分左、右屏控制的,必须注意左、右屏的分开控制:当在起始列在左半屏时,先从左半屏的起始列写数据,写到左半屏的第64列,然后从左半屏的第一列开始写数据直到左半屏的第64列;当起始列在右半屏时,左半屏不需要驱动,直接从起始列中减去64而得到对应右半屏的第多少列,然后从右半屏的第多少列驱动。
4.4 程序流程
程序流程见图4.7和图4.8
开始 初始化时钟 初始化定时器0 初始化IO口 初始化SPIO 使能比较器1 使能片内参考电压 使能DAC0 开中断 调用显示子程序 结束
20
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机的LCD液晶显示系统设计(4)在线全文阅读。
相关推荐: