第十章輸入輸出設備及接口技術(鍵盤)_第1頁
第十章輸入輸出設備及接口技術(鍵盤)_第2頁
第十章輸入輸出設備及接口技術(鍵盤)_第3頁
第十章輸入輸出設備及接口技術(鍵盤)_第4頁
第十章輸入輸出設備及接口技術(鍵盤)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第十章輸入/輸出設備及接口技術

10.2鍵盤接口技術

常用的按鍵,都存在兩種狀態(tài):斷開和閉合

當某一鍵被按下,則為閉合狀態(tài)

鍵釋放,則為斷開狀態(tài)

鍵盤電路的功能就是將鍵的閉合和斷開狀態(tài)用“0”和“1”來表示,然后通過數(shù)據(jù)線送到CPU內(nèi)進行鍵的識別一鍵盤工作原理

1.鍵盤的可靠性

按鍵的機械抖動:在實際按鍵操作中,由于按鍵動作是一個機械動作,鍵在閉合或斷開的過程會發(fā)生抖動

鍵抖動時間的長短與開關的機械特性有關,一般為5ms~10ms左右,然后達到穩(wěn)定狀態(tài)。

鍵盤接口:為了保證CPU對鍵的閉合作一次且僅作一次處理,必須去除抖動,使CPU在鍵的穩(wěn)定閉合或斷開狀態(tài)時讀取鍵值

抖動時間<10ms開關動作時間>100ms“1”“0”<10ms&I/O接口&+5v+5v消除抖動電路按鍵單片機消除抖動的方法

硬件去抖:

軟件:在鍵盤接口中,另一種普遍使用的是采用軟件延時來完成消抖的方法。

基本思想是:在檢測到按鍵按下或釋放時,記錄按鍵的狀態(tài),延時大約10ms,再次檢測按鍵的狀態(tài),若與前一次的狀態(tài)相同,說明按鍵的狀態(tài)已穩(wěn)定,可進行處理;否則,表示鍵的狀態(tài)不穩(wěn)定,可能是誤動作,不應被處理二、獨立式按鍵

1、接口設計P1.0P1.1P1.7+5v(1)接口與數(shù)據(jù)每個按鍵單獨占有一根I/O接口引線。輸入每根I/O接口引線的信號對應某個按鍵狀態(tài)。2、獨立式按鍵接口程序設計鍵盤處理程序任務1)鍵輸入檢查鍵盤是否有鍵被按下,消除按鍵抖動。確定被按鍵的鍵號。硬件電路消除抖動或軟件消除抖動。2)鍵譯碼確定鍵值3)鍵處理根據(jù)鍵值轉移到不同程序段。若鍵值屬于數(shù)字、字符鍵,則調(diào)用顯示數(shù)字和字符的子程序。若鍵值屬于功能鍵,則進行多分支轉移,執(zhí)行各個功能程序段。延時等待10ms仍有按鍵信號?Y有按鍵信號?NYN鍵盤處理

按鍵釋放?NY3、獨立式按鍵接口程序

KEY:SETBP1.0JBP1.0,KEY;有鍵按下P1.0=0KEY1:ACALLDELAY;延時,防止抖動SETBP1.0JBP1.0,KEY;鍵是否仍按下?KEY2:JNBP1.0,KEY2;消除了連擊功能ACALLPROGRAM;

RET三、矩陣式鍵盤1、結構由多條I/O接口引線組成矩陣式鍵盤由行線和列線組成,按鍵位于行、列線的交叉點上行:輸入列:輸出矩陣式鍵盤中,行、列線分別連接到按鍵開關的兩端當無鍵按下時,行線處于高電平狀態(tài);當有鍵按下時,行、列線將導通,此時,行線電平將由與此行線相連的列線電平?jīng)Q定。這是識別按鍵是否按下的關鍵。矩陣鍵盤中的行線、列線和多個鍵相連,各按鍵按下與否均影響該鍵所在行線的電平,各按鍵間將相互影響,因此,必須將行線、列線信號配合起來作適當處理,才能確定閉合鍵的位置。2.矩陣式鍵盤按鍵的識別

識別按鍵的方法很多,其中,最常見的方法是掃描法。(1)判斷有無鍵按下。方法為:輸出口全為0,讀輸入口狀態(tài),若全為1,則說明無鍵按下;若不全為1,則說明有鍵按下(2)消除按鍵抖動的影響。其方法為:在判斷有鍵按下后,用軟件延時的方法延時10ms后,再判斷鍵盤狀態(tài),如果仍為有鍵按下狀態(tài),則認為有一個按鍵按下,否則當作按鍵抖動來處理(3)列線逐列輸出“0”,某行有鍵按下,則對應行線輸入為“0”,若該行無鍵按下,對應行線輸入為“1”4.鍵盤的工作方式

對鍵盤的響應取決于鍵盤的工作方式,鍵盤的工作方式應根據(jù)實際應用系統(tǒng)中CPU的工作狀況而定,其選取的原則是既要保證CPU能及時響應按鍵操作,又不要過多占用CPU的工作時間。通常,鍵盤的工作方式有三種,即編程掃描、定時掃描和中斷掃描。1)編程掃描方式編程掃描方式是利用CPU完成其它工作的空余時間,調(diào)用鍵盤掃描子程序來響應鍵盤輸入的要求。在執(zhí)行鍵功能程序時,CPU不再響應鍵輸入要求,直到CPU重新掃描鍵盤為止。2)定時掃描方式定時掃描方式就是每隔一段時間對鍵盤掃描一次,它利用單片機內(nèi)部的定時器產(chǎn)生一定時間(例如10ms)的定時,當定時時間到就產(chǎn)生定時器溢出中斷。CPU響應中斷后對鍵盤進行掃描,并在有鍵按下時識別出該鍵,再執(zhí)行該鍵的功能程序。定時掃描方式的硬件電路與編程掃描方式相同按鍵處理程序:延時消抖鍵掃描求鍵號延時鍵譯碼求鍵值輸入數(shù)字跳轉各功能程序有按鍵輸入?確有按鍵?按鍵釋放?是數(shù)字鍵?3)中斷掃描方式

采用上述兩種鍵盤掃描方式時,無論是否按鍵,CPU都要定時掃描鍵盤,而單片機應用系統(tǒng)工作時,并非經(jīng)常需要鍵盤輸入,因此,CPU經(jīng)常處于空掃描狀態(tài)。中斷式鍵盤電路P1.0-P1.3輸出,為“0”P1.4-P1.7輸入無鍵按下時,與門各輸入端均為高電平,輸出端保持為高電平有鍵按下時,與門輸入有低,輸出端為低電平,向CPU申請中斷,若CPU開放外部中斷,則會響應中斷請求,轉去執(zhí)行鍵盤掃描子程序。

用行掃描法進行鍵掃描的程序其中KS1為判鍵閉合的子程序。有鍵閉合時(A)=0。DIR為數(shù)碼顯示器掃描顯示子程序,執(zhí)行一次的時間約6ms。程序執(zhí)行后,若鍵閉合,鍵值存入A中,鍵值的計算公式是:鍵值=行號×4+列號;若無鍵閉合,則A中存入標志FFH。鍵盤掃描程序:

KEY1:LCALLKS1;檢查有閉合鍵否?

JNZLK1;A非0,有鍵閉合則轉

LJMPLK8;無鍵閉合轉返回

LK1:LCALLDIR;有鍵閉合,則延時12ms

LCALLDIR;消抖

LCALLKS1;再次檢查有鍵閉合否?

JNZLK2;有鍵閉合則轉

LJMPLK8;無鍵閉合轉返回

LK2:MOVR3,#00H;行號初值送R3MOVR2,#0FEH;行掃描初值送R2

LK3:MOVDPTR,#7F01H;指向8155口A

MOVA,R2;行掃描值送A

MOVX@DPTR,A;掃描1行

INCDPTR

INCDPTR;指向8155口C

MOVXA,@DPTR;讀入列值

ANLA,#0FH;保留低4位

MOVR4,A;暫存列值

CJNEA,#0FH,LK4;列值非全“1”則轉

MOVA,R2;行掃描值送A

JNBACC.7,LK8;已掃到最后1行則轉RLA;未掃完,則移至下1行MOVR2,A;行值存入R2中INCR3;行號加1SJMPLK3;轉至掃描下1行LK4:MOVA,R3;行號送入AADDA,R3;行號×2MOVR5,A;暫存ADDA,R5;行號×4MOVR5,A;存入R5中MOVA,R4;列值送入ALK5:RRCA;右移1位JNCLK6;該位為0則轉INCR5;列號加1SJMPLK5;列號未判完繼續(xù)LK6:PUSHR5;保護鍵值LK7:LCALLDIR;掃描1遍顯示器LCALLKS1;發(fā)全掃描信號JNZLK7;鍵未釋放則等待LCALLDIR;鍵已釋放LCALLDIR;延時12ms,消抖POPA;鍵值存入A中KND:RET;返主LK8:MOVA,#FFH;無閉合鍵標志FFH存入A中RET;返主KS1:MOVDPTR,#7F01H;有無閉合鍵判斷子程序MOVA,#00H;取全掃描信號MOVX@DPTR,A;發(fā)全掃描信號INCDPTRINCDPTR;指向8155口CMOVXA,@DPTR;讀入列值ANLA,#0FH;保留低4位ORLA,#F0H;高4位取“1”CPLA;取反,無鍵按下則全0RET;返主

DIR數(shù)碼顯示器掃描顯示子程序參閱LED數(shù)碼顯示器鍵盤(顯示)接口及程序設計圖見P199圖10-78155的I/O口地址:7F00H-7F05HPA口:輸出,作鍵盤的列線(鍵掃描)又作6位顯示器的位掃描PB口:輸出,作顯示器段數(shù)據(jù)輸出PC口:輸入,作鍵盤的行線(鍵輸入)鍵輸入程序功能:1、判有無鍵按下2、去抖3、判鍵號4、其它(鍵釋放才執(zhí)行,多鍵等)鍵輸入程序清單KEY1:MOVA,#03HMOVDPTR,#7F00HMOVX@DPTR,AACALLKS1JNZLK1ACALLDIRAJMPKEY1LK1:ACALLDIRACALLDIRACALLKS1JNZLK2ACALLDIRAJMPKEY1LK2:MOVR2,#0FEHMOVR4,#0LK4:MOVDPTR,#7F01HMOVA,R2

MOVX@DPTR,AINCDPTRINCDPTRMOVXA,@DPTRJBACC.0,LONEMOVA,#0AJMPLKPLONE:JBACC.1,LTWOMOVA,#08HAJMPLKPLTWO:JBACC.2,LTHRMOVA,#10HAJMPLKPLTHR:JBACC.3,NEXTMOVA,#18HLKP:ADDA,R4PUSHACCLK3:ACALLDIRACALLKS1JNZLK3POPACCRETNEXT:INCR4MOVA,R2JNBACC.7,KNDRLAMOVR2,AAJMPLK4KND:AJMPKEY1

KS1:MOVDPTR#7F01HMOVA,#0MOVX@DPTR,AINCDPTRINCDPTRMOVXA,@DPTRCPLAANLA,#0FHRET注:A為”0”,則無鍵按下否則有鍵按下DIR:RET同P194程序,此略實驗九顯示:設顯示緩沖器為:7CH(左)、7DH、7EH、7FH(右)

MOVA,#10HMOV7CH,AMOV7DH,AMOV7EH,AMOV7FH,AACALLDISPKEY1:ACALLKSJNZLK1ACALLDISPSJMPKEY1LK1:ACALLDISPACALLDISPACALLKSJNZLK2ACALLDISPSJMPKEY1LK2:MOVR2,#0FEHMOVR4,#0LK3:MOVA,R2MOVP3,AMOVA,P3JBACC.4,LONEMOVA,#0AJMPLKPLONE:JBACC.5,LTWOMOVA,#4AJMPLKPLTWO:JBACC.6,LTHRMOVA,#8AJMPLKPLTHR:JBACC.7,NEXTMOVA,#0CHLKP:ADDA,R4PUSHACCLK4:ACALLDISPACALLKSJNZLK4POPACCACALLDSPLLJMPKEY1NEXT:INCR4MOVA,R2JNBACC.

溫馨提示

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

最新文檔

評論

0/150

提交評論