你的位置:首頁(yè) > 互連技術(shù) > 正文

單片機(jī)中的獨(dú)立按鍵與矩陣鍵盤(pán)

發(fā)布時(shí)間:2020-05-18 責(zé)任編輯:lina

【導(dǎo)讀】按鍵按照結(jié)構(gòu)原理科分為兩類(lèi),一類(lèi)是觸點(diǎn)式開(kāi)關(guān)按鍵,如機(jī)械式開(kāi)關(guān)、導(dǎo)電橡膠式開(kāi)關(guān)燈;另一類(lèi)是無(wú)觸點(diǎn)式開(kāi)關(guān)按鍵,如電氣式按鍵,磁感應(yīng)按鍵等。前者造價(jià)低,后者壽命長(zhǎng)。目前,微機(jī)系統(tǒng)中最常見(jiàn)的是觸點(diǎn)式開(kāi)關(guān)按鍵。
 
1.按鍵分類(lèi)與輸入原理
 
按鍵按照結(jié)構(gòu)原理科分為兩類(lèi),一類(lèi)是觸點(diǎn)式開(kāi)關(guān)按鍵,如機(jī)械式開(kāi)關(guān)、導(dǎo)電橡膠式開(kāi)關(guān)燈;另一類(lèi)是無(wú)觸點(diǎn)式開(kāi)關(guān)按鍵,如電氣式按鍵,磁感應(yīng)按鍵等。前者造價(jià)低,后者壽命長(zhǎng)。目前,微機(jī)系統(tǒng)中最常見(jiàn)的是觸點(diǎn)式開(kāi)關(guān)按鍵。
 
在單片機(jī)應(yīng)用系統(tǒng)中,除了復(fù)位按鍵有專(zhuān)門(mén)的復(fù)位電路及專(zhuān)一的復(fù)位功能外,其他按鍵都是以開(kāi)關(guān)狀態(tài)來(lái)設(shè)置控制功能或輸入數(shù)據(jù)的。當(dāng)所設(shè)置的功能鍵或數(shù)字鍵按下時(shí),計(jì)算機(jī)應(yīng)用系統(tǒng)應(yīng)完成該按鍵所設(shè)定的功能,鍵信息輸入時(shí)與軟件結(jié)構(gòu)密切相關(guān)的過(guò)程。
 
對(duì)于一組鍵或一個(gè)鍵盤(pán),總有一個(gè)接口電路與CPU相連。CPU可以采用查詢(xún)或中斷方式了解有無(wú)將按鍵輸入,并檢查是哪一個(gè)按鍵按下,將該鍵號(hào)送人累加器,然后通過(guò)跳轉(zhuǎn)指令轉(zhuǎn)入執(zhí)行該鍵的功能程序,執(zhí)行完成后再返回主程序。
 
2.按鍵結(jié)構(gòu)與特點(diǎn)
微機(jī)鍵盤(pán)通常使用機(jī)械觸點(diǎn)式按鍵開(kāi)關(guān),其主要功能式把機(jī)械上的通斷轉(zhuǎn)換為電氣上的邏輯關(guān)系。也就是說(shuō),它能提供標(biāo)準(zhǔn)的TTL邏輯電平,以便于通用數(shù)字系統(tǒng)的邏輯電平相容。機(jī)械式按鍵再按下或釋放時(shí),由于機(jī)械彈性作用的影響,通常伴隨有一定的時(shí)間觸點(diǎn)機(jī)械抖動(dòng),然后其觸點(diǎn)才穩(wěn)定下來(lái)。其抖動(dòng)過(guò)程如下圖1所示,抖動(dòng)時(shí)間的長(zhǎng)短與開(kāi)關(guān)的機(jī)械特性有關(guān),一般為5-10ms。在觸點(diǎn)抖動(dòng)期間檢測(cè)按鍵的通與斷,可能導(dǎo)致判斷出錯(cuò),即按鍵一次按下或釋放錯(cuò)誤的被認(rèn)為是多次操作,這種情況是不允許出現(xiàn)的。為了克服你、按鍵觸點(diǎn)機(jī)械抖動(dòng)所致的檢測(cè)誤判,必須采取消抖措施。按鍵較少時(shí),可采用硬件消抖;按鍵較多式,采用軟件消抖。
 
單片機(jī)中的獨(dú)立按鍵與矩陣鍵盤(pán) 
圖1 按鍵觸點(diǎn)機(jī)械抖動(dòng)
 
(1)按鍵編碼
一組按鍵或鍵盤(pán)都要通過(guò)I/O口線(xiàn)查詢(xún)按鍵的開(kāi)關(guān)狀態(tài)。根據(jù)鍵盤(pán)結(jié)構(gòu)的不同,采用不同的編碼。無(wú)論有無(wú)編碼,以及采用什么編碼,最后都要轉(zhuǎn)換成為與累加器中數(shù)值相對(duì)應(yīng)的鍵值,以實(shí)現(xiàn)按鍵功能程序的跳轉(zhuǎn)。
 
(2)鍵盤(pán)程序
一個(gè)完整的鍵盤(pán)控制程序應(yīng)具備以下功能:
a.檢測(cè)有無(wú)按鍵按下,并采取硬件或軟件措施消抖。
b.有可靠的邏輯處理辦法。每次只處理一個(gè)按鍵,期間對(duì)任何按鍵的操作對(duì)系統(tǒng)不產(chǎn)生影響,且無(wú)論一次按鍵時(shí)間有多長(zhǎng),系統(tǒng)僅執(zhí)行一次按鍵功能程序。
c.準(zhǔn)確輸出按鍵值(或鍵號(hào)),以滿(mǎn)足跳轉(zhuǎn)指令要求。
 
3.獨(dú)立按鍵與矩陣鍵盤(pán)
 
(1)獨(dú)立按鍵
單片機(jī)控制系統(tǒng)中,如果只需要幾個(gè)功能鍵,此時(shí),可采用獨(dú)立式按鍵結(jié)構(gòu)。
獨(dú)立按鍵式直接用I/O口線(xiàn)構(gòu)成的單個(gè)按鍵電路,其特點(diǎn)式每個(gè)按鍵單獨(dú)占用一根I/O口線(xiàn),每個(gè)按鍵的工作不會(huì)影響其他I/O口線(xiàn)的狀態(tài)。獨(dú)立按鍵的典型應(yīng)用如圖所示。獨(dú)立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡(jiǎn)單,但每個(gè)按鍵必須占用一個(gè)I/O口線(xiàn),因此,在按鍵較多時(shí),I/O口線(xiàn)浪費(fèi)較大,不宜采用。獨(dú)立按鍵如圖2所示。
 
單片機(jī)中的獨(dú)立按鍵與矩陣鍵盤(pán)
圖2 獨(dú)立鍵盤(pán)
 
獨(dú)立按鍵的軟件常采用查詢(xún)式結(jié)構(gòu)。先逐位查詢(xún)沒(méi)跟I/O口線(xiàn)的輸入狀態(tài),如某一根I/O口線(xiàn)輸入為低電平,則可確認(rèn)該I/O口線(xiàn)所對(duì)應(yīng)的按鍵已按下,然后,再轉(zhuǎn)向該鍵的功能處理程序。
 
(2)矩陣鍵盤(pán)
單片機(jī)系統(tǒng)中,若使用按鍵較多時(shí)如電子密碼鎖、電話(huà)機(jī)鍵盤(pán)等一般都至少有12到16個(gè)按鍵,通常采用矩陣鍵盤(pán)。
 
矩陣鍵盤(pán)又稱(chēng)行列鍵盤(pán),它是用四條I/O線(xiàn)作為行線(xiàn),四條I/O線(xiàn)作為列線(xiàn)組成的鍵盤(pán)。在行線(xiàn)和列線(xiàn)的每個(gè)交叉點(diǎn)上設(shè)置一個(gè)按鍵。這樣鍵盤(pán)上按鍵的個(gè)數(shù)就為4*4個(gè)。這種行列式鍵盤(pán)結(jié)構(gòu)能有效地提高單片機(jī)系統(tǒng)中I/O口的利用率。
 
矩陣鍵盤(pán)的工作原理
最常見(jiàn)的鍵盤(pán)布局如圖3所示。一般由16個(gè)按鍵組成,在單片機(jī)中正好可以用一個(gè)P口實(shí)現(xiàn)16個(gè)按鍵功能,這也是在單片機(jī)系統(tǒng)中最常用的形式,4*4矩陣鍵盤(pán)的內(nèi)部電路如圖4所示。
 
單片機(jī)中的獨(dú)立按鍵與矩陣鍵盤(pán)
圖3 矩陣鍵盤(pán)布局圖
 
單片機(jī)中的獨(dú)立按鍵與矩陣鍵盤(pán)
圖4 矩陣鍵盤(pán)內(nèi)部電路圖
 
當(dāng)無(wú)按鍵閉合時(shí),P3.0~P3.3與P3.4~P3.7之間開(kāi)路。當(dāng)有鍵閉合時(shí),與閉合鍵相連的兩條I/O口線(xiàn)之間短路。判斷有無(wú)按鍵按下的方法是:第一步,置列線(xiàn)P3.4~P3.7為輸入狀態(tài),從行線(xiàn)P3.0~P3.3輸出低電平,讀入列線(xiàn)數(shù)據(jù),若某一列線(xiàn)為低電平,則該列線(xiàn)上有鍵閉合。第二步,行線(xiàn)輪流輸出低電平,從列線(xiàn)P3.4~P3.7讀入數(shù)據(jù),若有某一列為低電平,則對(duì)應(yīng)行線(xiàn)上有鍵按下。綜合一二兩步的結(jié)果,可確定按鍵編號(hào)。但是鍵閉合一次只能進(jìn)行一次鍵功能操作,因此須等到按鍵釋放后,再進(jìn)行鍵功能操作,否則按一次鍵,有可能會(huì)連續(xù)多次進(jìn)行同樣的鍵操作。
 
識(shí)別按鍵的方法很多其中,最常見(jiàn)的方法是掃描法
按鍵按下時(shí),與此鍵相連的行線(xiàn)與列線(xiàn)導(dǎo)通,行線(xiàn)在無(wú)按鍵按下時(shí)處在高電平。如果所有的列線(xiàn)都處在高電平,則按鍵按下與否不會(huì)引起行線(xiàn)電平的變化,因此必須使所有列線(xiàn)處在電平。這樣,當(dāng)有按鍵按下時(shí),改鍵所在的行電平才回由高變低。才能判斷相應(yīng)的行有鍵按下。
 
獨(dú)立按鍵數(shù)量少,可根據(jù)實(shí)際需要靈活編碼。矩陣鍵盤(pán),按鍵的位置由行號(hào)和列號(hào)唯一確定,因此可以分別對(duì)行號(hào)和列號(hào)進(jìn)行二進(jìn)制編碼,然后兩值合成一個(gè)字節(jié),高4位是行號(hào),低4位是列號(hào)。
 
4.鍵盤(pán)的工作方式
對(duì)鍵盤(pán)的響應(yīng)取決于鍵盤(pán)的工作方式,鍵盤(pán)的工作方式應(yīng)根據(jù)實(shí)際應(yīng)用系統(tǒng)中的CPU的工作狀況而定,其選取的原則是既要保證CPU能及時(shí)響應(yīng)按鍵操作,又不要過(guò)多占用CPU的工作時(shí)間。通常鍵盤(pán)的工作方式有三種,編程掃描、定時(shí)掃描和中斷掃描。
 
(1)編程掃描方式
編程掃描方式是利用CPU完成其它工作的空余時(shí)間,調(diào)用鍵盤(pán)掃描子程序來(lái)響應(yīng)鍵盤(pán)輸入的要求。在執(zhí)行鍵功能程序時(shí),CPU不再響應(yīng)鍵輸入要求,直到CPU重新掃描鍵盤(pán)為止。
 
(2)定時(shí)掃描方式
定時(shí)掃描方式就是每隔一段時(shí)間對(duì)鍵盤(pán)掃描一次,它利用單片機(jī)內(nèi)部的定時(shí)器產(chǎn)生一定時(shí)間(例如10ms)的定時(shí),當(dāng)定時(shí)時(shí)間到就產(chǎn)生定時(shí)器溢出中斷。CPU響應(yīng)中斷后對(duì)鍵盤(pán)進(jìn)行掃描,并在有按鍵按下時(shí)識(shí)別出該鍵,再執(zhí)行該鍵的功能程序。
 
(3)中斷掃描方式
上述兩種鍵盤(pán)掃描方式,無(wú)論是否按鍵,CPU都要定時(shí)掃描鍵盤(pán),而單片機(jī)應(yīng)用系統(tǒng)工作時(shí),并非經(jīng)常需要鍵盤(pán)輸入,因此,CPU經(jīng)常處于空掃描狀態(tài)。
 
為提高CPU工作效率,可采用中斷掃描工作方式。其工作過(guò)程如下:當(dāng)無(wú)按鍵按下時(shí),CPU處理自己的工作,當(dāng)有按鍵按下時(shí),產(chǎn)生中斷請(qǐng)求,CPU轉(zhuǎn)去執(zhí)行鍵盤(pán)掃描子程序,并識(shí)別鍵號(hào)。
 
 
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問(wèn)題,請(qǐng)聯(lián)系小編進(jìn)行處理。
 
 
 
 
推薦閱讀:
IC引腳未在應(yīng)用中使用如何處置?
玻璃切割難點(diǎn)何在?超快激光+光束整形完美解決!
如何實(shí)現(xiàn)高精度、快速建立的大電流源!
干貨 | 量子雷達(dá)的概要
碳膜電阻器和金屬膜電阻器的區(qū)別
要采購(gòu)鍵盤(pán)么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書(shū)下載更多>>
熱門(mén)搜索
?

關(guān)閉

?

關(guān)閉