完整的單擊、雙擊、長按**。
工作原理:當有按鈕第一次按下時,設定第乙個標誌an,當按鈕第一次釋放後,進入中斷消抖延時計數,假如在計數範圍內第二次按鈕按下,設定第二標誌aa,這樣就把單擊和雙擊區分開,而且是可靠的邏輯標誌,長按為大於1秒的判斷.
中斷消抖及按鈕單擊、雙擊、長按處理,雙擊在**中穩穩地檢測到執行。
之前發布的矩陣按鍵也一樣可以採用中斷延時,不過時間應該更短,如50-100毫秒。
本**的巧妙之處在於:
1.只有按鈕按下才執行消抖延時,否則不執行延時
2.巧妙利用消抖延時,同時檢查按鍵雙擊判斷
3.判斷設計精巧,**短小精悍
4.消抖延時時間極易調整
5.多極判斷可擴充套件性良好
6.構思巧妙,易於理解其原理
中斷是乙個知識點也是需要謹慎處理的點,處理不好的話,執行起來會看到怪現象,簡單的話當然不會看到什麼影響,不過即使是簡單的數碼管顯示還是按鍵消抖,我也覺得有必要研究如何是最優的在乙個中斷源中處理.
51微控制器自學筆記
中斷tmod 定時器工作方式暫存器 tcon 定時器控制暫存器 thx,tlx計算方法 定時器 計數器高階應用 52微控制器特有的定時器2 計數功能的應用 數碼管按鍵 序列口通訊 i 2 c通訊 spi通訊 數模轉換 esp8266wifi模組 目前正在準備寫乙個51微控制器庫,希望能實現51的大多...
51微控制器的自學筆記
必備了解 微控制器需要運用到數位電路的知識。數位電路中只有兩種電平 高和低 定義微控制器為 ttl電平 高 5v 低 0v rs232電平 計算機的串列埠 高 12v 低 12v 所以計算機與微控制器之間通訊時需要加電 平轉換晶元max232 實驗板上左下角 ttl電平訊號被利用的最多。且資料採用二...
微控制器定時器雙擊 關於51微控制器定時器的靈活使用
前段時間,做乙個專案,有串列埠收發指令判斷,按鍵型別判斷,長短按之類,power的定時關電,事件的輪詢掃瞄更新和display的定時掃瞄。這些要求就對定時器提出了要求,但是我的51微控制器只有兩個定時器,其中乙個又有debug口的波特率產生之用。於是乎我可以用的定時器就只剩下了乙個。怎麼辦?可能大家...