找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4703|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

單個按鍵的另類消抖方法

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:51055 發(fā)表于 2013-6-19 03:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
關(guān)于消抖,我現(xiàn)在想到的方法只有兩種,一種是延時跳過抖動再檢測;另一種也就是本貼的思路:就是把抖動滅掉,不讓它抖動,而不是跳過抖動,如下圖:

#include<AT89X55.H>
#define uchar unsigned char
#define uint unsigned int
sbit key=P1^3;
uchar i;
uchar code num[]=
{0xC0,/*0*/0xF9,/*1*/0xA4,/*2*/
0xB0,/*3*/0x99,/*4*/0x92,/*5*/0x82,/*6*/
0xF8,/*7*/0x80,/*8*/0x90,/*9*/};
void keysan()//按鍵掃描
{
     bit flag;
     uint keysta;
     if((!key)&amp;(!flag))
    {
         key=0;//消抖
         i++;
         if(i&gt;9)  
         i=0;  
         flag=1;
     }
      if(!key)
     {
          keysta++;  
          if(keysta==10000)
          {
              key=1;//拉高  
              keysta=0;  
              flag=0;
           }  
      }
}

void main()
{
      while(1)
     {
         keysan();  
         P0=0xf0;
         P2=num;
     }
}

電路仿真.rar (24.54 KB, 下載次數(shù): 20)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:59780 發(fā)表于 2014-3-18 21:12 | 只看該作者
拿來試試
回復(fù)

使用道具 舉報

板凳
ID:78702 發(fā)表于 2015-6-28 17:38 | 只看該作者
準(zhǔn)備下載,看能不能參考
回復(fù)

使用道具 舉報

地板
ID:137261 發(fā)表于 2016-9-1 16:27 | 只看該作者
不怎么好用
回復(fù)

使用道具 舉報

5#
ID:74784 發(fā)表于 2016-9-1 19:41 | 只看該作者
樓主是咋樣把抖動給“滅”掉的?
我都是調(diào)用顯示子程序消抖動的
回復(fù)

使用道具 舉報

6#
ID:475031 發(fā)表于 2020-3-7 12:02 | 只看該作者
沒用。仿真測試了,按了,從0跳到2了。有時不準(zhǔn)
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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