找回密码
 注册
关于网站域名变更的通知
查看: 81|回复: 0
打印 上一主题 下一主题

单片机按键去抖原理

[复制链接]

该用户从未签到

跳转到指定楼层
1#
 楼主| 发表于 2024-9-12 18:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

# y( \% s0 Q( ]! q) t/ a5 i. Y) [4 f. k7 j# J6 t3 h3 ~' Y8 s0 f2 e' u

0 K1 }6 B5 q0 _) z2 {7 p0 l1 r由上图可以看出理想波形与实际波形之间是有区别的,实际波形在按下和释放的瞬间都有抖动的现象,抖动时间的长短和按键的机械特性有关,一般为5~10ms。通常我们手动按键然后释放,这个动作中稳定闭合的时间超过了20ms。因此单片机在检测键盘是否按下时都要加上去抖动操作,有专用的去抖动电路,也有专门的去抖动芯片,但通常我们采用软件延时的方法就可以解决抖动问题。' ?+ N/ Z- w" q/ D" f  ]) r9 A

" R/ m7 N/ p4 e! d* h\/* 软件去抖 */7 W3 |+ R; Z: C7 R7 G

. |7 j- U( |: u8 f1 fif (0 == K1 ) //如果有键按下
8 F; U( d# ?! m  {% b* r
1 E/ H+ D) o" o+ N* Y& S' l) Y2 ]{
5 X) e/ Z9 Z- {# m, C$ N. u" S9 p0 g5 u6 p8 S' X) b6 J2 M1 P

9 h& e- k! ?5 W* t& \delay_ms(8); //延时一段时间去抖
0 M$ p: x* X, K1 Y0 Q- d, L: k& \/ s# U
if (0 == K1) //如果真的有键按下,检测到得是稳定闭合状态+ K6 p! a' D2 x$ E5 l1 P
. v9 _% P2 Y- G" o
{' ~+ Q2 j% Q' u& ~! z8 @
& b* G- Y! n! h; d
... //按键以后需要做的事情
) j) u( T3 {9 w. `* w
+ p# |* `' Z! F
8 Q) l5 }! c% U1 z5 P4 q
}' p5 z0 U  \0 B2 [% X3 Y; P2 P
! R- G3 G6 _2 B# x+ _
while(!K1); //松手检测,如果按住不放则一直在循环里3 ?# k  R) @! Q- z
4 N0 \6 j8 q) b& ~" Z
}
5 ~, j) \: M* k; M$ @" B
9 L; v2 |7 U' a9 [
* c. a* S/ G; Y: B* g- d( G' a! D! k
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-9-24 05:21 , Processed in 0.125000 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表