在嵌入式系統產品開發中,按鍵板的設計是最基本的,也是專案評估階段必須要考慮的問題。其實現方式又很多種,具體使用那一種就需要結合特定ic的可用io數量,並綜合考慮成本,做出最終選擇。本系列文章將介紹多種不同按鍵板的原理與實現。這是最簡單的實現方式,它需要系統ic提供乙個內部adc。如果ic不能提供出額外的adc的話,從成本等因素考慮,去外加乙個adc是不明智的選擇,可考慮的替代方案將在後續文章中討論。
1:硬體原理
按鍵其實就是乙個開關電路,按下為導通,鬆開為斷開。電路實現上,就是要設法能夠區分多個按鍵中任意乙個有沒有被按下。
adc是乙個模擬到數字的轉換器件,在其工作範圍內,不同的模擬輸入,可以得到不同的數字輸出。ic的內部adc一般會對應於乙個暫存器或內部儲存器位址,甚至提供乙個api呼叫。adc按鍵板實現的原理就是使用外部電路的分壓,使得不同按鍵動作產生不同的模擬電平給adc,如下圖1所示:
這是乙個portable *** player的按鍵板實現,從原理圖上,我們可以很清楚的看出來:不同的按鍵按下,則 key_det0 上將得到不同的電壓值,而key_det0連線到ic的adc,這樣對adc的讀取將會得到不同的值,從而區分不同的按鍵動作。
2:軟體實現
根據hw的實現,合理定義判斷區間,就可以很容易實現軟體程式設計了。以上圖為例:假定adc在輸入電平0v-3.3v輸入下可以得到0x00-0xff的近似等比相應的話,將可以實現如下:
3:總結與討論
這種實現是如此的簡單,一眼就能看懂的那種,若不是考慮這個系列的完整性,我都不好意思把它寫出來哦
按鍵板的原理與實現 ADC
在嵌入式系統產品開發中,按鍵板的設計是最基本的,也是專案評估階段必須要考慮的問題。其實現方式又很多種,具體使用那一種就需要結合特定ic的可用io數量,並綜合考慮成本,做出最終選擇。本系列文章將介紹多種不同按鍵板的原理與實現。使用adc實現按鍵板 這是最簡單的實現方式,它需要系統ic提供乙個內部adc...
按鍵板的原理與實現 系列3 擴充套件GPIO
在系統可用的gpio口數量有限的情況下實現按鍵板的另乙個選擇就是 擴充套件gpio口。擴充套件gpio的方法有很多,市場上已經有很多種類的gpio口擴充套件器件,但是從成本上考慮,但它們總是顯得昂貴。對於按鍵板的實現,使用基於乙個移位暫存器的方法,因其低成本 方便穩定性而被廣泛使用,這裡我們將討論乙...
按鍵板的原理和實現 基於GPIO的按鍵板
上篇介紹簡單的adc實現,需要ic提供乙個額外的adc。但出於ic成本的考慮,無法提供這個的adc時,但提供了多個額外的gpio general purpose input output 雙向的 可以為輸入 輸出,只有兩個狀態high low 就可以使用本篇的實現方法了。基於gpio的按鍵板 嵌入式...