新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 介紹單片機(jī)上的幾種按鍵輸入實(shí)現(xiàn)方法

介紹單片機(jī)上的幾種按鍵輸入實(shí)現(xiàn)方法

作者: 時(shí)間:2016-11-25 來源:網(wǎng)絡(luò) 收藏
按鍵作為一種簡單實(shí)用的輸入設(shè)備已經(jīng)應(yīng)用于各種單片機(jī)應(yīng)用系統(tǒng)中,稱得上是無處不在。
但是在不同的實(shí)用場合下所使用的按鍵也是各不相同。現(xiàn)在就對幾種經(jīng)常用到的按鍵及其使用方法進(jìn)行介紹。

一、傳統(tǒng)按鍵:
傳統(tǒng)按鍵是現(xiàn)在在各種電子設(shè)備中應(yīng)用最為廣泛的按鍵,可能它們的形狀各有不
同,但其控制方法卻大同小異,利用按鍵是否按下的IO 電平狀態(tài)變化來對其進(jìn)行識別。

1)直接按鍵
最簡單的鍵盤就是把電平信號直接接到IO 上。在程序里面讀取IO 電平狀態(tài),如
果讀到相應(yīng)的電平,則說明此IO 上所接的按鍵被按下。這種方法原理與控制方法都非
常簡單,但造成了IO 資源的浪費(fèi)。這種按鍵方式的示意圖如下:


2)掃描按鍵矩陣

這種按鍵輸入方式很巧妙地利用了IO 資源,使得8 個(gè)IO 可以實(shí)現(xiàn)16 鍵鍵盤。它
的示意圖如下:

這種按鍵輸入方式比上面的直接按鍵方式從原理與控制上都比上面的直接按鍵要
復(fù)雜。它通過IO 的掃描來獲取鍵值,其實(shí)掃描過程非常簡單,過程如下:
KEY1~KEY4 對應(yīng)于IO0~IO3,KEY5~KEY8 對應(yīng)于IO4~IO7。
1.將IO0~IO3 置高,將IO4 置低,IO5、IO6、IO7 置高,讀取IO0~IO3。第一列的某
個(gè)按鈕按下后,使相應(yīng)的兩個(gè)觸點(diǎn)接通,相應(yīng)行上的IO 可以讀到低電平。
2.將IO0~IO3 置高,將IO5 置低,IO4、IO6、IO7 置高,讀取IO0~IO3。第一列的某
個(gè)按鈕按下后,使相應(yīng)的兩個(gè)觸點(diǎn)接通,相應(yīng)行上的IO 可以讀到低電平。
3.將IO0~IO3 置高,將IO6 置低,IO4、IO5、IO7 置高,讀取IO0~IO3。第一列的某
個(gè)按鈕按下后,使相應(yīng)的兩個(gè)觸點(diǎn)接通,相應(yīng)行上的IO 可以讀到低電平。
4.將IO0~IO3 置高,將IO7 置低,IO4、IO5、IO6 置高,讀取IO0~IO3。第一列的某
個(gè)按鈕按下后,使相應(yīng)的兩個(gè)觸點(diǎn)接通,相應(yīng)行上的IO 可以讀到低電平。
循環(huán)此過程可以不斷讀取按鍵鍵值。
在實(shí)際的應(yīng)用中,這個(gè)掃描過程通常是放在定時(shí)器的中斷服務(wù)程序中去完成的,
通過全局變量將鍵值返回到其它函數(shù)中去。當(dāng)然,作為學(xué)習(xí)其掃描過程,也可以將掃
描放在主函數(shù)中直接來完成。
在上面介紹的按鍵輸入方式中,讀者可以看到,IO 都是以低電平作為檢測電平,那這
是為什么呢?這是因?yàn)閱纹瑱C(jī)IO 讀取電平狀態(tài)的時(shí)候,讀取低電平比高電平要穩(wěn)定。也下
是因?yàn)檫@一原因外部中斷以低電平或下降沿來作為其中斷觸發(fā)條件,以保證中斷的可*性。

本文引用地址:http://butianyuan.cn/article/201611/321279.htm

二、多向集成按鍵
現(xiàn)在的手持設(shè)備越來越流行,人們也越來越多地接觸到多向集成按鍵,如手機(jī)上的
五向?qū)Ш芥I、MP3 上的撥動開關(guān)等,都是類似的按鍵設(shè)備。它們有一個(gè)共同的特點(diǎn),
就是一個(gè)集成按鍵可以輸出若干個(gè)方向上的信號,以供控制器識別。多向集成按鍵如下
圖:

1)五向按鍵
五向按鍵我們基本上每天都在用,只要你掏出MP3、手機(jī)就可以看到它的身影,
也許有人會感覺到它的神奇,這里就為你揭開它的秘密。
五向按鍵其實(shí)就是把5 個(gè)傳統(tǒng)按鍵進(jìn)行了集成,把它們分別安排在上、下、左、
右、中五個(gè)方向上,從而就構(gòu)成了五向鍵。當(dāng)某一方向的按鍵導(dǎo)通時(shí),IO 上就可以
感應(yīng)相應(yīng)的電平,從而對其方向加以識別。五向應(yīng)用示意圖如下:


從上圖中可以到五向鍵的使用方法其實(shí)與傳統(tǒng)按鍵中的直接按鍵是一樣的。

2)撥輪按鍵
撥輪按鍵在產(chǎn)品中經(jīng)常用來作音量調(diào)節(jié)、項(xiàng)目選擇等。其原理與五向鍵相類似,
不同的是,撥輪按鍵中集成了左、右、中三個(gè)方向按鍵,按鍵與改為了撥動方式,從
而更適合于使用者的使用習(xí)慣。應(yīng)用示意圖如下:

在SiriuS 開發(fā)板上五向按鍵與撥輪按鍵的使用如下圖:


三、模擬按鍵

上面介紹的按鍵輸入方式都是采用數(shù)字信號來進(jìn)行按鍵識別的,它的缺點(diǎn)就是需要
較多的IO,同時(shí)按鍵的數(shù)量也有限。而這里要介紹的采用模擬信號對按鍵進(jìn)行識別的
方法則可以節(jié)省IO,而按鍵的擴(kuò)展也十分方便。當(dāng)然,它的實(shí)現(xiàn)需要相應(yīng)的硬件(數(shù)
模轉(zhuǎn)換器)支持。

原理其實(shí)非常簡單,在串接的等值電阻間接上按鍵,按鍵另一端接到地。這
樣某兩個(gè)電阻間因按鍵接通而接到地時(shí),在模數(shù)轉(zhuǎn)換器的輸入端會得到不同的電壓值,
這些電壓值依次為1/2 VCC、2/3VCC……,按照這些電壓值就可以識別出所按下的按鍵。
按鍵的最大數(shù)量起決于模數(shù)轉(zhuǎn)換器的精度。




關(guān)鍵詞: 單片機(jī)按鍵輸

評論


技術(shù)專區(qū)

關(guān)閉