久久久久久久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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人免费淫片aa视频免费 | 网站黄色av | 欧美一级淫片免费视频黄 | 一区二区三区视频在线观看 | 国产精品夜夜夜一区二区三区尤 | 亚洲一区中文 | 麻豆国产一区二区三区四区 | 91精品国产综合久久久动漫日韩 | 精品国产视频 | 国产在线不卡 | 国产在线精品一区二区三区 | www国产成人免费观看视频,深夜成人网 | 毛片av免费在线观看 | 天天艹天天干天天 | 亚洲国产精品一区二区久久 | 久久亚洲91 | 久久大| 国产成人精品免高潮在线观看 | 日韩av在线一区 | 久久99久久 | 天天夜夜人人 | 午夜无码国产理论在线 | 日本色婷婷 | 欧美精品综合在线 | 欧美jizzhd精品欧美巨大免费 | 国产亚洲精品a | 成人欧美一区二区三区视频xxx | 视频1区 | 日韩av黄色 | 亚洲欧美在线视频 | 亚洲区一 | 久久一级 | 国产综合精品一区二区三区 | 免费在线一区二区三区 | 亚洲激情在线观看 | 久久久亚洲一区 | 欧美一级www片免费观看 | 国产91视频一区二区 | 欧美性一级 | 精品一区二区久久 | 久久久久久久久久一区 |