找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1900|回復(fù): 10
收起左側(cè)

單片機(jī)按鍵受干擾問題,如何消除

  [復(fù)制鏈接]
ID:709761 發(fā)表于 2022-9-2 12:00 | 顯示全部樓層 |閱讀模式
開關(guān)管在工作的時(shí)候,測(cè)按鍵上的波形有干擾, 使單片機(jī)誤認(rèn)為按鍵按下。如何消除干擾
636531524234531250.jpg
回復(fù)

使用道具 舉報(bào)

ID:59202 發(fā)表于 2022-9-2 14:05 | 顯示全部樓層
才玩單片機(jī)吧,單片機(jī)的按鍵輸入都需要采用硬件消抖或軟件消抖處理,一般用軟件消抖居多,方法也比較多具體自己百度一下吧

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:807591 發(fā)表于 2022-9-2 15:58 | 顯示全部樓層
加一個(gè)10k上拉電阻,另外程序里可以處理干擾信號(hào)
回復(fù)

使用道具 舉報(bào)

ID:319166 發(fā)表于 2022-9-2 16:13 | 顯示全部樓層
單片機(jī)按鍵口上的限流電阻、上拉電阻、濾波電容呢?一個(gè)都沒有,這個(gè)按鍵的的走線相當(dāng)于一個(gè)天線在那邊被拉低太正常了,如果有其他原因?qū)е聼o法防止這些元件,也可以用軟件濾波啊,就是窄脈沖不認(rèn),寬脈沖才認(rèn)
回復(fù)

使用道具 舉報(bào)

ID:1034262 發(fā)表于 2022-9-2 16:23 | 顯示全部樓層
如果是有規(guī)律的干擾,則多次讀鍵濾除,讀鍵間隔盡量遠(yuǎn)離干擾的周期。或者,使用小電阻上拉,比如用1K電阻上拉。

找出干擾原因并排除干擾是治本的方法。能干擾到讀按鍵的話,則別的信號(hào)會(huì)更容易收到干擾。
回復(fù)

使用道具 舉報(bào)

ID:57657 發(fā)表于 2022-9-2 16:26 | 顯示全部樓層
  1. #include "STC15.h"
  2. unsigned char key_ms = 0;   //按鍵按住時(shí)間毫秒 最大255 按住+1,松開清0
  3. sbit skey = P3^ 2;          //按鍵,低電平按下 (未消抖)
  4. bit key;                    //按鍵,低電平按下 (已消抖)
  5. sbit led = P3^3;            //LED,低電平點(diǎn)亮
  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 定時(shí)器中斷
  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. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2022-9-2 17:09 | 顯示全部樓層
線上加阻容過濾一下。
回復(fù)

使用道具 舉報(bào)

ID:1007932 發(fā)表于 2022-9-2 18:13 | 顯示全部樓層
軟件消抖或硬件消抖,軟件消抖延時(shí)再檢測(cè),硬件消抖加電容
回復(fù)

使用道具 舉報(bào)

ID:771630 發(fā)表于 2022-9-2 18:14 | 顯示全部樓層
1、經(jīng)典104電容
2、判斷按鈕按下的時(shí)間是否達(dá)標(biāo)
回復(fù)

使用道具 舉報(bào)

ID:646520 發(fā)表于 2022-9-2 19:21 | 顯示全部樓層
一般是檢測(cè)到按鍵按下后給個(gè)延時(shí)在判斷是否真的按下
回復(fù)

使用道具 舉報(bào)

ID:1043674 發(fā)表于 2022-9-2 23:27 來自觸屏版 | 顯示全部樓層
延時(shí)到抖動(dòng)結(jié)束后再檢測(cè)是否按下,或者是用定時(shí)器定時(shí)檢測(cè)按鍵狀態(tài)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表