欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2767|回復: 6
收起左側

MCU C語言程序檢測按鍵的幾種用法

[復制鏈接]
ID:880332 發表于 2023-6-12 10:06 | 顯示全部樓層 |閱讀模式
按鍵,有多種用法,
1. 獨立按鍵:按一個,對應一個動作,可以用掃描,也可用 中斷方式;2. 矩陣按鍵:常用的 4*4 = 16, 3*8 = 24,... 主要在于將小數按鍵進行組合,達到 以少生多 的控制效果,節約 IO 控制端口;
3. 長按 短按:這個,是目前較為常用的一種思路,一個按鍵形成 多個 用途:給出MCU C語言代碼框架,方便大家使用;


void Key()
{
      uchar count_x;                   // 定義 臨時 變量,用于統計按鍵的 計時長度;
     if( !K1 )                               // 按鍵 按下;
    {
         Delay_Nms(30);               // 防抖;
         if(!K1)                           // 確定 按鍵 真實 按下;
         {
               count_x = 0;           // 記數清 0;
              do{     
                   count_x ++;        // 記錄 長按 短按;
                  Delay_Nms(10);
                   if( count_x >= 20) break;    // 記到 20就封頂;
               } while(!K1);          // 設計到 1000ms ,就松手,就退出 計數;

      // 長按 短按 的 時間分界點:(0----20---30)
      if(count_x <= 20)  // 短按;   
       {
          ;         //短按對應 程序體1;
       }
       else      // 長按;
      {
           ;        //長按對應 程序體2;
        }
      }
    }
}

4. 計數按鍵:這個,通常會結合定時器使用,按下去后,在一個指時時間類,計下按下按鍵的次數,當時間停止后,對應按鍵次數,進入對應的 指定模塊運行;

不知,大家還有什么 常用的 按鍵 知識,可以一起分享;

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:641483 發表于 2023-6-16 11:16 | 顯示全部樓層
謝謝樓主分享 已收藏!這樣長短安鍵 確實方便靈活
回復

使用道具 舉報

ID:947230 發表于 2023-6-16 12:00 | 顯示全部樓層
不能用中斷計時來嗎?
回復

使用道具 舉報

ID:140489 發表于 2023-6-16 13:44 | 顯示全部樓層
按鍵消抖不要用延時,這種程序在開發板上玩玩可以,不要用在實際項目中
回復

使用道具 舉報

ID:1064915 發表于 2023-6-16 14:26 | 顯示全部樓層
設計到1000ms ,就松手,就退出 計數,1000ms如何計算的?
回復

使用道具 舉報

ID:432633 發表于 2023-10-20 16:21 | 顯示全部樓層
不用說delay  30ms了,就是10ms 實際產品中都不能使用,你還有while等按鍵松開。 不實用的代碼。          時基和無阻塞 是最基本的入門技能,用delay這么長時間的,入門都還沒入門  
回復

使用道具 舉報

ID:46750 發表于 2023-10-21 19:55 | 顯示全部樓層
6樓說得對,建議樓主不要展示這種示例
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表