跟我學(xué)51單片機(四):獨立-矩陣鍵盤應(yīng)用與設(shè)計
一、原理簡介
鍵盤接口電路是單片機系統(tǒng)設(shè)計非常重要的一環(huán),作為人機交互界面里最常用的輸入設(shè)備。我們可以通過鍵盤輸入數(shù)據(jù)或命令來實現(xiàn)簡單的人機通信。在設(shè)計鍵盤電路與程序前,我們需要了解鍵盤和組成鍵盤的按鍵的一些知識。
1. 按鍵的分類
一般來說,按鍵按照結(jié)構(gòu)原理可分為兩類,一類是觸點式開關(guān)按鍵,如機械式開關(guān)、導(dǎo)電橡膠式開關(guān)等;另一類是無觸點式開關(guān)按鍵,如電氣式按鍵,磁感應(yīng)按鍵等。前者造價低,后者壽命長。目前,微機系統(tǒng)中最常見的是觸點式開關(guān)按鍵(如本學(xué)習(xí)板上所采用按鍵)。
按鍵按照接口原理又可分為編碼鍵盤與非編碼鍵盤兩類,這兩類鍵盤的主要區(qū)別是識別鍵符及給出相應(yīng)鍵碼的方法。編碼鍵盤主要是用硬件來實現(xiàn)對鍵的識別,非編碼鍵盤主要是由軟件來實現(xiàn)鍵盤的識別。
全編碼鍵盤由專門的芯片實現(xiàn)識鍵及輸出相應(yīng)的編碼,一般還具有去抖動和多鍵、竄鍵等保護電路,這種鍵盤使用方便,硬件開銷大,一般的小型嵌入式應(yīng)用系統(tǒng)較少采用。非編碼鍵盤按連接方式可分為獨立式和矩陣式兩種,其它工作都主要由軟件完成。由于其經(jīng)濟實用,較多地應(yīng)用于單片機系統(tǒng)中(本學(xué)習(xí)板也采用非編碼鍵盤)。
2. 按鍵的輸入原理
在單片機應(yīng)用系統(tǒng)中,通常使用機械觸點式按鍵開關(guān),其主要功能是把機械上的通斷轉(zhuǎn)換成為電氣上的邏輯關(guān)系。也就是說,它能提供標準的TTL 邏輯電平,以便與通用數(shù)字系統(tǒng)的邏輯電平相容。此外,除了復(fù)位按鍵有專門的復(fù)位電路及專一的復(fù)位功能外,其它按鍵都是以開關(guān)狀態(tài)來設(shè)置控制功能或輸入數(shù)據(jù)。當(dāng)所設(shè)置的功能鍵或數(shù)字鍵按下時,計算機應(yīng)用系統(tǒng)應(yīng)完成該按鍵所設(shè)定的功能。因此,鍵信息輸入是與軟件結(jié)構(gòu)密切相關(guān)的過程。 對于一組鍵或一個鍵盤,通過接口電路與單片機相連。單片機可以采用查詢或中斷方式了解有無按鍵輸入并檢查是哪一個按鍵按下,若有鍵按下則跳至相應(yīng)的鍵盤處理程序處去執(zhí)行,若無鍵按下則繼續(xù)執(zhí)行其他程序。
3. 按鍵的特點與去抖
機械式按鍵再按下或釋放時,由于機械彈性作用的影響,通常伴隨有一定時間的觸點機械抖動,然后其觸點才穩(wěn)定下來。其抖動過程如圖1(a) 所示,抖動時間的長短與開關(guān)的機械特性有關(guān),一般為5 ~ 10 ms。從圖中可以看出,在觸點抖動期間檢測按鍵的通與斷狀態(tài),可能導(dǎo)致判斷出錯。即按鍵一次按下或釋放被錯誤地認為是多次操作,這種情況是不允許出現(xiàn)的。為了克服按鍵觸點機械抖動所致的檢測誤判,必須采取去抖動措施,可從硬件、軟件兩方面予以考慮。一般來說,在鍵數(shù)較少時,可采用硬件去抖,而當(dāng)鍵數(shù)較多時,采用軟件去抖。( 本學(xué)習(xí)板采用軟件去抖方式)。軟件去抖的流程圖如圖1(b) 所示。
圖1
從按鍵的去抖流程圖我們可以知道,檢測到有鍵按下時,應(yīng)延時等待一段時間(可調(diào)用一個5ms~10ms的延遲子程序),然后再次判斷按鍵是否被按下,若此時判斷按鍵仍被按下,則認為按鍵有效,若此時判斷按鍵沒有被按下,說明為按鍵抖動或干擾,應(yīng)返回重新判斷。鍵盤真正被按下才可進行相應(yīng)的處理程序,此時基本就算實現(xiàn)了按鍵輸入,進一步的話可以判斷按鍵是否釋放。
萬能遙控器相關(guān)文章:萬能遙控器代碼
51單片機相關(guān)文章:51單片機教程
單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
評論