<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

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

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

        作者:huqin   來源:本站原創   點擊數:  更新時間:2014年04月09日   【字體:

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


        //對按鍵掃描的值  進行處理  去抖  松手檢測
        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) //檢測狀態
         {
          case key_state_0:
           if(temp_key_num!=0)  //如果按鍵返回不是0  說明有按鍵按下
           {
            key_num_flag1=temp_key_num;  //記錄下 第一次按鍵按下的值
              key_state=key_state_1;  //進入下一個狀態  去抖
           } 
          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;        // 狀態轉換到鍵釋放態
            }
            else
            {
             key_state=key_state_0;  //回到初始狀態 
            }
           }
           else    ///沒有按鍵按下
           {
            key_state=key_state_0;  //回到初始狀態 
           } 
          break;


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


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


          break;
         }


         return return_key_num;  //返回按鍵值
          
        }

        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮