(21種方案的原理圖展示,及原理簡單介紹)
按鍵作為一個(gè)輸入模塊,在單片機(jī)開發(fā)板中必不可少,本文來討論按鍵的設(shè)計(jì)方案。本文1600字。之后可能對按鍵編程部分進(jìn)行分析(可能是視頻形式,打字的話,太多了)
按鍵模塊的編程,實(shí)際上就是根據(jù)檢測口的電平變化和按鍵電路的狀態(tài),判斷出按鍵模塊中哪個(gè)按鍵是真的按下了,按鍵編程的最基礎(chǔ),常用的就是區(qū)分出每一個(gè)按鍵,其次是每個(gè)按鍵的長按,短按,雙擊。最后才是組合按鍵的情況。組合按鍵是指多個(gè)按鍵同時(shí)按下的情況,比如電腦鍵盤存在3個(gè)按鍵同時(shí)按下的情況。多個(gè)按鍵同時(shí)按下,獨(dú)立按鍵是比較好處理的,因?yàn)椴淮嬖陔娐穯栴},其他的按鍵電路,有的電路不能容忍多個(gè)按鍵同時(shí)按下,如,ADC檢測按鍵,還有的電路,檢測起來的程序可能更加復(fù)雜,這里就不進(jìn)行展開了。
按鍵的模塊的設(shè)計(jì),主要內(nèi)容是:按鍵數(shù)量和需要IO口的數(shù)量,當(dāng)然有些不常見的按鍵電路,需要一些其他器件,芯片輔助完成。
下表為按鍵設(shè)計(jì)的一些方案(占用IO口數(shù)量在8個(gè)IO口以內(nèi),可使用擴(kuò)展芯片。只列出來一部分,有些專用的按鍵檢測芯片,因?yàn)楸救藳]有使用過,所以這里沒有列出來,歡迎評論區(qū)留言)
表1 一些按鍵檢測方案

方案1,2的電路圖相似,編程上也基本一致,但是要做到3X3矩陣按鍵不影響8個(gè)IO口剩下的兩個(gè),需要對4X4矩陣按鍵的代碼做出一些優(yōu)化,這里就不進(jìn)行展開了。下圖是4X4矩陣按鍵和3X3矩陣按鍵的原理圖。

方案3-6,看似就是按鍵數(shù)量的增加,電路的重復(fù),實(shí)際上針對不同的按鍵數(shù)量,他們的編程可能存在不同,比如最常見的獨(dú)立按鍵編程,只檢測一個(gè)按鍵,那如何編程2個(gè)獨(dú)立按鍵的程序呢?復(fù)制,再寫個(gè)一樣的函數(shù)?這樣做的效率其實(shí)很低。獨(dú)立按鍵的原理圖如圖所示。同時(shí)獨(dú)立按鍵可以加上0.1Uf的電容進(jìn)行消抖處理,這樣我們代碼中就不需要軟件消抖了。

方案7,8都是按鍵結(jié)合二極管,使得較少的IO口可以檢測出較多的按鍵,這兩個(gè)我之前都分析過的,也分享過視頻,這里就不進(jìn)行展開了。

方案9,4個(gè)IO口檢測52個(gè)按鍵,這里使用了較多的二極管,這個(gè)的檢測原理和方案7,8相似,這里不進(jìn)行展開了,本人還沒有進(jìn)行測試。但是原理沒有問題,同時(shí)4個(gè)IO口理論上可以檢測更多的按鍵,不過還需要增加二極管的數(shù)量。

方案10,譯碼器+
IO口方案,這個(gè)其實(shí)就是一個(gè)掃描方案,如果你的電路中出現(xiàn)數(shù)碼管,可以和數(shù)碼管的位選進(jìn)行結(jié)合,減少單片機(jī)IO口的使用數(shù)量,當(dāng)然那樣你的代碼可能更加的復(fù)雜。

方案11,一個(gè)IO口檢測兩個(gè)按鍵,這個(gè)設(shè)計(jì)呢,可能有點(diǎn)超出大部人的理解,但這個(gè)設(shè)計(jì)確實(shí)可以存在。通過判斷IO電平是被拉高還是拉低區(qū)分出兩個(gè)按鍵的動(dòng)作。

方案12,矩陣按鍵8X8,是一個(gè)我之前制作過的一個(gè)項(xiàng)目,使用譯碼器進(jìn)行掃描,使用CD4051讀取按鍵的狀態(tài),64個(gè)按鍵需要掃描64次才完成一輪,當(dāng)檢測按鍵按下時(shí),停止掃描,進(jìn)行按鍵的,短按,長按,雙擊判斷,算是轉(zhuǎn)化為普通的按鍵了。

方案13,ADC檢測按鍵,這個(gè)方案作為最節(jié)省IO口的代表,每次我發(fā)其他類型的視頻,總是有人推薦這個(gè),有一說一,確實(shí)。但是這個(gè)是需要ADC口的,同時(shí)這個(gè)按鍵組合,一定不能存在兩個(gè)按鍵同時(shí)被按下的情況。還有就是電路中的電阻精度,盡量選擇1%,選擇5%精度的電阻可能出現(xiàn)按鍵檢測錯(cuò)誤現(xiàn)象。

方案14-20,又是一系列方案,這個(gè)方案和方案7.8.9是一樣的,從方案7,8,9演變而來,取消了方案7,8,9中的部分情況。

方案20,這個(gè)8個(gè)IO口檢測64個(gè)按鍵,其中電路中二極管的數(shù)量為8個(gè),這8個(gè)二極管的作用就是:區(qū)分出是IO1拉低了IO2,還是IO2拉低了IO1。區(qū)分出這些呢,一共是56種情況,加上最下邊的8個(gè)獨(dú)立按鍵,即可實(shí)現(xiàn)64個(gè)按鍵的區(qū)分。

方案21,8路觸摸按鍵。這個(gè)方案我是測試過的,可行,但是電路需要較多的元件,因?yàn)檫@個(gè)電路是從最基礎(chǔ)的部分做起。這個(gè)的原理就不分析了,分析起來能新開一篇文章。

至此,21個(gè)電路,12種按鍵方案的電路圖已經(jīng)分享完了,部分方案我是分享過視頻的,而每一個(gè)方案都是可行的(如果問題,可以提出),之后呢,可能對每種方案的編程思想進(jìn)行詳解,敬請期待。
-
電路圖
+關(guān)注
關(guān)注
10479文章
10755瀏覽量
555253 -
單片機(jī)
+關(guān)注
關(guān)注
6076文章
45495瀏覽量
670466 -
開發(fā)板
+關(guān)注
關(guān)注
26文章
6291瀏覽量
118173 -
按鍵電路
+關(guān)注
關(guān)注
1文章
36瀏覽量
22165 -
按鍵檢測
+關(guān)注
關(guān)注
0文章
25瀏覽量
5054
發(fā)布評論請先 登錄
基于單片機(jī)的按鍵電路設(shè)計(jì)(1)
單片機(jī)外圍電路設(shè)計(jì)
單片機(jī)視頻教程10:按鍵
51單片機(jī)的獨(dú)立按鍵和按鍵消抖及矩陣按鍵的電路與程序免費(fèi)下載
單片機(jī)實(shí)現(xiàn)按鍵的電路和程序設(shè)計(jì)資料說明
STM32單片機(jī)按鍵電路設(shè)計(jì)資料下載
簡單51單片機(jī)開發(fā)板的電路設(shè)計(jì)
單片機(jī)按鍵使用程序 (51單片機(jī))
基于單片機(jī)的按鍵電路設(shè)計(jì)(2)
評論