我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 1516|回复: 2

ARM7的键盘与VFD显示器接口技术 - 单片机/处理器 - 电子工程

[复制链接]

该用户从未签到

1万

主题

1292

回帖

2万

积分

管理员

积分
29577

社区居民最爱沙发原创达人社区明星终身成就奖优秀斑竹奖宣传大使奖特殊贡献奖

QQ
发表于 2013-3-30 00:49:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
<strong>引言</strong>

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

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

<strong>1 硬件电路的实现</strong>

考虑到未来市场对功耗、处理速度、实时性、多功能、多任务处理等方面会有更高的要求,本设计采用基于周立功公司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的按键扫描电路以及指示灯和开关电路。


<ignore_js_op>





2010-4-25 18:24:23 上传
<strong>下载附件</strong> (15.58 KB)




</ignore_js_op>


<strong>2 软件设计</strong>

软件采用模块化设计方法,使用基于优先级的系统调度法来实现各个模块。每个模块设置为一个任务,如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。


<ignore_js_op>





2010-4-25 18:24:23 上传
<strong>下载附件</strong> (5.07 KB)




</ignore_js_op>


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

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


<ignore_js_op>





2010-4-25 18:24:23 上传
<strong>下载附件</strong> (7.45 KB)




</ignore_js_op>


<ignore_js_op>





2010-4-25 18:24:23 上传
<strong>下载附件</strong> (11.44 KB)




</ignore_js_op>


2.2 主要驱动程序

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

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


<ignore_js_op>





2010-4-25 18:24:23 上传
<strong>下载附件</strong> (6.37 KB)




</ignore_js_op>


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

显示驱动程序为:


<ignore_js_op>





2010-4-25 18:24:23 上传
<strong>下载附件</strong> (1.96 KB)




</ignore_js_op>


<ignore_js_op>





2010-4-25 18:24:24 上传
<strong>下载附件</strong> (23.46 KB)




</ignore_js_op>


<ignore_js_op>





2010-4-25 18:24:23 上传
<strong>下载附件</strong> (2.28 KB)




</ignore_js_op>


<strong>结语</strong>

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

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

<strong>参考文献</strong>

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)
回复

使用道具 举报

该用户从未签到

57

主题

2495

回帖

3869

积分

PADS20200601高级班

积分
3869

终身成就奖

发表于 2020-6-20 08:54:10 | 显示全部楼层
回复

使用道具 举报

  • TA的每日心情
    开心
    2024-9-30 08:50
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    299

    回帖

    408

    积分

    二级逆天

    积分
    408

    终身成就奖

    QQ
    发表于 2021-7-2 20:46:01 | 显示全部楼层
    想搞一个VFD试试驱动看
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    公告:服务器刚移机,
    大家请不要下载东西。
    会下载失败


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    ( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

    平平安安
    TOP
    快速回复 返回顶部 返回列表