第2章鍵盤(pán)接口技術(shù)_第1頁(yè)
第2章鍵盤(pán)接口技術(shù)_第2頁(yè)
第2章鍵盤(pán)接口技術(shù)_第3頁(yè)
第2章鍵盤(pán)接口技術(shù)_第4頁(yè)
第2章鍵盤(pán)接口技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩50頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第2章 鍵盤(pán)接口技術(shù)按鍵按鍵 簡(jiǎn)單鍵盤(pán)接口簡(jiǎn)單鍵盤(pán)接口 矩陣式鍵盤(pán)接口矩陣式鍵盤(pán)接口 可編程鍵盤(pán)接口可編程鍵盤(pán)接口 按鍵的分類(lèi)按鍵的分類(lèi) 按鍵輸入原理按鍵輸入原理 按鍵開(kāi)關(guān)的抖動(dòng)問(wèn)題按鍵開(kāi)關(guān)的抖動(dòng)問(wèn)題 鍵盤(pán)由一組規(guī)則排列的按鍵組成,一個(gè)按鍵實(shí)際上是一個(gè)開(kāi)關(guān)元件,也就是說(shuō)鍵盤(pán)是一組規(guī)則排列的開(kāi)關(guān)。單片機(jī)使用的按鍵是一種常開(kāi)型的開(kāi)關(guān),平時(shí)按鍵的兩個(gè)觸點(diǎn)處于斷開(kāi)狀態(tài),按下鍵時(shí)它們才閉合。按按 鍵鍵按鍵的分類(lèi)按鍵的分類(lèi) 按鍵按照結(jié)構(gòu)原理可分為兩類(lèi)按鍵按照結(jié)構(gòu)原理可分為兩類(lèi):1.觸點(diǎn)式開(kāi)關(guān)按鍵,如機(jī)械式開(kāi)關(guān)、導(dǎo)電橡膠式開(kāi)關(guān)等;2.無(wú)觸點(diǎn)開(kāi)關(guān)按鍵,如電氣式按鍵,磁感應(yīng)按鍵等。.按鍵按照接口原理可分為按鍵按

2、照接口原理可分為:1.編碼鍵盤(pán)2.非編碼鍵盤(pán)兩類(lèi), 編碼鍵盤(pán)主要是用硬件來(lái)實(shí)現(xiàn)對(duì)鍵的識(shí)別,非編碼鍵盤(pán)主要是由軟件來(lái)實(shí)現(xiàn)鍵盤(pán)的定義與識(shí)別。 前者造價(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ī)系統(tǒng)應(yīng)完成該按鍵所設(shè)定的功能,按鍵信息輸入是與軟件結(jié)構(gòu)密切相關(guān)的過(guò)程。 對(duì)于一個(gè)鍵盤(pán)或一組按鍵,單片機(jī)系統(tǒng)中總有一個(gè)接口電路與CPU相連。CPU可以采用查詢或中斷方式了解有無(wú)按鍵輸入并檢查是哪一個(gè)鍵按下,將該鍵號(hào)

3、送入累加器ACC,然后通過(guò)跳轉(zhuǎn)指令轉(zhuǎn)入執(zhí)行該鍵的功能程序,執(zhí)行完后再返回主程序。按鍵開(kāi)關(guān)的抖動(dòng)問(wèn)題按鍵開(kāi)關(guān)的抖動(dòng)問(wèn)題 單片機(jī)系統(tǒng)中應(yīng)用的一般是由機(jī)械觸點(diǎn)構(gòu)成的按鍵。當(dāng)機(jī)械觸點(diǎn)斷開(kāi)、閉合時(shí),會(huì)有抖動(dòng),如下圖所示。在觸點(diǎn)抖動(dòng)期間檢測(cè)按鍵的通與斷狀態(tài),可能導(dǎo)致判斷出錯(cuò)。即按鍵一次按下或釋放被錯(cuò)誤地認(rèn)為是多次操作,這種情況是不允許出現(xiàn)的。 常用的去抖動(dòng)的方法有兩種:常用的去抖動(dòng)的方法有兩種: 1.硬件方法 2.軟件方法 硬件方法硬件方法 在硬件上可采用在鍵輸出端加R-S觸發(fā)器(雙穩(wěn)態(tài)觸發(fā)器)或單穩(wěn)態(tài)觸發(fā)器構(gòu)成去抖動(dòng)電路,如圖所示 。電路工作過(guò)程電路工作過(guò)程 電路工作過(guò)程電路工作過(guò)程 按鍵未按下時(shí),a

4、= 0,b = 1,輸出Q = 1,按鍵按下時(shí),因按鍵的機(jī)械彈性作用的影響,使按鍵產(chǎn)生抖動(dòng),當(dāng)開(kāi)關(guān)沒(méi)有穩(wěn)定到達(dá)b端時(shí),因與非門(mén)2輸出為0反饋到與非門(mén)1的輸入端,封鎖了與非門(mén)1,雙穩(wěn)態(tài)電路的狀態(tài)不會(huì)改變,輸出保持為1,輸出Q不會(huì)產(chǎn)生抖動(dòng)的波形。當(dāng)開(kāi)關(guān)穩(wěn)定到達(dá)b端時(shí),因a = 1,b = 0,使Q = 0,雙穩(wěn)態(tài)電路狀態(tài)發(fā)生翻轉(zhuǎn)。當(dāng)釋放按鍵時(shí),在開(kāi)關(guān)未穩(wěn)定到達(dá)a端時(shí),因Q = 0,封鎖了與非門(mén)2,雙穩(wěn)態(tài)電路的狀態(tài)不變,輸出Q保持不變,消除了后沿的抖動(dòng)波形。當(dāng)開(kāi)關(guān)穩(wěn)定到達(dá)a端時(shí),因a = 0,b = 1,使Q = 1,雙穩(wěn)態(tài)電路狀態(tài)發(fā)生翻轉(zhuǎn),輸出Q重新返回原狀態(tài)。由此可見(jiàn),鍵盤(pán)輸出經(jīng)雙穩(wěn)態(tài)電路之后,

5、輸出已變?yōu)橐?guī)范的矩形方波。軟件方法軟件方法 軟件方法其實(shí)很簡(jiǎn)單,就是在單片機(jī)獲得P1.0口為低電平的信息后,不是立即認(rèn)定S已被按下,而是延時(shí)10ms或更長(zhǎng)一些時(shí)間后再次檢測(cè)P1.0口,如果仍為低電平,說(shuō)明S的確按下了,這實(shí)際上是避開(kāi)了按鍵按下時(shí)的抖動(dòng)時(shí)間。而在檢測(cè)到按鍵釋放后(P1.0為高電平)再延時(shí)510ms,消除后沿的抖動(dòng),然后再對(duì)鍵值處理。不過(guò)一般情況下,通常不對(duì)按鍵釋放的后沿進(jìn)行處理,實(shí)踐證明,也能滿足一定的要求。當(dāng)然,在實(shí)際應(yīng)用中,對(duì)按鍵的要求也是千差萬(wàn)別的,要根據(jù)不同的需要來(lái)編制處理程序,但以上是消除按鍵抖動(dòng)的原則。簡(jiǎn)單鍵盤(pán)接口簡(jiǎn)單鍵盤(pán)接口 簡(jiǎn)單鍵盤(pán)的工作原理 簡(jiǎn)單鍵盤(pán)的接口電路與

6、編程 實(shí)踐與思考簡(jiǎn)單鍵盤(pán)的工作原理簡(jiǎn)單鍵盤(pán)的工作原理 如果系統(tǒng)只需幾個(gè)按鍵,可直接采用I/O線構(gòu)成單個(gè)按鍵電路,各個(gè)按鍵之間相互獨(dú)立,一根線上的按鍵狀態(tài)不會(huì)影響其他輸入線上的工作狀態(tài),又稱獨(dú)立式鍵盤(pán)接口電路。這種電路每個(gè)按鍵需要這種電路每個(gè)按鍵需要占用一根占用一根I/O線,在按線,在按鍵數(shù)量較多時(shí),輸入口鍵數(shù)量較多時(shí),輸入口浪費(fèi)大且電路結(jié)構(gòu)很煩浪費(fèi)大且電路結(jié)構(gòu)很煩瑣,因此這種鍵盤(pán)接口瑣,因此這種鍵盤(pán)接口電路只適用于按鍵較少電路只適用于按鍵較少或要求較高操作速度的或要求較高操作速度的場(chǎng)合。場(chǎng)合。簡(jiǎn)單鍵盤(pán)的接口電路與編程簡(jiǎn)單鍵盤(pán)的接口電路與編程 (1)程序?qū)崿F(xiàn)的功能 (2)程序采用的方法(3)程序

7、中用到的變量和常量的定義 (4)程序中調(diào)用的子程序(5)程序清單(6)程序分析與思考 下面以圖下面以圖 (a)為例進(jìn)行編程。為例進(jìn)行編程。 程序?qū)崿F(xiàn)的功能程序?qū)崿F(xiàn)的功能 檢測(cè)是否有鍵閉合,如有鍵閉合,則去除鍵抖動(dòng),判斷鍵號(hào)并轉(zhuǎn)入相應(yīng)的按鍵處理。程序采用的方法程序采用的方法 l P3.2:開(kāi)始,按此鍵則燈開(kāi)始流動(dòng)(由上而下)l P3.3:停止,按此鍵則停止流動(dòng),所有燈為暗l P3.4:上,按此鍵則燈由上向下流動(dòng)l P3.5:下,按此鍵則燈由下向上流動(dòng) 程序采用查詢的方法,P1口接8個(gè)發(fā)光二極管,4個(gè)按鍵分別接到P3.2 、P3.3、P3.4和P3.5,且定義如下。程序中用到的變量和常量的定義程序

8、中用到的變量和常量的定義 UpDown ;上下行標(biāo)志StartEnd ;啟動(dòng)及停止標(biāo)志LAMPCODE ;存放流動(dòng)的數(shù)據(jù)代碼程序中調(diào)用的子程序程序中調(diào)用的子程序 KEY ;鍵盤(pán)程序KEYPROC ;鍵盤(pán)處理程序LAMP ;燈顯示程序DELAY ;延時(shí)程序,鍵盤(pán)處理中調(diào)用 程序分析與思考程序分析與思考 這里介紹的鍵盤(pán)處理程序比較簡(jiǎn)單,實(shí)際上,鍵盤(pán)的處理是很復(fù)雜的,但這種復(fù)雜并不來(lái)自于單片機(jī)的本身,而是來(lái)自于操作者的習(xí)慣等問(wèn)題,因此,在編寫(xiě)鍵盤(pán)處理程序之前,最好先把它從邏輯上理清,然后用適當(dāng)?shù)乃惴ū硎境鰜?lái),最后再去寫(xiě)代碼,這樣,才能快速有效地寫(xiě)好代碼。 實(shí)踐與思考實(shí)踐與思考1. 設(shè)計(jì)一個(gè)簡(jiǎn)單設(shè)計(jì)一

9、個(gè)簡(jiǎn)單3個(gè)按鍵的鍵盤(pán)來(lái)控制一組發(fā)光二極管,使個(gè)按鍵的鍵盤(pán)來(lái)控制一組發(fā)光二極管,使這組發(fā)光二極管可以以這組發(fā)光二極管可以以6種不同的花色循環(huán)點(diǎn)亮。種不同的花色循環(huán)點(diǎn)亮。2. 改用單鍵實(shí)現(xiàn)題改用單鍵實(shí)現(xiàn)題1所示功能。所示功能。矩陣式鍵盤(pán)接口矩陣式鍵盤(pán)接口 矩陣式鍵盤(pán)的結(jié)構(gòu)與工作原理 矩陣式鍵盤(pán)按鍵的識(shí)別 鍵盤(pán)的編碼 鍵盤(pán)的工作方式 矩陣鍵盤(pán)的接口實(shí)例 實(shí)踐與思考矩陣式鍵盤(pán)的結(jié)構(gòu)與工作原理矩陣式鍵盤(pán)的結(jié)構(gòu)與工作原理 矩陣式鍵盤(pán)中,行、列線分別連接到按鍵開(kāi)關(guān)的兩端,行線通過(guò)上拉電阻接到+5V上。當(dāng)無(wú)鍵按下時(shí),行線處于高電平狀態(tài);當(dāng)有鍵按下時(shí),行、列線將導(dǎo)通,此時(shí),行線電平將由與此行線相連的列線電平?jīng)Q定

10、。這一點(diǎn)是識(shí)別矩陣按鍵是否被按下的關(guān)鍵。然而,矩陣鍵盤(pán)中的行線、列線和多個(gè)鍵相連,各按鍵按下與否均影響該鍵所在行線和列線的電平,各按鍵間將相互影響,因此,必須將行線、列線信號(hào)配合起來(lái)作適當(dāng)處理,才能確定閉合鍵的位置。矩陣式鍵盤(pán)按鍵的識(shí)別矩陣式鍵盤(pán)按鍵的識(shí)別 1. 掃描法2. 線反轉(zhuǎn)法掃描法掃描法 按鍵按下時(shí),與此鍵相連的行線與列線導(dǎo)通,行線在無(wú)鍵按下時(shí)處在高電平,按鍵按下時(shí),與此鍵相連的行線與列線導(dǎo)通,行線在無(wú)鍵按下時(shí)處在高電平,顯然,如果讓所有的列線也處在高電平,那么,按鍵按下與否不會(huì)引起行線電平的顯然,如果讓所有的列線也處在高電平,那么,按鍵按下與否不會(huì)引起行線電平的變化,因此,必須使所有

11、列線處在低電平,只有這樣,當(dāng)有鍵按下時(shí),該鍵所在的變化,因此,必須使所有列線處在低電平,只有這樣,當(dāng)有鍵按下時(shí),該鍵所在的行電平才會(huì)由高電平變?yōu)榈碗娖?。行電平才?huì)由高電平變?yōu)榈碗娖?。CPU根據(jù)行平電的變化,便能判定相應(yīng)的行有根據(jù)行平電的變化,便能判定相應(yīng)的行有鍵按下。鍵按下。8號(hào)鍵按下時(shí),第號(hào)鍵按下時(shí),第2行一定為低電平,然而,第行一定為低電平,然而,第2行為低電平時(shí),能否肯定行為低電平時(shí),能否肯定是是8號(hào)鍵按下呢?回答是否定的,因?yàn)樘?hào)鍵按下呢?回答是否定的,因?yàn)?、10、11號(hào)鍵按下同樣使第號(hào)鍵按下同樣使第2行為低電平。行為低電平。為進(jìn)一步確定具體鍵,不能使所有列線在同一時(shí)刻都處在低電平,可

12、在某一時(shí)刻只為進(jìn)一步確定具體鍵,不能使所有列線在同一時(shí)刻都處在低電平,可在某一時(shí)刻只讓一條列線處于低電平,其余列線均處于高電平,另一時(shí)刻,讓下一列處在低電平,讓一條列線處于低電平,其余列線均處于高電平,另一時(shí)刻,讓下一列處在低電平,依次循環(huán),這種依次輪流每次選通一列的工作方式稱為鍵盤(pán)掃描。依次循環(huán),這種依次輪流每次選通一列的工作方式稱為鍵盤(pán)掃描。 線反轉(zhuǎn)法線反轉(zhuǎn)法 第1步:將列線P1.4P1.7 作為輸入線,行線P1.3P1.0 作為輸出線,并將輸出線輸出全為低電平,讀列線狀態(tài),則列線中電平為低的是按鍵所在的列。 第2步:將行線作為輸入線,列線作為輸出線,并將輸出線輸出為低電平,讀行線狀態(tài),則

13、行線中電平為低的是按鍵所在的行。 綜合第1、2兩步結(jié)果,可確定按鍵所在的行和列,從而識(shí)別出所按下的鍵。鍵盤(pán)的編碼鍵盤(pán)的編碼 1.獨(dú)立式鍵盤(pán) 按鍵數(shù)量少,可根據(jù)實(shí)際需要靈活編碼。2.矩陣式鍵盤(pán) 按鍵的位置由行號(hào)和列號(hào)唯一確定,因此可分別對(duì)行號(hào)和列 號(hào)進(jìn)行二進(jìn)制編碼,然后將兩值合成一個(gè)字節(jié),高4位是行號(hào),低4位是列號(hào)。 問(wèn)題:?jiǎn)栴}: 不同行的鍵離散性較大,不利于散不同行的鍵離散性較大,不利于散轉(zhuǎn)指令對(duì)按鍵進(jìn)行處理。轉(zhuǎn)指令對(duì)按鍵進(jìn)行處理。 采用依次排列鍵號(hào)的方式對(duì)安排進(jìn)行編碼。采用依次排列鍵號(hào)的方式對(duì)安排進(jìn)行編碼。 無(wú)論以何種方式編碼,均應(yīng)以處理問(wèn)題方便為原則,而最基本的就是無(wú)論以何種方式編碼,均應(yīng)

14、以處理問(wèn)題方便為原則,而最基本的就是鍵所處的物理位置即行號(hào)和列號(hào),它是各種編碼之間相互轉(zhuǎn)換的基礎(chǔ),編鍵所處的物理位置即行號(hào)和列號(hào),它是各種編碼之間相互轉(zhuǎn)換的基礎(chǔ),編碼相互轉(zhuǎn)換可通過(guò)計(jì)算或查表的方法實(shí)現(xiàn)。碼相互轉(zhuǎn)換可通過(guò)計(jì)算或查表的方法實(shí)現(xiàn)。 總結(jié):總結(jié):鍵盤(pán)的工作方式鍵盤(pán)的工作方式 編程掃描方式 定時(shí)掃描方式 中斷掃描方式 編程掃描方式編程掃描方式 編程掃描方式是利用CPU完成其他工作的空余調(diào)用鍵盤(pán)掃描子程序來(lái)響應(yīng)鍵盤(pán)輸入的要求。在執(zhí)行鍵功能程序時(shí),CPU不再響應(yīng)鍵輸入要求,直到CPU重新掃描鍵盤(pán)為止。 鍵盤(pán)掃描程序一般應(yīng)包括以下內(nèi)容:鍵盤(pán)掃描程序一般應(yīng)包括以下內(nèi)容: (1)判別有無(wú)鍵按下。

15、(2)鍵盤(pán)掃描取得閉合鍵的行、列值。 (3)用計(jì)算法或查表法得到鍵值。 (4)判斷閉合鍵是否釋放,如沒(méi)釋放則繼續(xù)等待。 (5)將閉合鍵鍵號(hào)保存,同時(shí)轉(zhuǎn)去執(zhí)行該閉合鍵的功能。 定時(shí)掃描方式定時(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í)行該鍵的功能程序。定時(shí)掃描方式定時(shí)掃描方式 程序流程圖中斷掃描方式中斷掃描方式 當(dāng)無(wú)鍵按下時(shí),CPU處理自己的工作,當(dāng)有鍵按下時(shí),產(chǎn)生中斷請(qǐng)求,CPU轉(zhuǎn)去執(zhí)行鍵盤(pán)掃描子程序,并識(shí)別鍵號(hào)。中斷掃描方式可

16、以提高CPU工作效率 。 圖中的4輸入與門(mén)用于產(chǎn)生按鍵中斷,其輸入端與各列線相連,再通過(guò)上拉電阻接至+5V電源,輸出端接至8051的外部中斷輸入端。具體工作如下:當(dāng)鍵盤(pán)無(wú)鍵按下時(shí),與門(mén)各輸入端均為高電平,保持輸出端為高電平;當(dāng)有鍵按下時(shí),端為低電平,向CPU申請(qǐng)中斷,若CPU開(kāi)放外部中斷,則會(huì)響應(yīng)中斷請(qǐng)求,轉(zhuǎn)去執(zhí)行鍵盤(pán)掃描子程序。 矩陣鍵盤(pán)的接口實(shí)例矩陣鍵盤(pán)的接口實(shí)例 8051單片機(jī)的單片機(jī)的P1口作為鍵盤(pán)口作為鍵盤(pán)I/O口,鍵盤(pán)的列線接到口,鍵盤(pán)的列線接到P1口的低口的低4位,位,鍵盤(pán)的行線接到鍵盤(pán)的行線接到P1口的高口的高4位。列線位。列線P1.0P1.3分別接有分別接有4個(gè)上拉電阻到個(gè)上

17、拉電阻到正電源正電源+5V,并把列線,并把列線P1.0P1.3設(shè)設(shè)置為輸入線,行線置為輸入線,行線P1.4P.17設(shè)置為設(shè)置為輸出線。輸出線。4根行線和根行線和4根列線形成根列線形成16個(gè)相交點(diǎn)。個(gè)相交點(diǎn)。(1)程序功能。若有鍵被按下,應(yīng)識(shí)別出是哪一個(gè)鍵閉合。方法是對(duì)鍵盤(pán)的行線進(jìn)行掃描。(2)檢測(cè)當(dāng)前是否有鍵被按下。檢測(cè)的方法是P1.4P1.7輸出全“0”,讀取P1.0P1.3的狀態(tài),若P1.0P1.3為全“1”,則無(wú)鍵閉合,否則有鍵閉合。(3)去除鍵抖動(dòng)。當(dāng)檢測(cè)到有鍵按下后,延時(shí)一段時(shí)間再做下一步的檢測(cè)判斷。 (4)P1.4P1.7按下述4種組合依次輸出:P1.7 1 1 1 0P1.6 1

18、 1 0 1P1.5 1 0 1 1P1.4 0 1 1 1矩陣鍵盤(pán)的接口實(shí)例矩陣鍵盤(pán)的接口實(shí)例 在每組行輸出時(shí)讀取在每組行輸出時(shí)讀取P1.0P1.3,若全為,若全為“1”,則,則表示為表示為“0”這一行沒(méi)有鍵閉合,否則有鍵閉合。由此得這一行沒(méi)有鍵閉合,否則有鍵閉合。由此得到閉合鍵的行值和列值,然后可采用計(jì)算法或查表法將到閉合鍵的行值和列值,然后可采用計(jì)算法或查表法將閉合鍵的行值和列值轉(zhuǎn)換成所定義的鍵值。閉合鍵的行值和列值轉(zhuǎn)換成所定義的鍵值。矩陣鍵盤(pán)的接口實(shí)例矩陣鍵盤(pán)的接口實(shí)例 (5)為了保證鍵每閉合一次CPU僅做一次處理,必須去除鍵釋放時(shí)的抖動(dòng)。(6)掃描程序的流程圖(7)鍵盤(pán)掃描程序?qū)嵺`與

19、思考實(shí)踐與思考設(shè)計(jì)一個(gè)簡(jiǎn)易計(jì)算器,有鍵盤(pán)鎖定功能。具體要求如下:設(shè)計(jì)一個(gè)簡(jiǎn)易計(jì)算器,有鍵盤(pán)鎖定功能。具體要求如下:(1)鍵盤(pán)鎖定密碼為8888,用戶輸入“鎖定”“8888”后再按“鎖定”鍵解鎖。用戶連續(xù)按兩次“鎖定”鍵,可以鎖定鍵盤(pán)。(2)簡(jiǎn)易計(jì)算器共有16個(gè)按鍵,09十個(gè)數(shù)字鍵,加、減、等于、乘、除共5個(gè)功能鍵,還有一鎖定鍵。(3)設(shè)定一個(gè)指示鎖定狀態(tài)的指示位,該位為“0”表示解鎖狀態(tài),為“1”表示鎖定狀態(tài)。(4)編程實(shí)現(xiàn)鍵盤(pán)功能部分??删幊替I盤(pán)接口可編程鍵盤(pán)接口 Intel8279是一種可編程鍵盤(pán)是一種可編程鍵盤(pán)/顯示器接口芯片,它顯示器接口芯片,它含有鍵盤(pán)輸入和顯示器輸出兩種功能。鍵盤(pán)輸

20、入時(shí),它含有鍵盤(pán)輸入和顯示器輸出兩種功能。鍵盤(pán)輸入時(shí),它提供自動(dòng)掃描,能與按鍵或傳感器組成的矩陣相連,接提供自動(dòng)掃描,能與按鍵或傳感器組成的矩陣相連,接收輸入信息,它能自動(dòng)消除鍵盤(pán)抖動(dòng)并能對(duì)多鍵同時(shí)按收輸入信息,它能自動(dòng)消除鍵盤(pán)抖動(dòng)并能對(duì)多鍵同時(shí)按下提供保護(hù)。顯示輸出時(shí),它有一個(gè)下提供保護(hù)。顯示輸出時(shí),它有一個(gè)168位顯示位顯示RAM,其內(nèi)容通過(guò)自動(dòng)掃描,可由其內(nèi)容通過(guò)自動(dòng)掃描,可由8或或16 位位LED數(shù)碼管顯示。數(shù)碼管顯示。 8279的基本功能 8279的控制 8279與單片機(jī)、鍵盤(pán)/顯示器的接口 實(shí)踐與思考可編程鍵盤(pán)接口可編程鍵盤(pán)接口 8279的基本功能的基本功能 8279的內(nèi)部結(jié)構(gòu)和工

21、作原理 8279的引腳和功能 8279的工作方式 8279的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)8279的內(nèi)部結(jié)構(gòu)框圖 8279的工作原理的工作原理(1)I/O控制及數(shù)據(jù)緩沖器(2)控制與定時(shí)寄存器及定時(shí)控制(3)掃描計(jì)數(shù)器(4)回復(fù)緩沖器、鍵盤(pán)去抖及控制(5)FIFO/傳感器及其狀態(tài)寄存器(6)顯示RAM和顯示寄存器。 I/O控制及數(shù)據(jù)緩沖器控制及數(shù)據(jù)緩沖器 數(shù)據(jù)緩沖器是雙向緩沖器,連接內(nèi)外總線,用于傳送CPU和8279之間的命令或數(shù)據(jù),對(duì)應(yīng)的引腳為數(shù)據(jù)總線D0D7。 I/O控制線是CPU對(duì)8279進(jìn)行控制的引線,對(duì)應(yīng)的引腳為數(shù)據(jù)選擇線A0;片選線;讀、寫(xiě)信號(hào)線和??刂婆c定時(shí)寄存器及定時(shí)控制控制與定時(shí)寄存器及

22、定時(shí)控制 控制與定時(shí)寄存器用來(lái)寄存鍵盤(pán)及顯示工作方式控制字,同時(shí)還用來(lái)寄存其他操作方式控制字。這些寄存器接收并鎖存各種命令,再通過(guò)譯碼電路產(chǎn)生相應(yīng)的信號(hào),從而完成相應(yīng)的控制功能。與其對(duì)應(yīng)的引腳為時(shí)鐘輸入端CLK,復(fù)位端RESET。 定時(shí)控制電路由N個(gè)基本計(jì)數(shù)器組成,其中,第一個(gè)計(jì)數(shù)器是一個(gè)可編程的N級(jí)計(jì)數(shù)器,N= 231之間的數(shù),由軟件編程,將外部時(shí)鐘輸入端CLK分頻得到內(nèi)部所需的100kHz時(shí)鐘,為鍵盤(pán)提供適當(dāng)?shù)膾呙桀l率和顯示掃描時(shí)間。與其相關(guān)的引腳是顯示熄滅控制端。掃描計(jì)數(shù)器掃描計(jì)數(shù)器 鍵盤(pán)和顯示器共用,提供鍵盤(pán)和顯示器的掃描信號(hào)。掃描計(jì)數(shù)器有兩種工作方式:編碼方式和譯碼方式。按編碼方式工

23、作時(shí),計(jì)數(shù)器作二進(jìn)制計(jì)數(shù),4位計(jì)數(shù)狀態(tài)從掃描線SL0SL3輸出,經(jīng)外部譯碼器譯碼后,為鍵盤(pán)和顯示器提供掃描信號(hào)。按譯碼方式工作時(shí),掃描計(jì)數(shù)器的最低二位被譯碼后,從SL0SL3輸出,提供了4中選1的掃描譯碼。與其相關(guān)的引腳是掃描線SL0SL3。 回復(fù)緩沖器、鍵盤(pán)去抖及控制回復(fù)緩沖器、鍵盤(pán)去抖及控制 回復(fù)線作為行列式鍵盤(pán)的列輸入線,相應(yīng)的列輸入信號(hào)稱為回復(fù)信號(hào),由回復(fù)緩沖器緩回復(fù)線作為行列式鍵盤(pán)的列輸入線,相應(yīng)的列輸入信號(hào)稱為回復(fù)信號(hào),由回復(fù)緩沖器緩沖并鎖存。在逐行列掃描時(shí),回復(fù)線用來(lái)搜尋每一行列中閉合的鍵,當(dāng)某一鍵閉合時(shí),去沖并鎖存。在逐行列掃描時(shí),回復(fù)線用來(lái)搜尋每一行列中閉合的鍵,當(dāng)某一鍵閉合

24、時(shí),去抖電路被置位,延時(shí)等待抖電路被置位,延時(shí)等待10ms后,再檢查該鍵是否仍處在閉合狀態(tài),如不是閉合,則當(dāng)做后,再檢查該鍵是否仍處在閉合狀態(tài),如不是閉合,則當(dāng)做干擾信號(hào)不予理睬;如是閉合,則將該鍵的地址和附加的移位、控制狀態(tài)一起形成鍵盤(pán)數(shù)干擾信號(hào)不予理睬;如是閉合,則將該鍵的地址和附加的移位、控制狀態(tài)一起形成鍵盤(pán)數(shù)據(jù)被送入據(jù)被送入8279內(nèi)部的內(nèi)部的FIFO(先進(jìn)先出)存儲(chǔ)器。鍵盤(pán)數(shù)據(jù)格式如下:(先進(jìn)先出)存儲(chǔ)器。鍵盤(pán)數(shù)據(jù)格式如下:控控 制制移移 位位掃掃 描描回回 復(fù)復(fù) 控制、移位、掃描、回復(fù)控制和移位(控制、移位、掃描、回復(fù)控制和移位(D7、D6)的狀態(tài)由兩個(gè)獨(dú)立的附加開(kāi)關(guān))的狀態(tài)由兩個(gè)

25、獨(dú)立的附加開(kāi)關(guān)決定,而掃描(決定,而掃描(D5、D4、D3)和回復(fù)()和回復(fù)(D2、D1、D0)則是被按鍵置位的數(shù)據(jù)。)則是被按鍵置位的數(shù)據(jù)。D5、D4、D3來(lái)自掃描計(jì)數(shù)器,它們是根據(jù)回復(fù)信號(hào)而確定的行來(lái)自掃描計(jì)數(shù)器,它們是根據(jù)回復(fù)信號(hào)而確定的行/列編碼。列編碼。1.鍵盤(pán)工作方式鍵盤(pán)工作方式D7 D6 D5D4D3 D2D1D0 2.傳感器開(kāi)關(guān)狀態(tài)矩陣方式傳感器開(kāi)關(guān)狀態(tài)矩陣方式 回復(fù)緩沖器、鍵盤(pán)去抖及控制回復(fù)緩沖器、鍵盤(pán)去抖及控制 回復(fù)線的內(nèi)容直接被送往相應(yīng)的傳感器回復(fù)線的內(nèi)容直接被送往相應(yīng)的傳感器RAM(即(即FIFO)存儲(chǔ)器。在選通輸入方式工作時(shí),回復(fù)線的內(nèi)容在存儲(chǔ)器。在選通輸入方式工作時(shí)

26、,回復(fù)線的內(nèi)容在CNTL/STB線的脈沖上升沿被送入線的脈沖上升沿被送入FIFO存儲(chǔ)器。存儲(chǔ)器。 與其相關(guān)的引腳是回復(fù)線與其相關(guān)的引腳是回復(fù)線RL0RL7,控制,控制/選通線選通線CNTL/STB。FIFO/傳感器及其狀態(tài)寄存器傳感器及其狀態(tài)寄存器 FIFO/傳感器傳感器RAM是一個(gè)雙重功能的是一個(gè)雙重功能的88RAM。在鍵盤(pán)選通工。在鍵盤(pán)選通工作方式時(shí),它是作方式時(shí),它是FIFO存儲(chǔ)器,其輸入存儲(chǔ)器,其輸入/輸出遵循先入先出的原則,輸出遵循先入先出的原則,此時(shí),此時(shí),F(xiàn)IFO狀態(tài)寄存器用來(lái)存放狀態(tài)寄存器用來(lái)存放FIFO的工作狀態(tài)。例如:的工作狀態(tài)。例如:RAM是是滿還是空,其中存有多少數(shù)據(jù),

27、操作是否出錯(cuò)等。當(dāng)滿還是空,其中存有多少數(shù)據(jù),操作是否出錯(cuò)等。當(dāng)FIFO存儲(chǔ)器中存儲(chǔ)器中有數(shù)據(jù)時(shí),狀態(tài)邏輯將產(chǎn)生有數(shù)據(jù)時(shí),狀態(tài)邏輯將產(chǎn)生IRQ=1信號(hào),向信號(hào),向CPU申請(qǐng)中斷。申請(qǐng)中斷。 在傳感器矩陣方式工作時(shí),這個(gè)存儲(chǔ)器用做傳感器存儲(chǔ)器,它在傳感器矩陣方式工作時(shí),這個(gè)存儲(chǔ)器用做傳感器存儲(chǔ)器,它存放著傳感器矩陣中的每一個(gè)傳感器狀態(tài)。在此方式時(shí),若檢索出存放著傳感器矩陣中的每一個(gè)傳感器狀態(tài)。在此方式時(shí),若檢索出傳感器的變化,傳感器的變化,IRQ信號(hào)變?yōu)楦唠娖剑蛐盘?hào)變?yōu)楦唠娖?,向CPU申請(qǐng)中斷。申請(qǐng)中斷。與其相關(guān)的引腳是中斷請(qǐng)求線與其相關(guān)的引腳是中斷請(qǐng)求線IRQ。 顯示顯示RAM和顯示寄存器和

28、顯示寄存器 顯示顯示RAM用來(lái)存儲(chǔ)顯示數(shù)據(jù),容量為用來(lái)存儲(chǔ)顯示數(shù)據(jù),容量為168位。在顯示過(guò)程中,存儲(chǔ)位。在顯示過(guò)程中,存儲(chǔ)的顯示數(shù)據(jù)輪流從顯示寄存器輸出。顯示寄存器分位的顯示數(shù)據(jù)輪流從顯示寄存器輸出。顯示寄存器分位A、B兩組,兩組,OUTA0OUTA3和和OUTB0OUTB3,它們既可單獨(dú)送數(shù),也可組成一個(gè),它們既可單獨(dú)送數(shù),也可組成一個(gè)8位(位(A組為高組為高4位,位,B組為低組為低4位)的字。顯示寄存器的輸出與顯示掃描配位)的字。顯示寄存器的輸出與顯示掃描配合,不斷從顯示合,不斷從顯示RAM中讀出顯示數(shù)據(jù),同時(shí),輪流驅(qū)動(dòng)被選中的顯示器件,中讀出顯示數(shù)據(jù),同時(shí),輪流驅(qū)動(dòng)被選中的顯示器件,以

29、達(dá)到多路復(fù)用的目的,使顯示器件呈穩(wěn)定顯示狀態(tài)。與其相關(guān)的引腳是以達(dá)到多路復(fù)用的目的,使顯示器件呈穩(wěn)定顯示狀態(tài)。與其相關(guān)的引腳是數(shù)據(jù)顯示線數(shù)據(jù)顯示線OUTA0OUTA3和和OUTB0OUTB3。 顯示地址寄存器用來(lái)寄存由顯示地址寄存器用來(lái)寄存由CPU進(jìn)行讀進(jìn)行讀/寫(xiě)顯示寫(xiě)顯示RAM的地址,它可以的地址,它可以由命令設(shè)定,也可以設(shè)置成每次讀出或?qū)懭牒笞詣?dòng)遞增。由命令設(shè)定,也可以設(shè)置成每次讀出或?qū)懭牒笞詣?dòng)遞增。8279的引腳和功能的引腳和功能 8279的引腳和功能的引腳和功能 D0D7:數(shù)據(jù)總線,雙向三態(tài)總線。數(shù)據(jù)總線,雙向三態(tài)總線。CLK:系統(tǒng)時(shí)鐘輸入端。系統(tǒng)時(shí)鐘輸入端。RESET:系統(tǒng)復(fù)位輸入端

30、,高電平有效,復(fù)位狀態(tài)為:系統(tǒng)復(fù)位輸入端,高電平有效,復(fù)位狀態(tài)為:16個(gè)字符顯示;編碼掃描個(gè)字符顯示;編碼掃描鍵盤(pán)鍵盤(pán)雙鍵鎖定;程序時(shí)鐘編程為雙鍵鎖定;程序時(shí)鐘編程為31。 :片選輸入端,低電平有效。片選輸入端,低電平有效。A0:數(shù)據(jù)選擇輸入端,數(shù)據(jù)選擇輸入端,A0=1時(shí),時(shí),CPU寫(xiě)入數(shù)據(jù)為命令字,讀出狀態(tài)字為狀態(tài)字;寫(xiě)入數(shù)據(jù)為命令字,讀出狀態(tài)字為狀態(tài)字;A0=0時(shí),時(shí),CPU讀、寫(xiě)均為數(shù)據(jù)。讀、寫(xiě)均為數(shù)據(jù)。 、 :讀、寫(xiě)信號(hào)輸入端,低電平有效。:讀、寫(xiě)信號(hào)輸入端,低電平有效。IRQ:中斷請(qǐng)求輸出端,高電平有效。中斷請(qǐng)求輸出端,高電平有效。SL0SL3:掃描輸出端,用于掃描鍵盤(pán)和顯示器??删?/p>

31、程設(shè)定為編碼(掃描輸出端,用于掃描鍵盤(pán)和顯示器??删幊淘O(shè)定為編碼(4中選中選1)或譯碼輸出(或譯碼輸出(16選選1)。)。SCRDWD 8279的引腳和功能的引腳和功能 RL0RL7:回復(fù)線,它們是鍵盤(pán)或傳感器的列信號(hào)輸入端。:回復(fù)線,它們是鍵盤(pán)或傳感器的列信號(hào)輸入端。SHIFT:移位信號(hào)輸入端,高電平有效。它是移位信號(hào)輸入端,高電平有效。它是8279鍵盤(pán)數(shù)據(jù)的次高位(鍵盤(pán)數(shù)據(jù)的次高位(D6),),通常用做鍵盤(pán)上、下?lián)豕δ苕I。在傳感器和選通方式中,通常用做鍵盤(pán)上、下?lián)豕δ苕I。在傳感器和選通方式中,SHIFT無(wú)效。無(wú)效。CNTL/STB:控制控制/選通輸入端,高電平有效。在鍵盤(pán)工作方式時(shí),它是鍵

32、盤(pán)數(shù)選通輸入端,高電平有效。在鍵盤(pán)工作方式時(shí),它是鍵盤(pán)數(shù)據(jù)的最高位,通常用做控制鍵。在選通輸入方式時(shí),它的上升沿可把來(lái)自據(jù)的最高位,通常用做控制鍵。在選通輸入方式時(shí),它的上升沿可把來(lái)自RL0RL7的數(shù)據(jù)存入的數(shù)據(jù)存入FIFO/傳感器傳感器RAM中。在傳感器方式時(shí),無(wú)效。中。在傳感器方式時(shí),無(wú)效。OUTA0OUTA3:A組顯示信號(hào)輸出端。組顯示信號(hào)輸出端。OUTB0OUTB3:B組顯示信號(hào)輸出端。組顯示信號(hào)輸出端。 :顯示熄滅輸出端,低電平有效。它在數(shù)字切換顯示或使用熄滅命令時(shí)關(guān)顯示熄滅輸出端,低電平有效。它在數(shù)字切換顯示或使用熄滅命令時(shí)關(guān)顯示。顯示。BD8279的工作方式的工作方式 (1)鍵盤(pán)

33、的工作方式鍵盤(pán)的工作方式(2)顯示器工作方式)顯示器工作方式 通過(guò)對(duì)鍵盤(pán)通過(guò)對(duì)鍵盤(pán)/顯示方式命令字和寫(xiě)顯示顯示方式命令字和寫(xiě)顯示RAM命命令字的設(shè)置,顯示數(shù)據(jù)寫(xiě)入顯示緩沖器時(shí)可置為左端送入和右端送入兩種令字的設(shè)置,顯示數(shù)據(jù)寫(xiě)入顯示緩沖器時(shí)可置為左端送入和右端送入兩種方式。左端送入為依次填入方式,右端送入為移位方式。方式。左端送入為依次填入方式,右端送入為移位方式。(3)傳感器矩陣方式)傳感器矩陣方式 通過(guò)對(duì)讀通過(guò)對(duì)讀FIFO/傳感器傳感器RAM命令字的設(shè)置可將命令字的設(shè)置可將8279設(shè)置成傳感器矩陣工作方式,此時(shí),傳感器的開(kāi)關(guān)狀態(tài)直接送到傳感設(shè)置成傳感器矩陣工作方式,此時(shí),傳感器的開(kāi)關(guān)狀態(tài)直接

34、送到傳感器器RAM。CPU對(duì)傳感器陣列掃描時(shí),如果檢測(cè)到某個(gè)傳感器狀態(tài)發(fā)生變化對(duì)傳感器陣列掃描時(shí),如果檢測(cè)到某個(gè)傳感器狀態(tài)發(fā)生變化時(shí),則中斷申請(qǐng)信號(hào)時(shí),則中斷申請(qǐng)信號(hào)IRQ變?yōu)楦唠娖?。變?yōu)楦唠娖健?鍵盤(pán)的工作方式鍵盤(pán)的工作方式 通過(guò)對(duì)鍵盤(pán)通過(guò)對(duì)鍵盤(pán)/顯示方式命令字的設(shè)置,可置為雙鍵互鎖顯示方式命令字的設(shè)置,可置為雙鍵互鎖方式和方式和N鍵巡回方式。鍵巡回方式。u 雙鍵互鎖:雙鍵互鎖:雙鍵鎖定是為兩鍵同時(shí)按下提供的保護(hù)方法。若有兩雙鍵鎖定是為兩鍵同時(shí)按下提供的保護(hù)方法。若有兩鍵或多個(gè)鍵同時(shí)按下,則無(wú)論這些鍵是以什么次序按下的,它只識(shí)別鍵或多個(gè)鍵同時(shí)按下,則無(wú)論這些鍵是以什么次序按下的,它只識(shí)別最后

35、一個(gè)釋放的鍵,并把該鍵值送入最后一個(gè)釋放的鍵,并把該鍵值送入FIFO/傳感器傳感器RAM中。中。u N鍵巡回:鍵巡回:N鍵巡回是為鍵巡回是為N個(gè)鍵同時(shí)按下時(shí)提供的保護(hù)方法。若有個(gè)鍵同時(shí)按下時(shí)提供的保護(hù)方法。若有多個(gè)鍵同時(shí)按下時(shí),鍵盤(pán)掃描能以按鍵先后順序依次將鍵值送入多個(gè)鍵同時(shí)按下時(shí),鍵盤(pán)掃描能以按鍵先后順序依次將鍵值送入FIFO/傳感器傳感器RAM中。中。8279的控制的控制 8279的命令格式和命令字的命令格式和命令字 8279狀態(tài)格式與狀態(tài)字狀態(tài)格式與狀態(tài)字 8279的數(shù)據(jù)輸入的數(shù)據(jù)輸入/輸出輸出 8279的內(nèi)部譯碼與外部譯碼的內(nèi)部譯碼與外部譯碼 8279與單片機(jī)、鍵盤(pán)與單片機(jī)、鍵盤(pán)/顯示器的接口顯示器的接口 80

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論