No.49173 作者:sharps076 邮件:sharps076@foxmail.com ID:145926 登陆:4次 文章数:4篇 最后登陆IP:183.16.200.5 最后登陆:2012/1/12 10:16:47 注册:2011/7/7 14:05:44 财富:122 发帖时间:2011/12/21 15:13:31 发贴者IP:58.251.89.111 标题:sharps076:嵌入式系统智能键盘的软件设计[转帖] 摘要:No.49173嵌入式系统智能键盘的软件设计[转帖] 标签: 电子展 高交会 电子资料下载 深圳电子展 引言 键盘是智能化测控系统主要的信息输入方式,是实现人机对话的重要途径,因此如何有效地控制键盘并为系统服务是每个设计者需要切实考虑的问题。 嵌入式系统键盘软件设计存在3方面问题:软件去抖动、等待按键抬起和连击处理。 1嵌入式系统键盘软件设计的3个问题 1.1软件去抖动问题 一次完整按键过程的时序波形如图1所示。当按键未被按下时,单片机端口输入为通过上拉电阻获得的高电平;按下时,端口接至地,端口输入为低电平。当机械触点断开、闭合时会有抖动,这种抖动对人来说是感觉不到的,但对计算机来说,则是完全可以感应到的。计算机处理的速度是us级,而机械抖动的时间至少是ms级,对计算机而言,这已是漫长的时间了。 为使单片机能正确地读出端口的状态,对每一次按键只作一次响应,这就必须考虑如何去除抖动的问题。嵌入式系统一般采用软件延时去除抖动。软件延时去除抖动其实很简单,就是在单片机获得端口有按键动作时,不是立即认定按键开关已被按下,而是延时10 ms或更长一段时间后再次检测端口,如果仍为动作电平,则说明按键开关的确按下了,这实际上是避开了按键按下时的抖动时间;而在检测到按键释放后(端口为高)再延时5~10 ms,消除后沿的抖动,然后再对键值处理。当然,实际应用中对按键的要求也是千差万别,要根据不同的需要来编制处理程序,但以上是软件延时去除抖动的基本原则。 1.2等待按键抬起问题 单片机在查询读取按键时,不断地扫描键盘,扫描到有键按下后,进行键值处理。它并不等待键盘释放再退出键盘程序,而是直接退出键盘程序,返回主程序继续工作。计算机系统执行速度快,很快又一次执行到键盘程序,并再次检测到键还处于按下的状态,单片机还会去执行键值处理程序。这样周而复始,按一次按键系统会执行相应处理 ......
>>返回讨论的主题
|