单片机按键编程去抖动!

 我来答
乾绿柳衡娴
2020-04-24 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:35%
帮助的人:777万
展开全部
看你的要求了,
一般软件去抖就可以了,
原理:
判断按键是否按下,
延时一小段时间,
判断按键是否仍然是按下状态,
是的话进入按键按下流程,
否则。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夙金年从筠
2019-09-28 · TA获得超过1189个赞
知道小有建树答主
回答量:2022
采纳率:100%
帮助的人:9.8万
展开全部
您好单片机如何去除按键抖动
按键消除抖动用硬件的方法是单稳态电路,或者采用专用芯片,而单片机本身是智能芯片,用软件消除抖动是最佳选择,这样性价比高,可靠性也高,多用一个器件就多一份成本,多一个故障点,设计智能化产品的原则是优先考虑采用软件解决问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宁通余智伟
2020-08-16 · TA获得超过1212个赞
知道小有建树答主
回答量:1985
采纳率:100%
帮助的人:9.6万
展开全部
根据去除抖动的时长来编程.举个例子,比如200毫秒以内的算抖动,去除,超过200毫秒认为有效.
在程序中设置一个寄存器,程序开始时,把寄存器值初始化为0,另外在程序中设置一个定时器,比如10毫秒.
10毫秒定时到了,可以调用一个判断按键是否按下得子程序.
如果没有采集到按键按下去信号,就返回主程序;
如果采集到按下去信号,就让寄存器的值累加1,判断寄存器的值是否为20,
如果为20,则说明已经连续采集到了20*10=200毫秒,设置按键被按下去的
标志,同时把寄存器清零,下次继续从0开始累加;
如果寄存器的值没到20,则返回主程序.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
士行王以彤
2019-10-05 · TA获得超过1137个赞
知道小有建树答主
回答量:2068
采纳率:100%
帮助的人:9.8万
展开全部
key
=
0;
if
(
P0.0
==
0
)
{
delay_20ms();
if
(
P0.0
==
0
)
{
key
=
1;
}
else
{
key
=
0;
}
}
if
(
key
==
1
)
{
//
do
something
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式