矩陣式鍵盤工作原理
1.按鍵的分類按鍵按照結(jié)構(gòu)原理可分為兩類,一類是觸點(diǎn)式開關(guān)按鍵,如機(jī)械式開關(guān)、導(dǎo)電橡膠式開關(guān)等;另一類是無觸點(diǎn)式開關(guān)按鍵,如電氣式按鍵,磁感應(yīng)按鍵等。前者造價(jià)低,后者壽命長(zhǎng)。目前,微機(jī)系統(tǒng)中最常見的是觸點(diǎn)式開關(guān)按鍵。
按鍵按照接口原理可分為編碼鍵盤與非編碼鍵盤兩類,這兩類鍵盤的主要區(qū)別是識(shí)別鍵符及給出相應(yīng)鍵碼的方法。編碼鍵盤主要是用硬件來實(shí)現(xiàn)對(duì)鍵的識(shí)別,非編碼鍵盤主要是由軟件來實(shí)現(xiàn)鍵盤的定義與識(shí)別。
全編碼鍵盤能夠由硬件邏輯自動(dòng)提供與鍵對(duì)應(yīng)的編碼,此外,一般還具有去抖動(dòng)和多鍵、竄鍵保護(hù)電路。這種鍵盤使用方便,但需要較多的硬件,價(jià)格較貴,一般的單片機(jī)應(yīng)用系統(tǒng)較少采用。非編碼鍵盤只簡(jiǎn)單地提供行和列的矩陣,其它工作均由軟件完成。由于其經(jīng)濟(jì)實(shí)用,較多地應(yīng)用于單片機(jī)系統(tǒng)中。下面將重點(diǎn)介紹非編碼鍵盤接口。
2.鍵輸入原理
在單片機(jī)應(yīng)用系統(tǒng)中,除了復(fù)位按鍵有專門的復(fù)位電路及專一的復(fù)位功能外,其它按鍵都是以開關(guān)狀態(tài)來設(shè)置控制功能或輸入數(shù)據(jù)的。當(dāng)所設(shè)置的功能鍵或數(shù)字鍵按下時(shí),計(jì)算機(jī)應(yīng)用系統(tǒng)應(yīng)完成該按鍵所設(shè)定的功能,鍵信息輸入是與軟件結(jié)構(gòu)密切相關(guān)的過程。
對(duì)于一組鍵或一個(gè)鍵盤,總有一個(gè)接口電路與 CPU 相連。 CPU 可以采用查詢或中斷方式了解有無將鍵輸入,并檢查是哪一個(gè)鍵按下,將該鍵號(hào)送入累加器 ACC ,然后通過跳轉(zhuǎn)指令轉(zhuǎn)入執(zhí)行該鍵的功能程序,執(zhí)行完后再返回主程序。
3.按鍵結(jié)構(gòu)與特點(diǎn)
微機(jī)鍵盤通常使用機(jī)械觸點(diǎn)式按鍵開關(guān),其主要功能是把機(jī)械上的通斷轉(zhuǎn)換成為電氣上的邏輯關(guān)系。也就是說,它能提供標(biāo)準(zhǔn)的 TTL 邏輯電平,以便與通用數(shù)字系統(tǒng)的邏輯電平相容。
機(jī)械式按鍵再按下或釋放時(shí),由于機(jī)械彈性作用的影響,通常伴隨有一定時(shí)間的觸點(diǎn)機(jī)械抖動(dòng),然后其觸點(diǎn)才穩(wěn)定下來。其抖動(dòng)過程如圖 7.2 所示,抖動(dòng)時(shí)間的長(zhǎng)短與開關(guān)的機(jī)械特性有關(guān),一般為 5 ~ 10 ms 。
按鍵觸點(diǎn)的機(jī)械抖動(dòng)
在觸點(diǎn)抖動(dòng)期間檢測(cè)按鍵的通與斷狀態(tài),可能導(dǎo)致判斷出錯(cuò),即按鍵一次按下或釋放被錯(cuò)誤地認(rèn)為是多次操作,這種情況是不允許出現(xiàn)的。為了克服按鍵觸點(diǎn)機(jī)械抖動(dòng)所致的檢測(cè)誤判,必須采取去抖動(dòng)措施。這一點(diǎn)可從硬件、軟件兩方面予以考慮。在鍵數(shù)較少時(shí),可采用硬件去抖,而當(dāng)鍵數(shù)較多時(shí),采用軟件去抖。
在硬件上可采用在鍵輸出端加 R-S 觸發(fā)器 ( 雙穩(wěn)態(tài)觸發(fā)器 ) 或單穩(wěn)態(tài)觸發(fā)器構(gòu)成去抖動(dòng)電路。圖 7.3 是一種由 R-S 觸發(fā)器構(gòu)成的去抖動(dòng)電路,當(dāng)觸發(fā)器一旦翻轉(zhuǎn),觸點(diǎn)抖動(dòng)不會(huì)對(duì)其產(chǎn)生任何影響。
軟件上采取的措施是:在檢測(cè)到有按鍵按下時(shí),執(zhí)行一個(gè) 10 ms 左右(具體時(shí)間應(yīng)視所使用的按鍵進(jìn)行調(diào)整)的延時(shí)程序后,再確認(rèn)該鍵電平是否仍保持閉合狀態(tài)電平,若仍保持閉合狀態(tài)電平,則確認(rèn)該鍵處于閉合狀態(tài)。同理,在檢測(cè)到該鍵釋放后,也應(yīng)采用相同的步驟進(jìn)行確認(rèn),從而可消除抖動(dòng)的影響。
4.按鍵編碼
一組按鍵或鍵盤都要通過 I/O 口線查詢按鍵的開關(guān)狀態(tài)。根據(jù)鍵盤結(jié)構(gòu)的不同,采用不同的編碼。無論有無編碼,以及采用什么編碼,最后都要轉(zhuǎn)換成為與累加器中數(shù)值相對(duì)應(yīng)的鍵值,以實(shí)現(xiàn)按鍵功能程序的跳轉(zhuǎn)。
5.編制鍵盤程序
一個(gè)完善的鍵盤控制程序應(yīng)具備以下功能:
(1) 檢測(cè)有無按鍵按下,并采取硬件或軟件措施,消除鍵盤按鍵機(jī)械觸點(diǎn)抖動(dòng)的影響。
(2) 有可靠的邏輯處理辦法。每次只處理一個(gè)按鍵,其間對(duì)任何按鍵的操作對(duì)系統(tǒng)不產(chǎn)生影響,且無論一次按鍵時(shí)間有多長(zhǎng),系統(tǒng)僅執(zhí)行一次按鍵功能程序。
(3) 準(zhǔn)確輸出按鍵值(或鍵號(hào)),以滿足跳轉(zhuǎn)指令要求。
編輯:admin 最后修改時(shí)間:2018-05-08