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

单片机按键去抖原理

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
; x6 V! C+ o# K" f: R& ?( z
& b# a+ g( C( H: f

0 V* F, o+ `$ o. s由上图可以看出理想波形与实际波形之间是有区别的,实际波形在按下和释放的瞬间都有抖动的现象,抖动时间的长短和按键的机械特性有关,一般为5~10ms。通常我们手动按键然后释放,这个动作中稳定闭合的时间超过了20ms。因此单片机在检测键盘是否按下时都要加上去抖动操作,有专用的去抖动电路,也有专门的去抖动芯片,但通常我们采用软件延时的方法就可以解决抖动问题。+ U$ |& g; t, M0 W. v& s8 }/ b

+ ^  {  F' a0 }7 Z# n. m  B9 q$ b1 ?\/* 软件去抖 */
2 F2 a# e: V1 G
8 O1 `$ Z* d( M$ kif (0 == K1 ) //如果有键按下% _' H  N: b: ?  b% y5 y/ ?0 S) \% r% l
, s% E8 X3 w; A9 h1 J6 J5 `
{8 ?9 V' C9 Z' t( M

0 [& K9 ?, N, ]$ J& q' O. G

- J( i8 o% s0 _9 q2 W1 Edelay_ms(8); //延时一段时间去抖
0 R4 Z4 [: E! d) E- V7 N: S, Z/ z8 H
if (0 == K1) //如果真的有键按下,检测到得是稳定闭合状态6 H1 ~' W( }& _, M2 z( U6 r
8 M& i* q/ I4 R5 S7 l/ R
{% y3 @: L- W# h+ o: Y  u
* {( K+ m$ O6 `, s* C9 W5 L3 |9 x
... //按键以后需要做的事情. w0 D. _* h* i7 Y1 y
, @% [1 O% X5 u; P5 T

9 \3 s1 l& c% K) R6 d1 ]- |- m}
7 c, D# M/ o) J: K) n3 b% p7 O" c
% _# B9 C; E! x7 a1 E% o4 P$ Nwhile(!K1); //松手检测,如果按住不放则一直在循环里/ `# z* y5 f4 ]  X

. _' }" [8 y6 C6 s0 u}! m$ N/ Y5 @3 B/ R+ T) K- K

: B& E& i, R+ G9 S8 P9 {: R6 X/ m% a7 [* R4 @" A; E; O
; F) T* \0 w4 n! n$ @
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-3 04:25 , Processed in 0.140625 second(s), 27 queries , Gzip On.

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

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

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