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

專注電子技術學習與研究
當前位置:單片機教程網(wǎng) >> MCU設計實例 >> 瀏覽文章

單片機與4x4鍵盤 去抖 松手檢測程序

作者:huqin   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年04月09日   【字體:

剛寫的一個4*4 鍵盤, 去抖   松手檢測程序。 項目中要用4*4 鍵盤,掃描的程序有。但是去抖,和松手檢測的程序沒有,那么為了提高效率,可靠性,以及更加合理化。到網(wǎng)上找了一些關于”狀態(tài)機“的資料,按照它的思路寫了一個,寫了半天,寫好一個,經(jīng)過特發(fā)帖紀錄一下。


//對按鍵掃描的值  進行處理  去抖  松手檢測
uint8_t key_scan(void)
{
 static uint8_t key_state = 0;
 static uint8_t key_num_flag1=0;


 uint8_t temp_key_num=0;
  uint8_t return_key_num=0;


 temp_key_num=KeyMap(); //讀取4*4 鍵盤返回的按鍵值  不要去抖


 switch(key_state) //檢測狀態(tài)
 {
  case key_state_0:
   if(temp_key_num!=0)  //如果按鍵返回不是0  說明有按鍵按下
   {
    key_num_flag1=temp_key_num;  //記錄下 第一次按鍵按下的值
      key_state=key_state_1;  //進入下一個狀態(tài)  去抖
   } 
  break;


  case key_state_1:
   if(temp_key_num!=0)  //如果按鍵返回不是0  說明按鍵是按下的
   {
    if(key_num_flag1==temp_key_num) //判斷是否和上次記錄按鍵值一樣。
    {
     return_key_num=temp_key_num;  // 按鍵仍按下,賦值給 返回按鍵值


             key_state = key_state_2;        // 狀態(tài)轉換到鍵釋放態(tài)
    }
    else
    {
     key_state=key_state_0;  //回到初始狀態(tài) 
    }
   }
   else    ///沒有按鍵按下
   {
    key_state=key_state_0;  //回到初始狀態(tài) 
   } 
  break;


  case key_state_2:
            if(temp_key_num==0)  //如果沒有按鍵按下。 說明按鍵松手了
   {
    key_state = key_state_0;    //按鍵已釋放,轉換到按鍵初始態(tài)
   }
   else
   {
    return_key_num=key_num_flag1; //如果沒有松手那就返回之前記錄的值


    //如果沒有這句的話,那么返回就是0。 這個適合4*4 鍵盤掃描,假如沒有這句
    //那么只有狀態(tài)1時候返回一次return_key_num,下面就一直不返回了。
    
   }


  break;
 }


 return return_key_num;  //返回按鍵值
  
}

關閉窗口

相關文章

主站蜘蛛池模板: 欧洲精品码一区二区三区免费看 | 91国自视频 | 中文亚洲视频 | 国产精品视频久久久 | 一级片在线视频 | 欧美久久久 | 国产精品视频999 | 国产精品久久久乱弄 | 超碰一区二区 | 毛片免费看 | 一区二区在线不卡 | 久久精品aaa | 罗宾被扒开腿做同人网站 | 欧美日韩久久久 | 日本人和亚洲人zjzjhd | 亚洲国产精品久久久 | 精品国产免费人成在线观看 | 激情网站在线 | 一级做a| 三区四区在线观看 | 国产一区二区精品在线观看 | 日本高清aⅴ毛片免费 | 91在线看网站| 日韩精品免费视频 | 精品久久久久久久 | www.激情.com | 涩爱av一区二区三区 | 日本亚洲欧美 | www.久草.com| 午夜精品久久久久久久 | 成人免费小视频 | 国产91在线播放 | 在线一区视频 | 青青青伊人 | 精品一区二区电影 | 别c我啊嗯国产av一毛片 | 成人亚洲性情网站www在线观看 | 一区二区三区不卡视频 | 97久久久 | 亚洲国产一区二区三区在线观看 | 综合欧美亚洲 |