数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1653|回复: 18

[Arduino] 做一个带硬件消痘的按键模块,似乎效果还行

[复制链接]
发表于 2020-3-11 19:33:15 | 显示全部楼层
本帖最后由 慕名而来 于 2020-3-11 19:34 编辑

最近玩闹表程序,关于硬件消抖动的方法在网上就是加电容和加芯片那么几个图片,而且应用效果、现象众说纷纭没有可参照性,但按键并联0.1uf电容的方法是我在玩数字电路时就用的,此处玩闹钟总是感觉按键那个延时不顺,就采用了并联电容的方法,调试程序快一个月了按键正常的还没发现按键错乱的问题。
  1. //按键硬件加电容去抖动
  2. void Alarm_time()
  3. {
  4.     if(NG==0)
  5.     {
  6.         g=~g;
  7.         if(!g)
  8.         {
  9.             TR1=0;
  10.         }
  11.         while(!NG);
  12.     }
  13. }
复制代码


打赏

参与人数 1家元 +10 收起 理由
人艰不拆了 + 10

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2020-3-11 20:04:45 | 显示全部楼层
人艰不拆了 发表于 2020-3-11 20:00
哈哈,那么说看来还不错嘛

咱们菜鸟,不敢说经验只是自己觉得能用就好。
回复 支持 反对

使用道具 举报

发表于 2020-3-12 11:30:09 | 显示全部楼层
深山老妖 发表于 2020-3-12 00:16
并联的电容后,理论上,对按键的使用寿命会有一定的影响,最好是用按键标志加时间标志。 ...

一直以来只会用延时20ms的按键程序,加标志的C51按键程序希望大神能给个例程学习一下(用我贴的代码改一下就好、我容易理解),先谢了!
回复 支持 反对

使用道具 举报

发表于 2020-3-13 16:12:06 | 显示全部楼层
深山老妖 发表于 2020-3-12 21:48
sbit KEY_UPP = P1^0;
bit KEY_UPP_B = 0;//上移变量
unsigned char KEY_UPP_Tim=0;

多谢坛友分享例程,粗略看了使用定时器做延时的,只是不太理解TL0、TH0的赋值方式以及T0的初始化模式,我再努力看看希望能弄懂这段代码。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-18 11:37 , Processed in 0.187200 second(s), 11 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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