CH12 輸入設備的工作原理與接口技術_第1頁
CH12 輸入設備的工作原理與接口技術_第2頁
CH12 輸入設備的工作原理與接口技術_第3頁
CH12 輸入設備的工作原理與接口技術_第4頁
CH12 輸入設備的工作原理與接口技術_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第12章 輸入設備的工作原理與接口技術,本章重點,1.鍵盤的基本工作原理 2.鍵的識別:行掃描法和行反轉法識別原理 3.計算機的鍵盤子系統(tǒng) 4.擴展鍵盤掃描電路的工作原理 5.主機鍵盤接口的功能和構成 6.09H鍵盤中斷處理程序對各類鍵的處理 7.16H鍵盤中斷處理程序的功能,第12章 輸入設備的工作原理與接口技術,12.1 鍵盤的基本工作原理 12.2 鍵的識別 12.3 計算機的鍵盤子系統(tǒng) 12.4 鍵盤中斷處理程序,12.1 鍵盤的基本工作原理,最簡單的鍵盤結構,鍵盤的矩陣式結構,12.2 鍵的識別,識別閉合鍵的方法: 1. 行掃描法 2. 行反轉法,行線與列線分別接到兩個并行端口的示意

2、圖,1. 行掃描法的原理 (1)檢查是否有鍵按下; (2)若有,分行掃描,確定哪個鍵被按下。,程 序,判斷是否有按鍵被按下 WAIT:MOVAL, 00H MOVDX, OUTPORT OUTDX, AL;往所有行線上輸出低電平 MOVDX, INPORT INAL, DX;讀取列值 CMPAL, 0FFH;是否有列線為低電平 JZWAIT;否,則循環(huán)等待 DONE:CALLDELAY;是,則延遲10-15ms去抖動 ,判斷哪一個鍵被按下的流程,PROG:MOVBL, 00H;鍵號初值為0 MOVCL, 0FEH;送掃描初值 1111 1110 OUTDL, 8;計數值為行數 FROW:MOV

3、AL, CL OUTROWPORT, AL;掃描一行 ROLAL, 1;掃描值循環(huán)左移一位 MOVCL, AL;修改掃描值 INAL, COLPORT;讀取列值 CMPAL, 0FFH;判是否有列線為低電平 JNZFCOL;有,則轉FCOL ADDBL, 8;無,則使鍵號=鍵號+列數/行 DECDL JNZFROW;所有行都掃完否?否,則掃下一行 JMPDONE;是,則轉DONE FCOL:RCRAL, 1;列值循環(huán)右移一位 JNCPROCE;如此列為低電平,則轉PROCE INCBL;鍵號加1 JMPFCOL;如未找到鍵為低電平的列線,則繼續(xù) PROCE:;鍵命令處理程序 DONE: ;后續(xù)

4、處理程序,判 斷 哪 個 鍵 按 下 了,2. 行反轉法的原理 (1) 行線、列線分別接并行口,行線輸出,列線輸入; (2)列線輸出讀到的值,讀行線輸入的值; (3)根據讀得的行值和列值確定閉合的按鍵位置。,例. 標號為5的鍵閉合:(1)在行線上輸出0000B,讀列線的值為1011B(2)在列線上輸出1011B,讀行線的值為1101B(3)行線和列線的值合起來為1101 1011B,即DBH是唯一的,對應鍵5。 因此,可以將各個鍵的代碼放在一個表里,通過查表確定按下了什么鍵。,例. 88=64鍵的鍵盤連接及按鍵識別。,圖12.6 行反轉法的程序流程圖,ST:MOVAL, 82H;設控制字,A口

5、輸出,B口輸入 OUTPORT1, AL;假設8255的控制口地址為PORT1 WAIT1:MOVAL, 0 OUTPORTA, AL;將行線置為低電平 INAL, PORTB;讀列線值 CMPAL, 0FFH JZWAIT1;有鍵閉合否,否,則等待 PUSHAX PUSHAX;保存列值 CALLDELAY;去抖動 MOVAL, 90H OUTPORT1, AL;設控制字,A口輸入,B口輸出 POPAX OUTPORTB, AL;將讀得的列值在列線上輸出 INAL, PORTA;讀入行值 MOVAH, AL POPBX MOVAL, BL;將讀得的行值和列值存入AH和AL中,用 行 反 轉 法

6、 識 別 閉 合 鍵 程 序,MOVSI, TABLE;取鍵碼表首地址 MOVCX, 40H;CX為鍵數計數器,共64=40H個鍵 LOOP1:CMPAX, SI+0;行值列值和鍵碼表比較 JZKEYPRO;相等則轉鍵命令處理 INCSI INCSI;修改指針 DECCX;修改鍵計數器 JNZLOOP1;未比較完,則繼續(xù)比較 JMPST;在鍵碼表中未找到相同碼,則為重鍵 ;重判有鍵按下否 KEYPRO: TABLE:DW0FEFEH;鍵碼表開始K0鍵 DW0FEFDH;K1鍵 DW0FEFBH;K2鍵 DW0FEF7H;K3鍵 ,用 行 反 轉 法 識 別 閉 合 鍵 程 序,12.3 計算機

7、的鍵盤子系統(tǒng),鍵盤子系統(tǒng)由兩部分組成: 鍵盤本身 主機的鍵盤接口,圖12.7 鍵盤子系統(tǒng)的示意圖,1. 擴展鍵盤、鍵盤掃描碼和系統(tǒng)掃描碼,(1)擴展鍵盤:83鍵以上 標準鍵盤:83鍵,(2)鍵盤掃描碼:接通掃描碼、斷開掃描碼 標準鍵盤:其通碼與其鍵號一致,斷碼是通碼加80H,即通碼最高位為0,斷碼最高位為1。 擴展鍵盤:通碼和鍵號不同,斷碼為通碼前加F0H,為2字節(jié)。,(3)系統(tǒng)掃描碼 標準鍵盤:其系統(tǒng)掃描碼就是其接通碼 擴展鍵盤:同一個鍵的系統(tǒng)掃描碼相同,2. 擴展鍵盤的工作原理,圖12.8 16行8列的鍵盤掃描電路,3. 主機的鍵盤接口,(1)主機鍵盤的接口功能 接收鍵盤的串行掃描碼 將串

8、行掃描碼轉為并行掃描碼,再轉為系統(tǒng)掃描碼 向CPU發(fā)中斷請求 接收CPU的鍵盤自檢命令或復位命令,并傳輸到鍵盤,(2)主機的鍵盤接口,09H鍵盤中斷處理程序 16H鍵盤中斷處理程序,12.4 鍵盤中斷處理程序,1.鍵的分類 特殊鍵 第一類ASCII碼鍵 第二類ASCII碼鍵 不能用ASCII碼表示的組合鍵和功能鍵 特殊命令鍵,(1) 對特殊鍵設置標志位,09H中斷處理程序對特殊鍵設置如下: D0 右Shift鍵 按下為1,否則為0 D1 左Shift鍵 按下為1,否則為0 D2 Ctrl鍵 按下為1,否則為0 D3 Alt鍵 按下為1,否則為0 D4 Scroll Lock鍵 按奇數次為1,否則為0 D5 Num Lock鍵 按奇數次為1,否則為0 D6 Caps Lock鍵 按奇數次為1,否則為0 D7 Ins鍵 按奇數次為1,否則為0,(2)對第一類ASCII碼鍵,第一類鍵:ASCII碼0-127 處理方法: 將系統(tǒng)掃描碼轉換為ASCII碼 低位字節(jié)為ASCII碼,高位字節(jié)為系統(tǒng)掃描碼,(3)對第二類ASCII碼鍵,第二類鍵:對應ASCII碼128-255 處理方法: 直接將數字作為ASCII碼 低位字節(jié)為ASCII碼,高位字節(jié)為0,(4)對于

溫馨提示

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

評論

0/150

提交評論