VFD显示模块128S64AA1及其应用_显示光电论文
关键词:vfd模块 点阵式显示 真空荧光显示屏
引言
目前,智能仪表常用的显示设备有发光二极管显示器led、液晶显示器lcd等,但是由于led不能显示复杂字符、lcd不宜在暗室中使用的缺点,无法满足智能仪表对显示的更高求;而真空荧光显示屏vfd具有亮度高、可调节、显示图案灵活的优点,在智能仪表中得到了广泛的应用。本文以samsung公司的128s64aa1vfd显示模块为例,介绍在基于51系列单片机的智能仪表中的应用。
1 显示模块的结构以及与单片机的接口
1.1 128s64aa1的基本结构
该模块提供有128×64点阵,包括vfd显示屏、vfd驱动电路、dc/dc转换器以及显示控制器;供电电压是12v,逻辑电压是5v;亮度可以由软件来控制。
其接线端子有供电端和接口端两个。其中接口端的引脚说明如表1所列。
表1 接口端引脚说明
引 脚 | 名 称 | 引 脚 | 名 称 | 引 脚 | 名 称 |
1 | brad | 11 | a7 | 21 | d2 |
2 | gnd | 12 | a6 | 22 | d3 |
3 | write | 13 | a5 | 23 | d4 |
4 | gnd | 14 | a4 | 24 | d5 |
5 | ready | 15 | a3 | 25 | d6 |
6 | clear | 16 | a2 | 26 | d7 |
7 | dspe | 17 | a1 | 27 | wp0 |
8 | a10 | 18 | a0 | 28 | dp0 |
9 | a9 | 19 | d0 | 29 | wp1 |
10 | a8 | 20 | d1 | 30 | dp1 |
外部接口简单易用,表1中所列的30根接口线的功能分别为:8根数据线d0~d7和于传输数据及亮度控制信号;11根地址线用于指定数据写入地址,其中a0~a7指定列数,a8~a10指定行数;9根控制线中,brad为选择写数据模式与亮度控制模式,write为写控制信号,ready为模块写数据允许,clear为清屏信号,dspe为显示允许信号,wp为选择写数据页数,dp为显示页数;2根地线为从电池和逻辑地。
1.2 128s64aa1与单片机的接口
图1是128s64aa1模块与51系列单片机的接口示意图。其中p1口作为vfd所需的控制线,p0和p2作为地址线和数据线。
2 显示模块的控制和操作
该模块有清空方式(clear mode)、写数据方式(write mode)和亮度控制方式(dimming mode)三种工作方式,对应的操作时序如图2所示。
图2所示的操作时序清晰示意了三种工作方式下对vfd模块的控制和操作过程。
(1)清空方式
将clear端置低电平,此时由wp0和wp1所选择的ram清空。当清空完毕时,ready输出低电平。此方式的优先级最高,即使ready的输出为1,ram仍波清空。
用c51实现的ram清空的函数为:
void vfd_clear(void)
{p1^2=0; //置清空ram模式
p1^2=1;
p1^1=0;
do {}
while(p1^1==1); //等待清空响应
}
(2)写数据方式
当dspe为高电平,brad为高电平时,通过写操作可将待显示的数据写入由wp0和wp1所选择的ram;当数据写入完毕,ready输出低电平,此时可以继续写入下一个数据。在此工作方式中,为了使vfd内部的ram按照行排列地址连续,以便于软件编程,在实际设计时可将地址a8~a10接vfd的a0~a2,以用于选择点阵的行数;而将地址线a0~a7接vfd的a3~a10,用于选择点阵的列数。
在写工作方式中,应包括以下几个操作步骤:
①置写数据模式;
②置显示允许;
③选择写数据页数;
④写待显示数据;
⑤选择显示页数。
因此,可将实现此功能的c51程序设计如下:
void wrchar(uchar xdata *addr,uchar code *codename,uchar count)
//addr为字的起始地址,count为字符个数
{uint i=0;
uchar col;
for(col=0;col<count;col++){
*(addr++)=codename[i++];
do {}
while(p1^1==1);
}
} //写数据函数
p1^0=1; //置写数据模式
p1^3=1; //置显示允许
p1^4=0; //选择写第0页
p1^6=0; //选择写第0页
wrchar(0x1000,page0[],64); //写数据,从1000开始按行写64个字符编码,存放于page0[]数组中
p1^5=0;
p1^7=0; //选择显示第0页
(3)亮度控制方式
当write输入有效信号,brad为低电平时,d0和d1两位的值决定显示的亮度。初始化时的亮度为100%,所需亮度与d1、d0两位数据的关系如表2所列。
表2 亮度控制表
d1 | d0 | 亮度/% |
0 | 0 | 25 |
0 | 1 | 50 |
1 | 0 | 75 |
1 | 1 | 100 |
因此,若要控制显示亮度,可用下列c51程序实现:
uchar xdata *p;
p=0x00;
(*p)=0x02; //控制亮度为75%
3 应用实例
某测控装置需显示包括概貌、温度控制、ph值控制以及实时同线在内的一系列图文,且显示要求较高,要求在光线不足的条件下保证其亮度。为此,选用128s64aa1这一vfd模块作为显示器件。该系统人机交互部分包括显示模块以及四个按键:确认键、参数修改键、光标移动键及返回键。
开机时要求显示公司名称,待按下确认键后,再进入主菜单显示。此时,用户可通过按光标移动键来选择不同的菜单页面,待确认键按下后进入相应的画面。在次级页面,按光标移动键和确认键,可以完成实时值和实时曲线的显示以及相应参数的修改和保存;修改完成后,按返回键返回到主菜单。
下面以主菜单画面中光标移动的子程序为例,简要介绍在键盘按下后,vfd上显示变化的过程。菜单包括7个菜单项;概貌、温度控制、ph值控制、转速消泡补料、ph do的电极标定、ph temp实时曲线和do agit实时曲线。为了简化程序设计,光标采用反写字符的方式,简单直观。该子程序的框图如图3所示(semipg为菜单号),vfd显示的2幅主菜单内容如图4所示。
当光标移动键按下后,先判断光标的位置(semipg=?),然后正写光标所在的位置,恢复原貌;semipg加1(保持semipg在1~7内),然后反写semipg菜单项,使光标移动到下一项。此时按下确认键,就可根据semigpg的值进入光标所在的下一级菜单。
以上仅是128s64aa1模块在实际测控装置中的一个显示实例。在实际装置中,该模块还实现了实时数据显示、设定参数修改显示、实时数据曲线显示功能。
结语
vfd显示模块是一种集显示、控制与驱动于一体的显示器件,其最大特点是自身发光,特别适合在光线不足的条件下实现图文显示。由于该模块亮度高,可满足在暗室中显示的要求,而且性能可靠,显示美观。另外,vfd模块还有接口方便,编程简单等优点,可被广泛应用在家用电器、办公自动化设备、工业仪器表及汽车等各种领域中。