(21種方案的原理圖展示,及原理簡單介紹)
按鍵作為一個輸入模塊,在單片機(jī)開發(fā)板中必不可少,本文來討論按鍵的設(shè)計方案。本文1600字。之后可能對按鍵編程部分進(jìn)行分析(可能是視頻形式,打字的話,太多了)
按鍵模塊的編程,實際上就是根據(jù)檢測口的電平變化和按鍵電路的狀態(tài),判斷出按鍵模塊中哪個按鍵是真的按下了,按鍵編程的最基礎(chǔ),常用的就是區(qū)分出每一個按鍵,其次是每個按鍵的長按,短按,雙擊。最后才是組合按鍵的情況。組合按鍵是指多個按鍵同時按下的情況,比如電腦鍵盤存在3個按鍵同時按下的情況。多個按鍵同時按下,獨立按鍵是比較好處理的,因為不存在電路問題,其他的按鍵電路,有的電路不能容忍多個按鍵同時按下,如,ADC檢測按鍵,還有的電路,檢測起來的程序可能更加復(fù)雜,這里就不進(jìn)行展開了。
按鍵的模塊的設(shè)計,主要內(nèi)容是:按鍵數(shù)量和需要IO口的數(shù)量,當(dāng)然有些不常見的按鍵電路,需要一些其他器件,芯片輔助完成。
下表為按鍵設(shè)計的一些方案(占用IO口數(shù)量在8個IO口以內(nèi),可使用擴(kuò)展芯片。只列出來一部分,有些專用的按鍵檢測芯片,因為本人沒有使用過,所以這里沒有列出來,歡迎評論區(qū)留言)
表1 一些按鍵檢測方案
方案1,2的電路圖相似,編程上也基本一致,但是要做到3X3矩陣按鍵不影響8個IO口剩下的兩個,需要對4X4矩陣按鍵的代碼做出一些優(yōu)化,這里就不進(jìn)行展開了。下圖是4X4矩陣按鍵和3X3矩陣按鍵的原理圖。
方案3-6,看似就是按鍵數(shù)量的增加,電路的重復(fù),實際上針對不同的按鍵數(shù)量,他們的編程可能存在不同,比如最常見的獨立按鍵編程,只檢測一個按鍵,那如何編程2個獨立按鍵的程序呢?復(fù)制,再寫個一樣的函數(shù)?這樣做的效率其實很低。獨立按鍵的原理圖如圖所示。同時獨立按鍵可以加上0.1Uf的電容進(jìn)行消抖處理,這樣我們代碼中就不需要軟件消抖了。
方案7,8都是按鍵結(jié)合二極管,使得較少的IO口可以檢測出較多的按鍵,這兩個我之前都分析過的,也分享過視頻,這里就不進(jìn)行展開了。
方案9,4個IO口檢測52個按鍵,這里使用了較多的二極管,這個的檢測原理和方案7,8相似,這里不進(jìn)行展開了,本人還沒有進(jìn)行測試。但是原理沒有問題,同時4個IO口理論上可以檢測更多的按鍵,不過還需要增加二極管的數(shù)量。
方案10,譯碼器+
IO口方案,這個其實就是一個掃描方案,如果你的電路中出現(xiàn)數(shù)碼管,可以和數(shù)碼管的位選進(jìn)行結(jié)合,減少單片機(jī)IO口的使用數(shù)量,當(dāng)然那樣你的代碼可能更加的復(fù)雜。
方案11,一個IO口檢測兩個按鍵,這個設(shè)計呢,可能有點超出大部人的理解,但這個設(shè)計確實可以存在。通過判斷IO電平是被拉高還是拉低區(qū)分出兩個按鍵的動作。
方案12,矩陣按鍵8X8,是一個我之前制作過的一個項目,使用譯碼器進(jìn)行掃描,使用CD4051讀取按鍵的狀態(tài),64個按鍵需要掃描64次才完成一輪,當(dāng)檢測按鍵按下時,停止掃描,進(jìn)行按鍵的,短按,長按,雙擊判斷,算是轉(zhuǎn)化為普通的按鍵了。
方案13,ADC檢測按鍵,這個方案作為最節(jié)省IO口的代表,每次我發(fā)其他類型的視頻,總是有人推薦這個,有一說一,確實。但是這個是需要ADC口的,同時這個按鍵組合,一定不能存在兩個按鍵同時被按下的情況。還有就是電路中的電阻精度,盡量選擇1%,選擇5%精度的電阻可能出現(xiàn)按鍵檢測錯誤現(xiàn)象。
方案14-20,又是一系列方案,這個方案和方案7.8.9是一樣的,從方案7,8,9演變而來,取消了方案7,8,9中的部分情況。
方案20,這個8個IO口檢測64個按鍵,其中電路中二極管的數(shù)量為8個,這8個二極管的作用就是:區(qū)分出是IO1拉低了IO2,還是IO2拉低了IO1。區(qū)分出這些呢,一共是56種情況,加上最下邊的8個獨立按鍵,即可實現(xiàn)64個按鍵的區(qū)分。
方案21,8路觸摸按鍵。這個方案我是測試過的,可行,但是電路需要較多的元件,因為這個電路是從最基礎(chǔ)的部分做起。這個的原理就不分析了,分析起來能新開一篇文章。
至此,21個電路,12種按鍵方案的電路圖已經(jīng)分享完了,部分方案我是分享過視頻的,而每一個方案都是可行的(如果問題,可以提出),之后呢,可能對每種方案的編程思想進(jìn)行詳解,敬請期待。
-
電路圖
+關(guān)注
關(guān)注
10358文章
10725瀏覽量
533250 -
單片機(jī)
+關(guān)注
關(guān)注
6044文章
44624瀏覽量
638943 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5126瀏覽量
98320 -
按鍵電路
+關(guān)注
關(guān)注
1文章
35瀏覽量
21832 -
按鍵檢測
+關(guān)注
關(guān)注
0文章
24瀏覽量
4856
發(fā)布評論請先 登錄
相關(guān)推薦
單片機(jī)外圍電路設(shè)計
ARM單片機(jī)的復(fù)位電路設(shè)計
![ARM<b class='flag-5'>單片機(jī)</b>的復(fù)位<b class='flag-5'>電路設(shè)計</b>](https://file1.elecfans.com//web2/M00/A4/6E/wKgZomUMNCuAP9zBAABjWWLonzc463.jpg)
單片機(jī)視頻教程10:按鍵
![<b class='flag-5'>單片機(jī)</b>視頻教程10:<b class='flag-5'>按鍵</b>](https://file1.elecfans.com//web2/M00/A6/4E/wKgZomUMPNGAE06tAAAJHVHXW0U370.jpg)
51單片機(jī)的獨立按鍵和按鍵消抖及矩陣按鍵的電路與程序免費下載
![51<b class='flag-5'>單片機(jī)</b>的獨立<b class='flag-5'>按鍵</b>和<b class='flag-5'>按鍵</b>消抖及矩陣<b class='flag-5'>按鍵</b>的<b class='flag-5'>電路</b>與程序免費下載](https://file.elecfans.com/web1/M00/9E/DA/pIYBAF06ryaAb3BVAABurnm_HTk738.png)
單片機(jī)實現(xiàn)按鍵的電路和程序設(shè)計資料說明
STM32單片機(jī)按鍵電路設(shè)計資料下載
![STM32<b class='flag-5'>單片機(jī)</b><b class='flag-5'>按鍵</b><b class='flag-5'>電路設(shè)計</b>資料下載](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
簡單51單片機(jī)開發(fā)板的電路設(shè)計
![簡單51<b class='flag-5'>單片機(jī)</b>開發(fā)板的<b class='flag-5'>電路設(shè)計</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
單片機(jī)按鍵使用程序 (51單片機(jī))
![<b class='flag-5'>單片機(jī)</b><b class='flag-5'>按鍵</b>使用程序 (51<b class='flag-5'>單片機(jī)</b>)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論