久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2943|回復: 5
打印 上一主題 下一主題
收起左側

在線等請問獨立鍵盤的掃描去抖怎么寫

[復制鏈接]
跳轉到指定樓層
樓主
ID:289777 發表于 2018-7-12 08:56 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
50黑幣
只知道延時去抖,還有一種方法叫掃描去抖
百度上沒有合適的
誰知道這個
麻煩簡單寫一下可以嗎,在線等

最佳答案

查看完整內容

void keyscan() //按鍵掃描程序 { static bit key_sign=0; //按鍵自鎖標志 static unsigned char count=0; //計數變量 if(!key) //檢測按鍵按下 { count++; //消抖計數 if((count>=250)&&(key_sign==0)) { key_sign=1; //按鍵自鎖標志置1,防止不松手重復響應 //執行任務或賦值鍵值變量 } } else //按鍵抬 ...
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:213173 發表于 2018-7-12 08:56 | 只看該作者
void keyscan()                                        //按鍵掃描程序
{
        static bit key_sign=0;        //按鍵自鎖標志
        static unsigned char count=0;                //計數變量                       
        if(!key)                                        //檢測按鍵按下
        {
                count++;                                        //消抖計數
                if((count>=250)&&(key_sign==0))
                {                       
                        key_sign=1;                        //按鍵自鎖標志置1,防止不松手重復響應                                       
                     //執行任務或賦值鍵值變量
                }
        }
        else                                                        //按鍵抬起
        {
                key_sign=0;                                //按鍵自鎖標志清0
                count=0;                                        //消抖計數清0
        }
}

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:142045 發表于 2018-7-12 10:03 | 只看該作者
軟件延時去抖和硬件去抖,硬件去抖就是加個電容,要么加觸發器(成本高)。你說的掃描去抖一般應用在矩陣鍵盤上,其實也是延時來做的去抖。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

地板
ID:289777 發表于 2018-7-12 10:49 | 只看該作者
在線等求助
回復

使用道具 舉報

5#
ID:364810 發表于 2018-7-12 13:11 | 只看該作者

/*------------------------------------------------
    按鍵掃描函數
------------------------------------------------*/
unsigned char KeyScan(void)
{
unsigned char Val;
KeyPort=0xf0;
if(KeyPort!=0xf0)
   {
    DelayMs(10);  
        if(KeyPort!=0xf0)
          {         
            KeyPort=0xfe;
                if(KeyPort!=0xfe)
                          {
                          Val=KeyPort&0xf0;
                        Val+=0x0e;
                            while(KeyPort!=0xfe);
                          DelayMs(10);
                          while(KeyPort!=0xfe);
                       return Val;
                }
        KeyPort=0xfd;
                if(KeyPort!=0xfd)
                          {
                          Val=KeyPort&0xf0;
                        Val+=0x0d;
                            while(KeyPort!=0xfd);
                          DelayMs(10);
                          while(KeyPort!=0xfd);
                       return Val;
                }
            KeyPort=0xfb;
                if(KeyPort!=0xfb)
                          {
                          Val=KeyPort&0xf0;
                        Val+=0x0b;
                            while(KeyPort!=0xfb);
                          DelayMs(10);
                          while(KeyPort!=0xfb);
                       return Val;
                }
            KeyPort=0xf7;
                if(KeyPort!=0xf7)
                          {
                          Val=KeyPort&0xf0;
                        Val+=0x07;
                            while(KeyPort!=0xf7);
                          DelayMs(10);
                          while(KeyPort!=0xf7);
                       return Val;
                }
     }
   }
  return 0xff;
}
/*------------------------------------------------
    按鍵值處理函數
------------------------------------------------*/
unsigned char KeyPro(void)
{
switch(KeyScan())
{
  case 0x7e:return 0;break;//0
  case 0x7d:return 1;break;//1
  case 0x7b:return 2;break;//2
  case 0x77:return 3;break;//3
  case 0xbe:return 4;break;//4
  case 0xbd:return 5;break;//5
  case 0xbb:return 6;break;//6
  case 0xb7:return 7;break;//7
  case 0xde:return 8;break;//8
  case 0xdd:return 9;break;//9
  case 0xdb:return 10;break;//a
  case 0xd7:return 11;break;//b
  case 0xee:return 12;break;//c
  case 0xed:return 13;break;//d
  case 0xeb:return 14;break;//e
  case 0xe7:return 15;break;//f
  default:return 0xff;break;
}
}

回復

使用道具 舉報

6#
ID:364810 發表于 2018-7-12 13:14 | 只看該作者
  switch(P3)                        
       {
              case 0xfe:P1=dofly_table[1];break;
                case 0xfd:P1=dofly_table[2];break;
                case 0xfb:P1=dofly_table[3];break;
                case 0xf7:P1=dofly_table[4];break;
                case 0xef:P1=dofly_table[5];break;
                case 0xdf:P1=dofly_table[6];break;
                case 0xbf:P1=dofly_table[7];break;
                case 0x7f:P1=dofly_table[8];break;
                default:break;   
           }

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚州精品成人 | 亚洲 欧美 日韩在线 | 亚洲一区二区三区乱码aⅴ 四虎在线视频 | 亚洲人成人一区二区在线观看 | 91精品国产91久久久久游泳池 | 欧美一a| 狠狠操狠狠操 | 成人小视频在线观看 | 亚洲欧美日韩精品久久亚洲区 | 国产自产21区 | 在线国产一区二区三区 | 日韩字幕一区 | www.久久.com| 久久国产区 | 国产精品久久久久久久久久久久冷 | 久久精品综合 | 精品欧美一区二区三区久久久 | 91精品国产综合久久精品 | 人人干天天干 | 一级免费毛片 | 久久久久午夜 | 久久国产激情视频 | 性欧美精品一区二区三区在线播放 | 四虎永久免费地址 | 色成人免费网站 | 欧美一级片中文字幕 | 欧美多人在线 | 免费成人高清 | 91九色porny首页最多播放 | 精品视频久久久 | 日本黄色免费大片 | 日韩视频高清 | 久久999| 亚洲一一在线 | 国产精品国产a级 | 极品一区 | www.一区二区三区.com | 国内自拍视频在线观看 | 国产1区2区3区 | re久久 | 中文字幕精品一区久久久久 |