按键类论文范文数据库,与脉宽编码式按键接口的设计相关论文范文

时间:2020-07-05 作者:admin
后台-系统-系统设置-扩展变量-(内容页告位1-手机版)

本论文是一篇按键类论文范文,关于脉宽编码式按键接口的设计相关毕业论文的格式范文。免费优秀的关于按键及电路及定时器方面论文范文资料,适合按键论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。

传统的键盘接口方式,键盘编码控制芯片都要占用单片机两根以上的I/O口线,且专用键盘编码控制芯片的价格不菲.本文提出了脉宽编码式按键的设计思想,并给出了已经调试通过的一种脉宽编码式按键的具体设计方案.

1.设计思想及几种典型的硬件电路

脉宽编码式按键的设计灵感源于两方面:一是单片机具备测量脉冲宽度的能力.具体地说,单片机的定时器/计数器在方式寄存器TMOD的GATE位为1时可测定外部中断引脚上高电平的持续时间;二是从电路实现角度讲,可以方便地产生具有不同脉冲宽度的脉冲.这两个方面是实现脉宽编码式按键设计的理论基础.下面给出几种实用的产生脉冲的硬件电路:

图1是采用六施密特触发反相器74HC14构成的振荡器,只需要一只电阻和一只电容就可以构成一个最简单的多谐振荡器.如果系统中不需要74HC14片上的其它5个反相器,可以采用只有一个施密特触发反相器的芯片.

图2所示为采用运放实现的低成本电路,采用线性积分电路构成多谐振荡器,工艺简单,易于实现.

只要把上述电路中的电阻RK以图3中所示的电路取代,就可作为脉宽编码式按键的接口电路,脉宽大小取决于电阻值.

图4所示为采用片内带振荡器的14位二进制串行计数器74HC4060实现的脉宽编码式键盘接口电路原理图.由于采用外接石英晶体振荡器,所以分频器的输出脉宽是十分准确的,不需要任何调试就能够工作.但由于74HC4060输出端口有限,因而该电路适合于需要按键数量较少的场合,当然,只要在编程上稍下功夫,采用软按键技术(即将菜单和按键组合在一起的用户界面技术)就可以实现多个按键的功能.

需要说明的是:与单片机的时钟电路相似,也可以不用内部振荡器,而在11脚接入外部时钟,10脚悬空.这时可以把74HC4060换成74HC4020或者74HC4040,如图5为采用外部时钟由74HC4040实现的脉宽编码式键盘接口电路.

为了进一步降低成本,并提高测量脉宽的精度和稳定性,可以将单片机的系统时钟分频后提供给脉宽编码式键盘接口电路作输入脉冲,还可以采用外部时钟振荡器同时作为单片机的系统时钟和脉宽编码式键盘接口电路的时钟源.需要注意的是,单片机能够测量的最高频率不能超过其系统时钟的十二分之一.所以后者(采用外部时钟振荡器同时作为单片机的系统时钟和脉宽编码式键盘接口电路的时钟源)在实际使用时只能放弃几个按键不用,如图5中的K1~K4.

2.程序设计

根据脉宽编码式按键的设计思想,各脉宽编码式按键接口电路图中的引出端(TO)要与单片机INT0/INT1引脚相连.在保证单片机可分辨各按键脉宽的情况下,其它工作就留给程序设计了.

基于模块化编程思想,按键程序应当独立于程序中其它功能模块,负责查询按键状态(有效按下、已释放或未按下)并根据按键特征对按键编码(赋予不同按键不同的键值),以便于主程序区分各个按键而转入相应键处理子程序中.下面以用51单片机定时器T0测INT0脚输入脉冲宽度为例,介绍具体的编程思路.

脉宽编码式按键接口的设计参考属性评定
有关论文范文主题研究: 关于按键的论文范例 大学生适用: 在职论文、专升本毕业论文
相关参考文献下载数量: 21 写作解决问题: 毕业论文怎么写
毕业论文开题报告: 文献综述、论文小结 职称论文适用: 期刊发表、初级职称
所属大学生专业类别: 毕业论文怎么写 论文题目推荐度: 优秀选题

首先,主程序中要先进行初始化:设置定时器/计数器T0工作在16位定时器模式,打开选通门以使INT0引脚电平和TR0一起参与对T0/T1的控制,设置外部中断INT0为边沿触发方式等等,具体程序见本刊网站.

然后编制外部中断服务程序.下降沿触发中断,进入中断服务程序后:(1)保护现场;(2)关闭定时器和外部中断以免低电平时间太短时未出中断又继续计数或者再次触发中断;(3)然后读取定时器时间.由于T0在GATE等于1时是启动定时器有效(TR0等于1)并且INT0引脚为高电平时才工作,所以中断触发时定时器时间(TH0、TL0)恰好就是之前INT0脚脉冲的宽度;(4)根据TH0、TL0判断出哪个按键被按下,赋键值;(5)把定时器TH0、TL0清零;(5)判断此时INT0引脚是不是低电平,是则启动定时器、使能中断,不是则等待.这样做是为了避免出现因为此时INT0引脚已经是高电平而一旦启动了定时器(TR0等于1)它就开始计时以至于下次中断得到的定时器时间(TH0、TL0)不真实;(6)恢复现场,中断返回.

步骤4中对按键的区别取决于具体电路,如图1、图2结合图3所示的电路输出的脉宽是等差的,而图4、5、6是等比的.前者在单片机所直接测量的范围内可以有较多的按键,但脉宽的精度较低,而后者的键值有限,少于16位键,但脉宽(键值)测量精度较高,特别是与单片机采用同一时钟源时,可以认为没有误差.因而这两类的键值处理程序略有不同:虽然都需要允许脉宽有一定的范围,但前者的程序要复杂一些,去判定是否落在一个给定的误差范围内;后者由于误差较小,而键值间距较大,可以简单地按“位”判断即可.下面举例说明这两种典型情况下的编程:


该文来自 http://www.sxsky.net/benkelunwen/060278906.html

假定有255个键,通过适当的参数设置使K255按下时脉宽等于51单片机的256个指令周期(系统时钟频率为12MHz时一个指令周期等于1ms),K254按下时脉宽等于512个指令周期等,K1按下时脉宽等于65280个指令周期,相邻两键脉宽的差值为256个指令周期.按照上述的设计,脉宽比较时只需比较定时器高位字节即可.由于脉宽最小为256μs,和键盘电路的输出脉冲基本上为50%的占空比,所以,在键盘电路的输出低电平期间完全可以完成键值(脉宽)处理程序的执行,因而可以把键值(脉宽)&

后台-系统-系统设置-扩展变量-(内容页告位2-手机版)
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:123456789@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
后台-系统-系统设置-扩展变量-(内容页告位3-手机版)