鍵盤及其接口技術(shù)PPT課件_第1頁(yè)
鍵盤及其接口技術(shù)PPT課件_第2頁(yè)
鍵盤及其接口技術(shù)PPT課件_第3頁(yè)
鍵盤及其接口技術(shù)PPT課件_第4頁(yè)
鍵盤及其接口技術(shù)PPT課件_第5頁(yè)
已閱讀5頁(yè),還剩27頁(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、本章主要內(nèi)容 鍵盤設(shè)計(jì)需解決的問(wèn)題 獨(dú)立式鍵盤的結(jié)構(gòu)原理及其接口電路 矩陣式鍵盤的結(jié)構(gòu)原理及其行掃描法 編碼器及編碼鍵盤接口電路第1頁(yè)/共32頁(yè)5.1 鍵盤輸入電路 按鍵的特點(diǎn)和分類 按鍵的確認(rèn) 按鍵防抖動(dòng)技術(shù) 重鍵與連擊的處理第2頁(yè)/共32頁(yè)5.1.1 按鍵的特點(diǎn)和分類 鍵盤的特點(diǎn): 鍵盤實(shí)際上是一組按鍵開(kāi)關(guān)的組合,其中每一個(gè)按鍵盤實(shí)際上是一組按鍵開(kāi)關(guān)的組合,其中每一個(gè)按鍵就是一個(gè)開(kāi)關(guān)量輸入裝置。鍵就是一個(gè)開(kāi)關(guān)量輸入裝置。 鍵盤的分類: 編碼鍵盤:能自動(dòng)識(shí)別按下的鍵并產(chǎn)生相應(yīng)代碼,編碼鍵盤:能自動(dòng)識(shí)別按下的鍵并產(chǎn)生相應(yīng)代碼,以并行或串行的方式以并行或串行的方式發(fā)送給發(fā)送給CPU。它使用方便,

2、接口。它使用方便,接口簡(jiǎn)單,響應(yīng)速度快,但需要專用的硬件電路。簡(jiǎn)單,響應(yīng)速度快,但需要專用的硬件電路。 非編碼鍵盤:通過(guò)軟件來(lái)確認(rèn)按鍵并計(jì)算鍵值,非編碼鍵盤:通過(guò)軟件來(lái)確認(rèn)按鍵并計(jì)算鍵值,其響應(yīng)速度沒(méi)有編碼鍵盤快,但它不需要專用的硬件其響應(yīng)速度沒(méi)有編碼鍵盤快,但它不需要專用的硬件支持,而且可按不同方法定義各鍵,給系統(tǒng)帶來(lái)很大支持,而且可按不同方法定義各鍵,給系統(tǒng)帶來(lái)很大靈活性。靈活性。第3頁(yè)/共32頁(yè)5.1.2 按鍵的確認(rèn) 通常按鍵所用開(kāi)關(guān)為機(jī)械彈性開(kāi)關(guān),鍵的閉合與否,通常按鍵所用開(kāi)關(guān)為機(jī)械彈性開(kāi)關(guān),鍵的閉合與否,取決于機(jī)械彈性開(kāi)關(guān)的通、斷狀態(tài)。一個(gè)按鍵開(kāi)關(guān)通取決于機(jī)械彈性開(kāi)關(guān)的通、斷狀態(tài)。一

3、個(gè)按鍵開(kāi)關(guān)通過(guò)機(jī)械觸電的斷開(kāi)、閉合過(guò)程,其波形如下:過(guò)機(jī)械觸電的斷開(kāi)、閉合過(guò)程,其波形如下: 因此,鍵的閉合與否,反映在電壓上就是呈現(xiàn)高電平因此,鍵的閉合與否,反映在電壓上就是呈現(xiàn)高電平或低電平。如果高電平表示斷開(kāi)的話,則低電平就表或低電平。如果高電平表示斷開(kāi)的話,則低電平就表示閉合,所以通過(guò)對(duì)電平高低狀態(tài)的檢測(cè),便可確認(rèn)示閉合,所以通過(guò)對(duì)電平高低狀態(tài)的檢測(cè),便可確認(rèn)按鍵按下與否。按鍵按下與否。前沿抖動(dòng)后沿抖動(dòng)圖 6-2 按鍵的抖動(dòng)干擾閉合穩(wěn)定釋放穩(wěn)定鍵按下鍵釋放第4頁(yè)/共32頁(yè)5.1.3 按鍵防抖動(dòng)技術(shù) 按鍵的抖動(dòng)干擾: 由于機(jī)械觸點(diǎn)的彈性振動(dòng),按鍵在按下時(shí)不會(huì)馬上由于機(jī)械觸點(diǎn)的彈性振動(dòng),按

4、鍵在按下時(shí)不會(huì)馬上穩(wěn)定地接通,而在彈起時(shí)也不能一下子完全地?cái)嚅_(kāi),穩(wěn)定地接通,而在彈起時(shí)也不能一下子完全地?cái)嚅_(kāi),因而在按鍵閉合和斷開(kāi)的瞬間均會(huì)出現(xiàn)一連串的抖因而在按鍵閉合和斷開(kāi)的瞬間均會(huì)出現(xiàn)一連串的抖動(dòng),這稱為按鍵的抖動(dòng)干擾。動(dòng),這稱為按鍵的抖動(dòng)干擾。前沿抖動(dòng)后沿抖動(dòng)圖 6-2 按鍵的抖動(dòng)干擾閉合穩(wěn)定釋放穩(wěn)定鍵按下鍵釋放第5頁(yè)/共32頁(yè)5.1.3 按鍵防抖動(dòng)技術(shù) 硬件防抖技術(shù):一般采用一般采用RC濾波消抖電路或?yàn)V波消抖電路或RS雙雙穩(wěn)態(tài)消抖電路穩(wěn)態(tài)消抖電路2RV5+1R1V2V圖 5-3 濾波延時(shí)消抖電路SiVoV(Di)(Di)第6頁(yè)/共32頁(yè)5.1.3 按鍵防抖動(dòng)技術(shù) 軟件防抖技術(shù):指編制一

5、段時(shí)間大于指編制一段時(shí)間大于100ms的延的延時(shí)程序,在第一次檢測(cè)到有鍵按下時(shí),執(zhí)行這段時(shí)程序,在第一次檢測(cè)到有鍵按下時(shí),執(zhí)行這段延延時(shí)子程序使鍵的前沿抖動(dòng)消失后再檢測(cè)該鍵狀態(tài),時(shí)子程序使鍵的前沿抖動(dòng)消失后再檢測(cè)該鍵狀態(tài),如果該鍵仍保持閉合狀態(tài)電平,則確認(rèn)為該鍵已穩(wěn)如果該鍵仍保持閉合狀態(tài)電平,則確認(rèn)為該鍵已穩(wěn)定按下,否則無(wú)鍵按下,從而消除了抖動(dòng)的影響。定按下,否則無(wú)鍵按下,從而消除了抖動(dòng)的影響。同理,在檢測(cè)到按鍵釋放后,也同樣要延遲一段時(shí)同理,在檢測(cè)到按鍵釋放后,也同樣要延遲一段時(shí)間,以消除后沿抖動(dòng),然后轉(zhuǎn)入對(duì)該按鍵的處理間,以消除后沿抖動(dòng),然后轉(zhuǎn)入對(duì)該按鍵的處理第7頁(yè)/共32頁(yè)5.1.4 重

6、鍵與連擊的處理 重鍵: 重鍵指多個(gè)鍵同時(shí)閉合。系統(tǒng)確認(rèn)哪個(gè)鍵操重鍵指多個(gè)鍵同時(shí)閉合。系統(tǒng)確認(rèn)哪個(gè)鍵操作有效完全由設(shè)計(jì)者的意愿決定(軟件編程決作有效完全由設(shè)計(jì)者的意愿決定(軟件編程決定),如視按下時(shí)間最長(zhǎng)者有效,或最先按下定),如視按下時(shí)間最長(zhǎng)者有效,或最先按下有效,或最后釋放有效等有效,或最后釋放有效等 重鍵的利用:定義一兩個(gè)引導(dǎo)鍵,這些鍵按重鍵的利用:定義一兩個(gè)引導(dǎo)鍵,這些鍵按下時(shí)執(zhí)行空操作下時(shí)執(zhí)行空操作第8頁(yè)/共32頁(yè)5.1.4 重鍵與連擊的處理 連擊: 連擊指一次按鍵產(chǎn)生多次擊鍵的效果。一般連擊指一次按鍵產(chǎn)生多次擊鍵的效果。一般在鍵盤編程時(shí),將鍵的釋放作為按鍵的結(jié)束,在鍵盤編程時(shí),將鍵的

7、釋放作為按鍵的結(jié)束,即等鍵釋放電平后再轉(zhuǎn)去執(zhí)行相應(yīng)功能程序,即等鍵釋放電平后再轉(zhuǎn)去執(zhí)行相應(yīng)功能程序,以防止一次擊鍵多次執(zhí)行的錯(cuò)誤發(fā)生以防止一次擊鍵多次執(zhí)行的錯(cuò)誤發(fā)生 連擊的利用:利用微機(jī)的定時(shí)器,可以對(duì)按連擊的利用:利用微機(jī)的定時(shí)器,可以對(duì)按鍵從按下到釋放期間進(jìn)行計(jì)時(shí),以確定此次按鍵從按下到釋放期間進(jìn)行計(jì)時(shí),以確定此次按鍵產(chǎn)生多少次擊鍵的效果鍵產(chǎn)生多少次擊鍵的效果第9頁(yè)/共32頁(yè)5.2 非編碼獨(dú)立式鍵盤 獨(dú)立式鍵盤結(jié)構(gòu)原理 查詢法接口電路 中斷法接口電路 第10頁(yè)/共32頁(yè)5.2.1 獨(dú)立式鍵盤結(jié)構(gòu)原理 結(jié)構(gòu):獨(dú)立式鍵盤指直接用輸入端口線構(gòu)成的單個(gè)獨(dú)立式鍵盤指直接用輸入端口線構(gòu)成的單個(gè)按鍵電路

8、。由于每個(gè)按鍵單獨(dú)占用一根輸入端口線,按鍵電路。由于每個(gè)按鍵單獨(dú)占用一根輸入端口線,各鍵的狀態(tài)不會(huì)互相影響,因此,通過(guò)檢測(cè)輸入線各鍵的狀態(tài)不會(huì)互相影響,因此,通過(guò)檢測(cè)輸入線的電平狀態(tài)就很容易判斷哪個(gè)按鍵按下的電平狀態(tài)就很容易判斷哪個(gè)按鍵按下 與微機(jī)的接口:與微機(jī)的接口: 獨(dú)立式鍵盤一般通過(guò)并行獨(dú)立式鍵盤一般通過(guò)并行I/O接接口(口(8155或或8255)或三態(tài)門緩沖器()或三態(tài)門緩沖器(74LS244)與微機(jī)接口,通過(guò)與微機(jī)接口,通過(guò)CPU對(duì)相關(guān)對(duì)相關(guān)I/O口線狀態(tài)的檢測(cè),口線狀態(tài)的檢測(cè),即可知道鍵盤上是否有鍵按下和哪個(gè)鍵按下即可知道鍵盤上是否有鍵按下和哪個(gè)鍵按下第11頁(yè)/共32頁(yè)5.2.2

9、查詢法接口電路接口電路:圖 5-4 獨(dú)立式鍵盤結(jié)構(gòu)原理D0V5+D1D2S0S1S2 該接口電路實(shí)現(xiàn)的功該接口電路實(shí)現(xiàn)的功能為:查詢檢測(cè)是否有能為:查詢檢測(cè)是否有鍵按下,如有鍵閉合,鍵按下,如有鍵閉合,則消除抖動(dòng),再判斷鍵則消除抖動(dòng),再判斷鍵號(hào),然后轉(zhuǎn)入相應(yīng)的鍵號(hào),然后轉(zhuǎn)入相應(yīng)的鍵處理。處理。第12頁(yè)/共32頁(yè)5.2.2 查詢法接口電路 程序流程圖:開(kāi)始有鍵閉合否?NY延時(shí)100 ms消除鍵抖動(dòng)有鍵閉合否?NYNYNYNYD0=0?D1=0?D2=0?S0鍵功能程序S2鍵S1鍵序程能功序程能功圖 5-5 獨(dú)立式鍵盤查詢法程序流程圖 采用查詢法時(shí),必采用查詢法時(shí),必須保證須保證CPU每隔一定每隔

10、一定時(shí)間主動(dòng)地去掃描按時(shí)間主動(dòng)地去掃描按鍵一次,該掃描時(shí)間鍵一次,該掃描時(shí)間間隔應(yīng)小于兩次按鍵間隔應(yīng)小于兩次按鍵的時(shí)間間隔,否則會(huì)的時(shí)間間隔,否則會(huì)有按鍵不響應(yīng)的情形。有按鍵不響應(yīng)的情形。顯然這種方式占用顯然這種方式占用CPU時(shí)間比較多。時(shí)間比較多。 第13頁(yè)/共32頁(yè)5.2.3 中斷法接口電路接口電路:第14頁(yè)/共32頁(yè)5.2.3 中斷法接口電路 鍵盤中斷服務(wù)子程序: 與查詢程序類似,在保護(hù)現(xiàn)場(chǎng)后,首先調(diào)用延時(shí)與查詢程序類似,在保護(hù)現(xiàn)場(chǎng)后,首先調(diào)用延時(shí)子程序消抖,然后依次查鍵號(hào),并轉(zhuǎn)入鍵功能處理子程序消抖,然后依次查鍵號(hào),并轉(zhuǎn)入鍵功能處理程序,最后恢復(fù)現(xiàn)場(chǎng)、中斷返回。程序,最后恢復(fù)現(xiàn)場(chǎng)、中斷

11、返回。 采用中斷法時(shí),采用中斷法時(shí),CPU對(duì)按鍵而言是被動(dòng)方式,在對(duì)按鍵而言是被動(dòng)方式,在無(wú)鍵按下時(shí)不占用無(wú)鍵按下時(shí)不占用CPU時(shí)間,因而時(shí)間,因而CPU有更多的時(shí)有更多的時(shí)間執(zhí)行其他程序。間執(zhí)行其他程序。第15頁(yè)/共32頁(yè)5.3 非編碼矩陣式鍵盤 矩陣式鍵盤的結(jié)構(gòu)及工作原理 矩陣式鍵盤的程序設(shè)計(jì)第16頁(yè)/共32頁(yè)5.3.1 矩陣式鍵盤的結(jié)構(gòu)及工作原理 鍵盤結(jié)構(gòu): 矩陣式鍵盤又叫行列式鍵盤,是用矩陣式鍵盤又叫行列式鍵盤,是用I/O口線組成的口線組成的行、列矩陣結(jié)構(gòu),在每根行線與列線的交叉處,二線行、列矩陣結(jié)構(gòu),在每根行線與列線的交叉處,二線不直接相通而是通過(guò)一個(gè)按鍵跨接接通。采用這種矩不直接相

12、通而是通過(guò)一個(gè)按鍵跨接接通。采用這種矩陣結(jié)構(gòu)只需陣結(jié)構(gòu)只需M根行輸出線和根行輸出線和N根列輸入線,就可連接根列輸入線,就可連接MN個(gè)按鍵。通過(guò)鍵盤掃描程序的行輸出與列輸入個(gè)按鍵。通過(guò)鍵盤掃描程序的行輸出與列輸入就可確認(rèn)按鍵的狀態(tài),再通過(guò)鍵盤處理程序便可識(shí)別就可確認(rèn)按鍵的狀態(tài),再通過(guò)鍵盤處理程序便可識(shí)別鍵值。鍵值。第17頁(yè)/共32頁(yè)5.3.1 矩陣式鍵盤的結(jié)構(gòu)及工作原理 矩陣式鍵盤與CPU的接口:可采用并行端口可采用并行端口8255A、鎖存器、鎖存器或緩沖器一類或緩沖器一類。V5+4001162432485633091725414957086474LS244D1D2D3D4D5D6D70DD1D

13、2D3D4D5D6D70DCLKPORT174LS 13874LS273IOWIOR1G2GY7Y0YYYYYY124365XXXXXXXX12436507圖 5-7 矩陣式鍵盤接口電路第18頁(yè)/共32頁(yè)5.3.1 矩陣式鍵盤的結(jié)構(gòu)及工作原理 矩陣式鍵盤接口電路: 當(dāng)當(dāng)鍵盤中無(wú)任何鍵按下時(shí),所有的行線和列線被斷鍵盤中無(wú)任何鍵按下時(shí),所有的行線和列線被斷開(kāi)且相互獨(dú)立,輸入線開(kāi)且相互獨(dú)立,輸入線Y0Y7列都為高電平;當(dāng)有任列都為高電平;當(dāng)有任意一鍵按下時(shí),則該鍵所在的行線與列線接通,因此,意一鍵按下時(shí),則該鍵所在的行線與列線接通,因此,該列線的電平取決于該鍵所在的行該列線的電平取決于該鍵所在的行線

14、。線。 由于矩陣式鍵盤中行、列線為多鍵共用,各按鍵均由于矩陣式鍵盤中行、列線為多鍵共用,各按鍵均影響該鍵所在行和列的電平,因此各按鍵彼此將相互影響該鍵所在行和列的電平,因此各按鍵彼此將相互發(fā)生影響,所以必須將行、列信號(hào)配合起來(lái)并做適當(dāng)發(fā)生影響,所以必須將行、列信號(hào)配合起來(lái)并做適當(dāng)處理,才能正確確定閉合鍵的位置。處理,才能正確確定閉合鍵的位置。第19頁(yè)/共32頁(yè)5.3.1 矩陣式鍵盤的結(jié)構(gòu)及工作原理 按鍵的識(shí)別: 行掃描法: * 又稱逐行零掃描查詢法,即逐行輸出行掃描信號(hào)又稱逐行零掃描查詢法,即逐行輸出行掃描信號(hào)“0”,使各行依次為低電平,然后分別讀入列數(shù)據(jù),檢查此(低電平)使各行依次為低電平,

15、然后分別讀入列數(shù)據(jù),檢查此(低電平)行中是否有鍵按下。如果讀得某列線為低電平,則表示此(低行中是否有鍵按下。如果讀得某列線為低電平,則表示此(低電平)行線與此列線的交叉處有鍵按下,再對(duì)該鍵進(jìn)行譯碼計(jì)電平)行線與此列線的交叉處有鍵按下,再對(duì)該鍵進(jìn)行譯碼計(jì)算出鍵值,然后轉(zhuǎn)入該鍵的功能子程序入口地址;如果沒(méi)有任算出鍵值,然后轉(zhuǎn)入該鍵的功能子程序入口地址;如果沒(méi)有任何一根列線為低電平,則說(shuō)明此何一根列線為低電平,則說(shuō)明此(低電平低電平)行沒(méi)有鍵按下。接著行沒(méi)有鍵按下。接著進(jìn)行下一行的進(jìn)行下一行的“0”行掃描與列讀入,直到行掃描與列讀入,直到8行全部查完為止,行全部查完為止,若無(wú)鍵按下則返回。若無(wú)鍵按下

16、則返回。第20頁(yè)/共32頁(yè)5.3.1 矩陣式鍵盤的結(jié)構(gòu)及工作原理 按鍵的識(shí)別: 行掃描法: * 有時(shí)為了快速判斷鍵盤中是否有鍵按下,也可有時(shí)為了快速判斷鍵盤中是否有鍵按下,也可先將全部行線同時(shí)置為低電平,然后檢測(cè)列線的電先將全部行線同時(shí)置為低電平,然后檢測(cè)列線的電平狀態(tài),若所有列線均為高電平,則說(shuō)明鍵盤中無(wú)平狀態(tài),若所有列線均為高電平,則說(shuō)明鍵盤中無(wú)鍵按下,立即返回;若要有一列的電平為低,則表鍵按下,立即返回;若要有一列的電平為低,則表示鍵盤中有鍵被按下,然后再如上那樣進(jìn)行逐行掃示鍵盤中有鍵被按下,然后再如上那樣進(jìn)行逐行掃描。描。 第21頁(yè)/共32頁(yè)5.3.2 矩陣式鍵盤的程序設(shè)計(jì) 程序設(shè)計(jì):

17、 在設(shè)計(jì)鍵盤掃描程序時(shí),必須要保證鍵盤操作的在設(shè)計(jì)鍵盤掃描程序時(shí),必須要保證鍵盤操作的實(shí)時(shí)性,又不能占有實(shí)時(shí)性,又不能占有CPU太多的時(shí)間,還要充分考太多的時(shí)間,還要充分考慮到抖動(dòng)干擾的消除。一般可根據(jù)情況選用編程掃慮到抖動(dòng)干擾的消除。一般可根據(jù)情況選用編程掃描、定時(shí)掃描或中斷掃描中的一種方式。描、定時(shí)掃描或中斷掃描中的一種方式。 第22頁(yè)/共32頁(yè)5.3.2 矩陣式鍵盤的程序設(shè)計(jì) 程控掃描法程序設(shè)計(jì): 判斷是否有鍵按下:逐行輸出行掃描信號(hào)逐行輸出行掃描信號(hào)“0”,即是即是CPU依次使行線依次使行線X0X7為低電平,其輸出數(shù)據(jù)為低電平,其輸出數(shù)據(jù)代碼分別為代碼分別為01H(X0線)、線)、02

18、H(X1線)、線)、04H(X2線)、線)、08H(X3線)、線)、10H(X4線)、線)、20H(X5線)、線)、40H(X6線)、線)、80H(X7線)。然后讀線)。然后讀入列值,若不為入列值,若不為FFH則有鍵按下則有鍵按下 消除按鍵的抖動(dòng)干擾:調(diào)用延調(diào)用延時(shí)時(shí)100ms的子程序的子程序, 以便認(rèn)定確有鍵按下以便認(rèn)定確有鍵按下第23頁(yè)/共32頁(yè)5.3.2 矩陣式鍵盤的程序設(shè)計(jì) 程控掃描法程序設(shè)計(jì): 有鍵按下時(shí)求閉合鍵值: * 分別設(shè)一個(gè)行值寄存器分別設(shè)一個(gè)行值寄存器CL和列值寄存器和列值寄存器DL。接口電路中。接口電路中跨接在行列線上的跨接在行列線上的64個(gè)鍵,由于同一列相鄰行之間相隔數(shù)

19、個(gè)鍵,由于同一列相鄰行之間相隔數(shù)8,所以,所以每進(jìn)行一次每進(jìn)行一次“0”行掃描后,如果此行無(wú)鍵按下,則行寄存器行掃描后,如果此行無(wú)鍵按下,則行寄存器CL應(yīng)應(yīng)加加08再進(jìn)行下一行的再進(jìn)行下一行的“0”行掃描;行掃描; * 若有鍵按下則不加若有鍵按下則不加08而轉(zhuǎn)求列值,由于列值比鍵值小而轉(zhuǎn)求列值,由于列值比鍵值小1,如第一行第一列的鍵按下時(shí)列值如第一行第一列的鍵按下時(shí)列值Y0(即數(shù)據(jù)位即數(shù)據(jù)位D0)0比比01鍵值小鍵值小1,所以列值寄存器所以列值寄存器DL應(yīng)先加應(yīng)先加1,然后將讀入的列值循環(huán)右移,判斷進(jìn),然后將讀入的列值循環(huán)右移,判斷進(jìn)位位位位CF是否等零即有否鍵按下,若無(wú)鍵按下,再繼續(xù)加是否等

20、零即有否鍵按下,若無(wú)鍵按下,再繼續(xù)加1、右移、右移、判斷,重復(fù)上述過(guò)程直到有鍵按下。判斷,重復(fù)上述過(guò)程直到有鍵按下。 * 把行值和列值相加并進(jìn)行把行值和列值相加并進(jìn)行DAA修正,即可得到所求的十修正,即可得到所求的十進(jìn)制鍵值。進(jìn)制鍵值。第24頁(yè)/共32頁(yè)5.3.2 矩陣式鍵盤的程序設(shè)計(jì) 求閉合鍵值的例子: 設(shè)跨接在設(shè)跨接在X2行與行與Y1列的列的18鍵按下,其鍵值計(jì)算方鍵按下,其鍵值計(jì)算方法為:第一次法為:第一次“0”行掃描行掃描X0行,無(wú)鍵按下,行,無(wú)鍵按下,CL=00+08=08,接下來(lái)掃,接下來(lái)掃X1行,仍無(wú)鍵按下,加行,仍無(wú)鍵按下,加08并進(jìn)行并進(jìn)行DAA修正,修正,CL=08+08=

21、16,再掃,再掃X2行,行,此時(shí)讀入的列值不等于此時(shí)讀入的列值不等于FFH即表明有鍵按下,則即表明有鍵按下,則CL=16不變。然后轉(zhuǎn)求列值,列值寄存器先加不變。然后轉(zhuǎn)求列值,列值寄存器先加1再把再把讀入的列值循環(huán)移位,由于按下的鍵在讀入的列值循環(huán)移位,由于按下的鍵在Y1列,所以需列,所以需移位兩次才能移出移位兩次才能移出0值,因此值,因此DL=02,然后將行值寄,然后將行值寄存器與列值寄存器之值相加,并進(jìn)行存器與列值寄存器之值相加,并進(jìn)行DAA修正,得到修正,得到AL=CL+DL=16+02=18,即鍵值為,即鍵值為18。第25頁(yè)/共32頁(yè)矩陣式鍵盤掃描及鍵處理程序流程圖5 - 8圖有鍵按下否

22、?NY有鍵按下嗎?YN鍵值寄存器清0輸出所有行為低電平輸出所有行為低電平延時(shí)1 0 0 m s輸出某行為低電平此行有鍵按下?行鍵值加0 8求出下一行為低電平各行掃描完?返回YN列鍵值加1列值右移1 位進(jìn)位位為0 嗎?計(jì)算鍵值Y鍵值送緩沖單元轉(zhuǎn)功能鍵入口地址NYN第26頁(yè)/共32頁(yè)5.3.2 矩陣式鍵盤的程序設(shè)計(jì)程序清單:KEY:MOV AL,0 MOV CL,AL MOV DL,AL MOV AL,0FFH OUT PORT1,AL IN AL,PORT1 CMP AL,0FFH JZ DONE CALL DELAY MOV AL,0FFH OUT PORT1,AL IN AL,PORT1 C

23、MP AL,0FFH JZ DONE MOV AH,08 MOV BL,01H KEY1:MOV AL,BL OUT PORT1,AL IN AL,PORT1 CMP AL,0FFH JNZ KEY2 MOV AL,CL ADD AL,08 DAA MOV CL,AL RCL BL,1 DEC AH JNZ KEY1 DONE:IRET KEY2: INC DL RCR AL,1 JC KEY2 MOV AL,CL ADD AL,DL DAA MOV BUFF,AL JMP KEYADR END KEY第27頁(yè)/共32頁(yè)5.4 編碼鍵盤接口電路 具有優(yōu)先級(jí)的二進(jìn)制8位編碼器CD4532B:狀狀 態(tài)態(tài) 輸輸 入入編編 碼碼 輸輸 出出EiI7I6I5I4I3I2I1I0GSO2O1 O0 Eo00000010000000000001111000011010010110010100110001011011000011000110000011010110000001110011000000011110第28

溫馨提示

  • 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)論