1、思路:通過設定相應的埠為輸入模式,再通過while語句來迴圈讀取按鍵值,如果按鍵有按下,則做出響應,控制led燈的亮與滅。
2、過程:在建立的工程檔案hardware子資料夾中新增乙個檔名為key的資料夾,在裡面新建好key.c,key.h兩個檔案。之後就再新增到工程中,(剛開始的時候找不到key.h,可以編譯之後就可以在下面的子目錄找到)。由於是埠的使用,所以開始設定埠的模式且使能埠的時鐘。
3、注意點:
key0,key1,wk_up的連線方式如圖所示:
key0、key1是低電平有效,wk_up是高電平有效;那麼在設定埠輸入時應將key0、key1設定為上拉輸入,wk_up設定為下拉輸入,實驗的結果是如果將key0、key1設定為下拉輸入則按鍵無法識別(不支援連續按下的模式)。但是如果在支援連續按下的模式下,則在程式燒錄進去後且按鍵未按下時key0控制的led燈就亮起來,根據程式分析我們可以知道key0具有最高的優先順序。所以在埠設定為下拉輸入的時候就已經使按鍵處於有效的狀態了。所以今後在使用按鍵的時候應該分析當按鍵按下時,埠輸入電平會的狀態,並且要將埠的初始狀態設定為相反的狀態,以便埠讀取到按鍵按下的訊息。例如在本例程中key0、key1為低電平有效,那麼在設定其埠的輸入狀態時就該將其設定為上拉輸入(即高電平)。而wk_up則應設定為下拉輸入。
還有一點就是靜態變數的使用,定義在函式體內的靜態變數相當於全域性變數,它是具有記憶功能的,及它在該函式呼叫或執行的過程中就進行一次的初始化。注意區別於區域性變數。
按鍵輸入實驗
1.硬體接法 4個按鍵 wk up 控制蜂鳴器,key0 同時控制ds0和ds1 key1 控制ds1 key2控制ds0,wk up 外部上拉,晶元內部需要設定為下拉輸入 key0 key2 外部下拉,晶元內部需要設定為上拉輸入。2.標頭檔案編寫 本次實驗涉及到led 蜂鳴器 按鍵,其中led和蜂...
實驗3 按鍵輸入實驗
一 原理圖 二 庫函式 1 讀取io的狀態 uint8 t gpio readinputdatabit gpio typedef gpiox,uint16 t gpio pin 引數 gpio pin gpio pin x x 0 15 返回值 讀取到的狀態 0表示按鍵按下 1表示按鍵沒有按下。三 ...
實驗六 按鍵防抖動實驗
若要使用開發板上面的四個sw按鍵來做計數輸入,就需要知道一共按了幾下按鍵。在這種情況下不能像以前設計電路中,簡單地使用輸入時鐘的上公升沿來檢測按鍵是否按 下。因為,如果分頻以後的時鐘頻率是10hz,按鍵一下按了1 秒鐘,那麼如果簡單地 以時鐘的上公升沿來檢測按鍵,程式就會認為實際一共按了十下按鍵。我...