|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
<strong>引言</strong>
目前,智能仪表常用的显示设备有发光二极管显示器LED、液晶显示器LCD等,但是由于LED不能显示复杂字符、LCD不宜在暗室中使用的缺点,无法满足智能仪表对显示的更高求;而真空荧光显示屏VFD具有亮度高、可调节、显示图案灵活的优点,在智能仪表中得到了广泛的应用。本文以 Samsung公司的128S64AA1VFD显示模块为例,介绍在基于51系列单片机的智能仪表中的应用。
<strong>1 显示模块的结构以及与单片机的接口</strong>
1.1 128S64AA1的基本结构
该模块提供有128×64点阵,包括VFD显示屏、VFD驱动电路、DC/DC转换器以及显示控制器;供电电压是12V,逻辑电压是5V;亮度可以由软件来控制。
其接线端子有供电端和接口端两个。其中接口端的引脚说明如表1所列。
<strong>表1 接口端引脚说明</strong>
引脚名称引脚名称引脚名称1BRAD11A721D22GND12A622D33WRITE13A523D44GND14A424D55READY15A325D66CLEAR16A226D77DSPE17A127WP08A1018A028DP09A919D029WP110A820D130DP1
外部接口简单易用,表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作为地址线和数据线。
<ignore_js_op>
2010-3-18 18:51:51 上传
<strong>下载附件</strong> (23.43 KB)
</ignore_js_op>
<strong>2 显示模块的控制和操作</strong>
该模块有清空方式(Clear Mode)、写数据方式(Write Mode)和亮度控制方式(Dimming Mode)三种工作方式,对应的操作时序如图2所示。
<ignore_js_op>
2010-3-18 18:51:50 上传
<strong>下载附件</strong> (18.14 KB)
</ignore_js_op>
图 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所列。
<strong>表2 亮度控制表</strong>
D1D0亮度/250150107511100
因此,若要控制显示亮度,可用下列C51程序实现:
uchar xdata *p;
p=0x00;
(*p)=0x02; //控制亮度为75%
<strong>3 应用实例</strong>
某测控装置需显示包括概貌、温度控制、pH值控制以及实时同线在内的一系列图文信息,且显示要求较高,要求在光线不足的条件下保证其亮度。为此,选用128S64AA1这一VFD模块作为显示器件。该系统人机交互部分包括显示模块以及四个按键:确认键、参数修改键、光标移动键及返回键。
开机时要求显示公司名称,待按下确认键后,再进入主菜单显示。此时,用户可通过按光标移动键来选择不同的菜单页面,待确认键按下后进入相应的画面。在次级页面,按光标移动键和确认键,可以完成实时值和实时曲线的显示以及相应参数的修改和保存;修改完成后,按返回键返回到主菜单。
下面以主菜单画面中光标移动的子程序为例,简要介绍在键盘按下后,VFD上显示信息变化的过程。菜单包括7个菜单项;概貌、温度控制、pH值控制、转速消泡补料、pH DO的电极标定、pH Temp实时曲线和DO Agit实时曲线。为了简化程序设计,光标采用反写字符的方式,简单直观。该子程序的框图如图3所示(SemiPg为菜单号),VFD显示的2幅主菜单内容如图4所示。
<ignore_js_op>
2010-3-18 18:51:50 上传
<strong>下载附件</strong> (31.27 KB)
</ignore_js_op>
<ignore_js_op>
2010-3-18 18:51:50 上传
<strong>下载附件</strong> (17.16 KB)
</ignore_js_op>
当光标移动键按下后,先判断光标的位置(SemiPg=?),然后正写光标所在的位置,恢复原貌;SemiPg加1(保持SemiPg在1~7 内),然后反写SemiPg菜单项,使光标移动到下一项。此时按下确认键,就可根据SemigPg的值进入光标所在的下一级菜单。
以上仅是128S64AA1模块在实际测控装置中的一个信息显示实例。在实际装置中,该模块还实现了实时数据显示、设定参数修改显示、实时数据曲线显示功能。
<strong>结语</strong>
VFD显示模块是一种集显示、控制与驱动于一体的显示器件,其最大特点是自身发光,特别适合在光线不足的条件下实现图文信息显示。由于该模块亮度高,可满足在暗室中显示的要求,而且性能可靠,显示美观。另外,VFD模块还有接口方便,编程简单等优点,可被广泛应用在家用电器、办公自动化设备、工业仪器表及汽车等各种领域中。
<strong>参考文献</strong>
1. 马忠梅 单片机的C语言应用程序设计 1997
2. 谭浩强 C 程序设计 1999
3. SAMSUNG SPECIFICATION for GRAPHIC TYPE VFDMODULE
作 者:华东理工大学 曲金鹏 龚建辉 凌志浩
来 源:单片机与嵌入式系统应用2003(10) |
|