单片机按键去抖动程序设计.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币余额
- 我的收藏
- 我的下载
- 下载帮助