51單片機的多功能按鍵程式設計

  • 2020 年 3 月 17 日
  • 筆記

這個問題也是前些天在群里又同學問起過,還有就是我們的DIY電子時鐘里也需要這樣的設計,所以今天我們就來說說多功能按鍵程式怎麼寫。

我們的DIY電子時鐘上有三個按鍵,而這三個按鍵需要完成整個時鐘的參數設置,所以就需要用到復用功能的按鍵,也就是今天我們說的多功能按鍵。

任務要求:採用板子上的三個按鍵,完成至少4個時間參數的設置。

根據以上的任務要求,我們來說說程式設計的思路(電路原理我們在之前的教程里已經介紹過了)。我們3個按鍵要去設置至少4個的參數,這顯然是一個按鍵設置一個參數是不行的,那第一集里我們說的按鍵程式就是不可行的了,那怎麼辦呢?對參數的設置,自然需要可以加,也可以減,這樣我們就需要兩個按鍵,這兩個按鍵我們分別計為「+」鍵和「-」鍵,剩下的一個按鍵我們用來選擇設置的參數,計為「SET」鍵。第一集里的按鍵程式我們是記錄按鍵按下的次數,這裡我們同樣通過記錄按鍵次數的方式來選擇設置的參數,比如:「SET」鍵按下1次,我們選擇設置的參數為第一個,此時按下「+」「-」鍵可以對第一個參數調整,「SET」鍵按下第二次,我們選擇設置的參數為第二個,此時按下「+」「-」鍵可以對第二個參數調整,依次下去,這樣理論上是不是可以設置無數個參數,而實際上也是可行的。具體的設置過程如下:

開始: SET 按下1次 ,此時按下「+」「-」設置參數1;

SET按下2次 ,此時按下「+」「-」設置參數2;

SET按下3次 ,此時按下「+」「-」設置參數3;

SET按下4次 ,此時按下「+」「-」設置參數4;

。。。 。。。

結束。

通過這樣的方式,我們就可以實現用三個按鍵去設置多個參數,這個SET按鍵就是具有複合功能的按鍵,也就是多功能按鍵了,通過記錄它按下的次數,我們來選擇對不同參數的設置。

在實際運用中,我們需要確定需要設計的參數的多少,比如要設置4個參數,那我們可以在SET按下第5次的時候退出按鍵設置程式。也就說在設置參數個數加一次的時候退出設置部分,並保存設置的值。這樣的程式是簡單的寫發,還有更智慧的寫法是當我們進入設置狀態後,幾秒鐘沒有按鍵按下後就自動退出設置程式,這樣就需要開啟定時器,或者在設置程式部分做計數的處理,這方法後續有時間我們會再給大家細說,今天不做過多說明。

接下來我們說說再寫程式時候的注意事項。按鍵檢測還是老方法用if語句來判斷按鍵按下與否。在SET鍵選擇設計參數時候我們常用的是分支語句switch…case語句。具體請參看我們的源程式碼部分。

最後我們要把設置的參數顯示出來,這裡我們DIY電子時鐘上只有4位數碼管可以用來顯示,我們安排的顯示介面如下,參數1顯示在左邊第一位,依次向右,第二位顯示參數2,第三位顯示參數3,第四位顯示參數4.在設置的時候,設置哪一個參數,就只在對應的位上顯示當前設置的參數。

詳細的程式碼設計如下圖:(為防止大家複製粘貼,我們提供的源碼都以圖片形式呈現,你可以照著搬,但是必須你自己動手敲進去,小代在此說明,所有源碼都是可行的,都是小代原創的,轉載及使用請說明出處)以下程式碼主要是按鍵處理的部分,顯示及主函數部分和之前教程里的是一樣,在此就省略了。需要之前的教程,可以關注微信公眾號:單片機技術宅,然後在下面的菜單中查看「文章」。

Tags: