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

ARM7的键盘与VFD显示器接口技术,第1张

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

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

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

M22A开发板的板上资源主要有:
    ◆μC/OS—II实时 *** 作系统;
    ◆TCP/IP协议、FAT32文件管理系统;
    ◆UARTI2C、SPI通信接口;
    ◆JTAG接口支持在线调试;
    ◆工业级10M以太网控制接口CSB900A—IQ;
    ◆2MB NOR Flash程序存储器等。

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

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。

ARM7的键盘与VFD显示器接口技术,第3张

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

ARM7的键盘与VFD显示器接口技术,第4张

ARM7的键盘与VFD显示器接口技术,第5张

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

ARM7的键盘与VFD显示器接口技术,第6张

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

ARM7的键盘与VFD显示器接口技术,第7张

ARM7的键盘与VFD显示器接口技术,第8张

ARM7的键盘与VFD显示器接口技术,第9张

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

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2712505.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存