单片机按键去抖动程序设计.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
单片机按键去抖动程序设计 单片机按键去抖动程序设计是一种常见的嵌入式系统设计技术,在人机界面设计中扮演着重要角色。该设计思路主要解决了按键处理程序中的一些问题,如按键响应不及时、按键重复响应等问题。通过对按键处理程序的设计和实现,可以提高人机界面的友好程度。 在单片机应用系统设计中,人机界面部分的友好程度很大一部分取决于键盘处理程序。在按键时按得快了没有反应,按慢了一连响应几次,总给人紧迫感或迟钝感,不能使人满意。因此,设计一个完善的按键处理程序是非常必要的。 该设计思路主要包括以下几个步骤: 1. 判断有没有键值:如果有键值,则判断是否为首次按下。如果是首次按下,则判断是否与上次按下的键值相同。如果相同,则判断是否已经按下了300ms。如果已经按下300ms,则将此键做为连键处理。如果不是连键,则判断是否按下20ms。如果确认按下20ms,得到有效键值等待弹起。如果不是按下20ms,则直接结束处理。 2. 如果不是首次按下,将键值暂存起来,标志置位结束处理。 3. 如果无键值,则判断是否有键值已被确认。如果有键已被确认,判断按键是否首次抬起。如果首次抬起,判断抬起延时时间(20ms)是否到达。如果延时到达,则将标志处理结束处理。如果延时未到达,直接结束处理。 在具体的程序实现中,可以使用非阻塞式延时来实现键处理程序。同时,也可以借鉴WINDOWS的键处理思想,即当击键时立即作出响应,当按住键不放时,延迟一定时间来判断是否为连键。 在C8051F020和DSP编程中,可以使用以下思路所编的键处理程序: 1. 判断是否有键值。如果有键值,则判断是否为首次按下。 2. 如果是首次按下,则判断是否与上次按下的键值相同。如果相同,则判断是否已经按下了300ms。如果已经按下300ms,则将此键做为连键处理。 3. 如果不是首次按下,将键值暂存起来,标志置位结束处理。 4. 如果无键值,则判断是否有键值已被确认。如果有键已被确认,判断按键是否首次抬起。如果首次抬起,判断抬起延时时间(20ms)是否到达。如果延时到达,则将标志处理结束处理。如果延时未到达,直接结束处理。 通过这种设计思路和程序实现,可以提高单片机按键处理程序的友好程度和效率。
- 粉丝: 92
- 资源: 2万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 汇编语言入门与编程实践-低层开发者的必备技能
- WatchIO二进制固件和刷机工具(无需源码编译).zip
- 提取网页核心信息:Python中的Readability与Date Extraction技术
- Swift语言教程:从基础语法到高级特性的全面讲解
- 表白代码(发射爱心).zip学习资料程序
- 常用工具合集(包括汉字转拼音工具、常用数据格式相互转换工具、尺寸相关的工具类).zip
- Delphi编程教程:从入门到精通Windows应用程序开发
- 视觉化编程入门指南:Visual Basic语言教程及其应用领域
- 纯代码实现的3d爱心.zip学习资料语言
- 儿童编程教育中Scratch语言的基础教学及实战示例