《电子技术应用》
您所在的位置:首页 > 模拟设计 > 设计应用 > ARM7的键盘与VFD显示器接口技术
ARM7的键盘与VFD显示器接口技术
摘要: 笔者综合考虑了成本、实现的难易程度、功能以及稳定性等方面的要求,提出了一种实现起来较容易且具有较高对比度和精度的VFD显示的方法。
Abstract:
Key words :

  引 言

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

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

系统硬件电路框图

  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。

HTl6511的数据读

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

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

程序

程序

  2.2 主要驱动程序

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

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

HTl65l1的显示驱动一般命令时序

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

  显示驱动程序为:

程序

程序

程序

  结 语

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

 

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

此内容为AET网站原创,未经授权禁止转载。