找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1854|回复: 10
收起左侧

单片机按键受干扰问题,如何消除

  [复制链接]
ID:709761 发表于 2022-9-2 12:00 | 显示全部楼层 |阅读模式
开关管在工作的时候,测按键上的波形有干扰, 使单片机误认为按键按下。如何消除干扰
636531524234531250.jpg
回复

使用道具 举报

ID:59202 发表于 2022-9-2 14:05 | 显示全部楼层
才玩单片机吧,单片机的按键输入都需要采用硬件消抖或软件消抖处理,一般用软件消抖居多,方法也比较多具体自己百度一下吧

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:807591 发表于 2022-9-2 15:58 | 显示全部楼层
加一个10k上拉电阻,另外程序里可以处理干扰信号
回复

使用道具 举报

ID:319166 发表于 2022-9-2 16:13 | 显示全部楼层
单片机按键口上的限流电阻、上拉电阻、滤波电容呢?一个都没有,这个按键的的走线相当于一个天线在那边被拉低太正常了,如果有其他原因导致无法防止这些元件,也可以用软件滤波啊,就是窄脉冲不认,宽脉冲才认
回复

使用道具 举报

ID:1034262 发表于 2022-9-2 16:23 | 显示全部楼层
如果是有规律的干扰,则多次读键滤除,读键间隔尽量远离干扰的周期。或者,使用小电阻上拉,比如用1K电阻上拉。

找出干扰原因并排除干扰是治本的方法。能干扰到读按键的话,则别的信号会更容易收到干扰。
回复

使用道具 举报

ID:57657 发表于 2022-9-2 16:26 | 显示全部楼层
  1. #include "STC15.h"
  2. unsigned char key_ms = 0;   //按键按住时间毫秒 最大255 按住+1,松开清0
  3. sbit skey = P3^ 2;          //按键,低电平按下 (未消抖)
  4. bit key;                    //按键,低电平按下 (已消抖)
  5. sbit led = P3^3;            //LED,低电平点亮
  6. void InitTimer0() {
  7.     TMOD = 0x01;
  8.     TH0 = 0x0FC;
  9.     TL0 = 0x18;
  10.     EA = 1;
  11.     ET0 = 1;
  12.     TR0 = 1;
  13. }

  14. void main(){
  15.     InitTimer0();
  16.     while(1){
  17.         if(!key){
  18.             led = !led;
  19.             while(!key);
  20.         }
  21.     }
  22. }

  23. void Timer0Interrupt() interrupt 1 {        //12Mhz@1ms 定时器中断
  24.     TH0 = 0xFC;
  25.     TL0 = 0x18;
  26.     if(skey){       //按键松开
  27.         key_ms = 0; //松开清0
  28.     } else {        //按键按下
  29.         if(key_ms != 0xFF){     //没加满
  30.             key_ms++;   //按住+1
  31.         }
  32.     }
  33.     key = !(key_ms >= 25);       //25毫秒消抖,脉冲干扰需小于25毫秒
  34. }
复制代码
回复

使用道具 举报

ID:123289 发表于 2022-9-2 17:09 | 显示全部楼层
线上加阻容过滤一下。
回复

使用道具 举报

ID:1007932 发表于 2022-9-2 18:13 | 显示全部楼层
软件消抖或硬件消抖,软件消抖延时再检测,硬件消抖加电容
回复

使用道具 举报

ID:771630 发表于 2022-9-2 18:14 | 显示全部楼层
1、经典104电容
2、判断按钮按下的时间是否达标
回复

使用道具 举报

ID:646520 发表于 2022-9-2 19:21 | 显示全部楼层
一般是检测到按键按下后给个延时在判断是否真的按下
回复

使用道具 举报

11#
无效楼层,该帖已经被删除
12#
无效楼层,该帖已经被删除
13#
无效楼层,该帖已经被删除
ID:1043674 发表于 2022-9-2 23:27 来自触屏版 | 显示全部楼层
延时到抖动结束后再检测是否按下,或者是用定时器定时检测按键状态
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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