单片机按键计数防抖的问题 50

用单片机做按键扫描的时候要处理防抖,一般教材使用延时防抖,这样程序停在一个地方,很不科学,效率很低。那么就用计数来防抖,原理是按键处理的程序放在主循环或者定时器中运行,程... 用单片机做按键扫描的时候要处理防抖,一般教材使用延时防抖,这样程序停在一个地方,很不科学,效率很低。那么就用计数来防抖,原理是按键处理的程序放在主循环或者定时器中运行,程序中对循环进行计数,计数值大于某一个数值的时候就认为抖动已经过去了,可以判断为正常按键。现在的问题是,不仅仅是按键扫描在主循环中运行,还有一个1602的显示刷新程序,还有1602显示的菜单按键处理程序等等,每一次主循环都要运行这些程序。现在问题是,菜单按键处理,显示刷新等程序每次运行怎么样保证每次都进入上次循环运行到的地方去,要不然比如按下功能键,每次都重新进去相关函数。这样要在相关函数中设置很多的静态变量,而且不同的功能函数要设定不同的变量,很麻烦。有没有通用的思路清晰的办法来解决呢?网上说的时间片算法是不是这个意思呢? 展开
 我来答
节0奏
2014-12-02 · 超过23用户采纳过TA的回答
知道答主
回答量:88
采纳率:0%
帮助的人:58.1万
展开全部
1、防抖不想使用延时程序,就使用单片机内部的计时器,做内部中断;
2、按键可以采用单片机的外部中断,如果按键个数比较多的话就需要外扩硬件;
3、更复杂的系统可以考虑主芯片的换型。
匿名用户
2014-12-02
展开全部
只要把时间设置合理,在检测完成前就可以吧
追问
我的意思是怎么样通用地保护每个程序的现场,下次执行从上次执行的断点开始。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式