ARM7的键盘与VFD显示器接口技术

发布时间:2010-4-25 18:25    发布者:李宽
关键词: VFD , 技术 , 键盘 , 接口 , 显示器
引言

仪表行业以及工业生产过程对实时性、处理速度、智能化等方面有了更高的要求,而ARM微处理器具有功耗低、指令吞吐量高、实时中断响应、处理器宏单元性价比高等特点,因此,将ARM微处理器引入产品和工业生产的开发设计中已经成为一种必然趋势。

在工业控制和产品设计中,一般都要求具有供操作的键盘和可视化界面。传统显示模块的设计一般都是采用I/O口外扩驱动电路连接而成,显示器一般都采用 LEDLCD,要么成本低但实现起来比较复杂,要么实现起来简单成本却很高。笔者综合考虑了成本、实现的难易程度、功能以及稳定性等方面的要求,提出了一种实现起来较容易且具有较高对比度和精度的VFD显示的方法。

1 硬件电路的实现

考虑到未来市场对功耗、处理速度、实时性、多功能、多任务处理等方面会有更高的要求,本设计采用基于周立功公司MiniARM的M2020—FNU20嵌入式核心板(微处理器为LPC2220)及其M22A开发板。M22A开发板的板上资源主要有:

    ◆μC/OS—II实时操作系统;
    ◆TCP/IP协议、FAT32文件管理系统;
    ◆UART、I2C、SPI通信接口;
    ◆JTAG接口支持在线调试;
    ◆工业级10M以太网控制接口CSB900A—IQ;
    ◆2 MB NOR Flash程序存储器等。

另外,现代工业控制和产品生产大都需要可供操作的键盘以及可视化界面。本设计采用HTl6511芯片驱动键盘和显示。考虑到工业生产中各种不利环境的影响,本设计采用具有较高对比度,且具有很好的可靠性与环境适应性的VFD(真空荧光显示器)进行显示。HTl6511是一个典型的VFD驱动芯片,由5个 led输出口、1个控制电路、1个显示存储器(内部)和1个按键扫描电路组成。微处理器通过三线串行接口对HTl6511进行串行数据输入、输出。图1是系统硬件电路框图,主要包括LPC2220与驱动芯片HTl6511的连接。HTl6511与VFD显示器的连接,使用HTl6511外扩的12×4的按键扫描电路以及指示灯和开关电路。

1.gif

2 软件设计

软件采用模块化设计方法,使用基于优先级的系统调度法来实现各个模块。每个模块设置为一个任务,如taskO为读键值模块,taskl为显示模块等。给每个模块设置一个固定的优先级,当任务执行完后自动挂起,挂起的时间长短可以自己设定。任务挂起后进入等待状态,挂起时间一到,任务自动进入就绪状态。

开发板内嵌了μC/0S—II实时操作系统。本设计采用可剥夺型内核。若系统正在执行一个优先级较低的任务,且有一个或多个优先级较高的任务就绪时,优先级较低的任务将被打断,去执行优先级最高的任务。执行完成后,系统不会马上返回中断的地方,而是执行当前就绪任务中具有最高优先级的任务;当没有更高优先级任务就绪时,系统才返回原来中断的地方。若程序中某些模块(如读键值、推显等)不希望被打断,就需要在进入该模块的开始处关闭中断,执行完后再打开中断。以下是各个功能模块的实现。

2.1 HTl6511的读/写程序

图2为HTl6511的数据读/写时序。其中,tcw为时钟脉冲宽度,最小值为400 ns;tsu为数据上传时间,最小值为100 ns;th是数据保持时间,最小值为lOO ns;tcs为时钟调整时间,最小值为1μs;tph1和tplh都是数据传递延迟时间,tph1最大值为300 ns,tplh最大值为100 ns。

2.gif

从图2中可以看出,读/写数据时必须置CS为低;写数据(D1)过程中,在时钟(CLK)的下降沿往数据线上送数,送完数后需要将CLK置高,且要保持一个tcw的时间;在读数据时,需要先将CLK置高一段时间,然后再拉低一段时间,才开始从数据线上读取数据。

以下程序为向HTl6511写一个字符:

c1.gif
c2.gif

2.2 主要驱动程序

驱动程序主要包括显示驱动和按键驱动。

图3为HTl65l1的显示驱动一般命令时序。图中,命令1设置显示模式;命令2设置读/写数据模式;命令3设置读/写数据的起始地址;数据1到n为需要读/写的数据;命令4设置VFD的显示亮度。

3.gif

显示驱动程序主要包括向HTl6511写命令和写控制显示的数据;而按键驱动程序则主要是从HTl6511读取键值,再拼接为有效键值。由图3中时序可知,应先设置显示模式,然后设置读/写数据模式和读/写数据的起始地址,再发送数据,最后设置显示亮度。每发送一个命令或数据之后都需要一段延时。

显示驱动程序为:

c3.gif
c4.gif
c5.gif

结语

在实际应用中,只需要将HTCS、HTCLK、HTD0、HTDI定义为微处理器的一般双向I/O口。根据使用的VFD真值表确定显示数据或字母的字形码。用一个数组disp口来存储这些字形码,并使用上述的update_disp()函数将数组发送到HTl6511驱动芯片,即可完成显示。对于按键扫描,使用read_key()函数已经读到按键值,并放在data寄存器中。

本设计采用ARM微处理器实现了多功能键盘显示,具有实现容易、性价比高、显示精度高、显示对比度高、反应速度快等优点。因此,该设计适用于很多要求较高的工业应用场合。HTl6511的驱动模块适用于各种类型的微处理器。本设计采用ARM7微处理器来实现,主要是考虑到现代产品和工业过程设计中对功耗、处理速度以及功能的高要求。本设计具有一定的通用性,适应工业生产发展的总趋势。

参考文献

   1. 杜春雷 ARM 体系结构与编程 2003
   2. 何立民 嵌入式系统的实时性问题 [期刊论文] -单片机与嵌入式系统应用2004(9)
   3. 周立功.张华 深入浅出ARM7--LPC213x/214x 2005
   4. Holtek HT16511 1/8 to 1/16 Duty VFD Controller 2004

作者:西安科技大学 王崇峰  黄梦涛
来源:单片机与嵌入式系统应用 2009 (1)
本文地址:https://www.eechina.com/thread-10789-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表