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

QQ登錄

只需一步,快速開(kāi)始

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

這個(gè)單片機(jī)按鍵程序怎么樣消除抖動(dòng)?

[復(fù)制鏈接]
ID:268578 發(fā)表于 2017-12-31 14:39 | 顯示全部樓層 |閱讀模式
if(funtion_flag==1)   //小時(shí)調(diào)整     
        {      if(KEY2==0)        
                        {  delay_ms(10);            
                           hour++;                                                                        
                         }      
                        if(KEY3==0)        
                         {  delay_ms(10);      
                           if(KEY3==0)      
                           {  hour--;         
                           }      
                         }            
        }
        if(funtion_flag==2)      //分鐘調(diào)整
        {     if(KEY2==0)        
                  {  delay_ms(10);      
                           if(KEY2==0)      
                           { minute++;               
                           }      
                  }      
                  if(KEY3==0)        
                  {  delay_ms(10);      
                           if(KEY3==0)      
                           { minute--;            
                           }      
                  }            
        }        

回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2017-12-31 16:23 | 顯示全部樓層
這 delay_ms(10);就是延時(shí)消抖
回復(fù)

使用道具 舉報(bào)

ID:201949 發(fā)表于 2017-12-31 17:02 | 顯示全部樓層
delay_ms(10); 這句代碼就是消除抖動(dòng)的,延遲一小段時(shí)間,再次判斷按鍵按下,就執(zhí)行下一步程序。
回復(fù)

使用道具 舉報(bào)

ID:164602 發(fā)表于 2017-12-31 18:52 | 顯示全部樓層
從程序上看,除第一個(gè)KEY2沒(méi)有按鍵消抖外,其它三鍵都有按鍵消抖。都沒(méi)有松鍵消抖。
對(duì)照下面的程序修改,就既有按鍵消抖,也有松鍵消抖。
if (K1==0)//如果此鍵按下
{
    delay(10);//消抖,延時(shí)10ms后,基本穩(wěn)定
    if (K1==0)//再判斷是否按下
    {
        //確認(rèn)按鍵后,需要執(zhí)行的操作語(yǔ)句組
}
    for (i=0;((i<50)&&(K1==0));i++)//延時(shí)10ms后,考慮到松開(kāi)時(shí)間可能慢點(diǎn),所以循環(huán)50次,就是不松也跳出,避免程序死等。
    {
        delay(10);
    }
}
回復(fù)

使用道具 舉報(bào)

ID:269558 發(fā)表于 2017-12-31 19:00 來(lái)自手機(jī) | 顯示全部樓層
判斷之后延時(shí)再判斷
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2017-12-31 22:17 | 顯示全部樓層
弄清楚什么是抖動(dòng)?抖動(dòng)長(zhǎng)什么樣子?,就明白了。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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