• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學習啦 > 學習電腦 > 電腦硬件知識 > 外接設備 > 外設鍵盤的工作原理

    外設鍵盤的工作原理

    時間: 文輝886 分享

    外設鍵盤的工作原理

      有人知道外設鍵盤的工作原理嗎?沒有的話就跟小編來看看咯!以下就是學習啦小編做的整理,希望大家能喜!

      外設鍵盤的簡介

      鍵盤是一組按鍵的組合,它是最常用的單片機輸入設備,操作人員可以通過鍵盤輸入數據或命令,實現簡單的人機對話。單片機使用的鍵盤是一種常開型的開關,通常鍵的兩個觸點處于斷開狀態,按下鍵時它們才閉合。鍵盤分編碼和非編碼鍵盤,鍵盤的識別可用軟件識別也可用專用芯片識別。

      MCS-51單片機擴展鍵盤接口的方法用很多,從硬件結構上,可通過單片機I/0接口擴展鍵盤,也可通過擴展I/O接口設計鍵盤,還有些用的是專用鍵盤芯片。

      鍵盤的工作原理

      鍵盤從結構上分為獨立式鍵盤與矩陣式鍵盤。一般按鍵較少時采用獨立式鍵盤,按鍵較多時采用矩陣式鍵盤。

      (1) 獨立式鍵盤。

      在由單片機組成的測控系統及智能化儀器中,用的最多的是獨立式鍵盤。這種鍵盤具有硬件與軟件相對簡單的特點,其缺點是按鍵數量較多時,要占用大量口線。圖1是一個利用MCS-51單片機的P1口設計的非編碼鍵盤。

      圖1 獨立式鍵盤

      當按鍵沒按下時,CPU對應的I/O接口由于內部有上拉電阻,其輸入為高電平;當某鍵被按下后,對應的I/O接口變為低電平。只要在程序中判斷I/O接口的狀態,即可知道哪個鍵處于閉合狀態。以下是非編碼鍵盤鍵處理子程序。

      JNB P1.0, KEY00 ;轉按鍵1處理程序

      JNB P1.1, KEY01 ;轉按鍵1處理程序

      JNB P1.2, KEY02 ;轉按鍵1處理程序

      JNB P1.3, KEY03 ;轉按鍵1處理程序

      JNB P1.4, KEY04 ;轉按鍵1處理程序

      JNB P1.5, KEY05 ;轉按鍵1處理程序

      JNB P1.6, KEY06 ;轉按鍵1處理程序

      JNB P1.7, KEY07 ;轉按鍵1處理程序

      RET ;無鍵按下,返回

      KEY00: …

      RET

      KEY01: …

      RET

      …

      (2) 矩陣式鍵盤。

      矩陣式鍵盤使用于按鍵數量較多的場合,它由行線與列線組成,按鍵位于行、列的交叉點上。一個3*3的行列結構可以構成一個有9個按鍵的鍵盤。同理,一個4*4的行列可以構成一個16按鍵的鍵盤。很明顯,在按鍵數量較多的場合,與獨立式鍵盤相比,矩陣式鍵盤要節省很多I/0接口。

      2.鍵盤按鍵識別方法

      (1)掃描法。

      下面以圖2的K2鍵按下為例,說明此鍵是如何識別出來的。

      圖2 8031與鍵盤連接

      掃描法有行掃描和列掃描兩種,無論采用哪種,無論采用哪種,其效果是一樣的,只是在程序中的處理方法有所區別。下面以列掃描法為例來介紹掃描法識別按鍵的方法。首先在鍵處理程序中將P1.4-P1.7依次按位變低,P1.4-P1.7在某一時刻只有一個為低。在某一位為低時讀行線,根據行線的狀態即可判斷出哪一個按鍵被按下。如2號鍵按下,當列線P1.5為低時,讀回的行線狀態中P1.0被拉低,由此可知K2鍵被按下。一般在掃描法中分兩步處理按鍵,首先是判斷有無鍵按下,如行線有一個為低,則有鍵按下。當判斷有鍵按下時,使列線依次變低,讀行線,進而判斷出具體哪個鍵被按下。

      (2)線反轉法。

      掃描法是逐行或逐列掃描查詢,當被按下的鍵處于最后一列時,要經過多次掃描才能最后獲得此按鍵所處的行列值。而線反轉法則顯的簡練,無論被按的鍵處于哪列,均可經過兩步即能獲得此按鍵所在的行列值,仍以圖4.38為例來介紹線反轉法。

      首先將行線P1.0-P1.3作為輸入線,列線P1.4-P1.7作為輸出線,并且輸出線輸出全為低電平,讀行線狀態,則行線中電平為低的是按鍵所在的行。然后將列線作為輸入線,行線作為輸出線,并將輸出線輸出為低電平,讀列線狀態,則列線是電平為低的是按鍵所在的列。綜合上述兩步結果,確定按鍵所在的行和列,從而識別出所按下的鍵。

      假設10號鍵被按下,在第一步P1.3-P1.0全為低電平時,讀P1.4-P1.7的值,則P1.5為低電平;在第二步P1.4-P1.7輸出全為低電平時,讀P1.3-P1.0時,P1.2為低電平。由此可判斷第3行第2列有鍵被按下,此鍵就是K10鍵。

      3. 鍵盤的接口電路

      設計MCS-51單片機鍵盤時可根據單片機系統的實際情況來靈活處理。在使用內部有程序存儲器的單片機時,如單片機的I/O接口夠用,可直接利用單片機的I/O接口連接鍵盤。如果I/O接口不夠用,可利用擴展I/O接口連接鍵盤,有時也可使用專用的鍵盤接口芯片。

      (1) 利用單片機的I/O接口連接鍵盤。

      利用MCS-51單片機的I/O接口連接鍵盤時分兩種情況,一是當P0、P1、P2、P3均為普通輸入/輸出時,可使用任意I/0接口連接鍵盤;二是當單片機系統擴展程序存儲器、數據存儲器、I/O時,由于P0、P2作為地址數據總線的使用,所以擴展鍵盤時只能使用P1口、P3口。如圖2所示為利用MCS-51單片機的P1口設計的4*4矩陣鍵盤。

      注意如果用P0口設計鍵盤,要給P0口各口線提供上拉電阻,其大小一般為2-10kn。

      (2) 利用擴展I/O接口設計鍵盤。

      MCS-51單片機在總線擴展凡是時由于P0口、P2口分別作為數據總線及地址總線,而P1口、P3口又有其他用途時,擴展鍵盤可利用擴展的I/O接口。利用8255的PC口設計的4*4矩陣鍵盤如圖3所示,利用8255的PC口設計的編碼鍵盤,PC0-PC3為行輸入,PC4-PC7為列輸出。

      圖3 8255與鍵盤連接圖

      (3) 按鍵去抖。

      由于通常的按鍵所用的開關是機械開關,當開關閉合、斷開時并不是馬上穩定地接通和斷開,而是在閉合與斷開瞬間均伴隨有一連串的抖動。

      為了確保CPU對鍵的一次閉合僅做一次處理,必須要在程序或硬件上進行防抖處理。為節省硬件,通常在單片機系統中,一般不采用硬件方法消除鍵的抖動,而是用軟件消抖方法。即檢測鍵閉合后延時5-10ms,讓前延抖動消失后再一次檢測鍵的狀態,如果仍保持閉合狀態電平,則確認真正有鍵按下。當檢測到按鍵釋放后,也要給5-10ms的延時,待后延抖動消失后才轉入該鍵處理程序。以下是具有消抖功能的鍵程序,只有按鍵按下再放開后才做一次鍵處理。

      KEY_00:

      JB P1.0, KEY_01 ;無鍵按下,查下一個鍵

      LCALL DELAY ;延時10ms

      JNB P1.0, $ ;鍵一直按下,等待

      LCALL DELAY ;鍵松開,延時10ms

      JB P1.0, KEY_00 ;一次按鍵完成,轉鍵盤處理程序

      KEY_01: …

      RET

      (4) 鍵盤的編碼。

      對于獨立式按鍵鍵盤,由于按鍵數目較少,可根據實際情況靈活編碼。對于矩陣式鍵盤,按鍵的位置由行號和列號唯一確定,所以分別對行號與列號進行二進制編碼,然后將兩值合成一個字節,高4位是行號,低4位是列號。如10號鍵被按下時,列號讀回的值為1011,行號讀回的值為1101,此兩值合成為11011011=0DBH,據此值可轉到10號鍵處理程序。這種方式雖然簡單,但其離散性很大,在讀程序時必須要結合硬件電路。也可將讀回的鍵值按一定的方式運算后,算出對應的鍵值進行散轉,但這樣會增加程序的工作量,因而大多數單片機系統在鍵盤處理程序中只根據讀回的鍵值進行散轉。

      (5) 常用的專用鍵盤芯片。

      無論是利用CPU的I/O接口擴展鍵盤,還是利用擴展I/O芯片擴展鍵盤,由于均是用普通I/O接口擴展,如果要在單片機的程序中設計專用的鍵盤程序,特別是矩陣式鍵盤,其程序相對復雜一些。因而在較復雜一些的單片機系統中可選用專用的鍵盤芯片設計鍵盤。現常用的鍵盤擴展芯片有Intel8279、CH451、ICM7218、PCF8574等。

      (6) 單片機對鍵盤的控制方式。

      在單片機應用系統設計中,為了節省硬件,無論是采用獨立式鍵盤還是采用矩陣式鍵盤,單片機對鍵盤的控制有以下3種方式。

      i 程序控制掃描方式。

      這種方式只有單片機空閑時,才可調用鍵盤掃描子程序,查詢鍵盤的輸 入狀態是否改變。

      ii 定時掃描方式。

      單片機對鍵盤的掃描也可采用定時掃描方式,即單片機每隔一定的時間對鍵盤掃描一次。在這種方式中,通常采用單片機內部的定時器,產生10ms的定時中斷,CPU響應定時中斷請求后對鍵盤進行掃描,以查詢鍵盤是否有鍵按下。

      iii 中斷掃描方式。

      雖然采用程序查詢與定時對鍵盤的掃描方式時的程序編制簡單,但一個單片機系統在運行時的大多數時間里鍵盤基本是不工作的。為了進一步提高CPU的工作效率,可采用中斷方式。當鍵盤有鍵動作時產生中斷,CPU響應鍵盤中斷后,執行鍵盤中斷程序,判別鍵盤按下鍵的鍵號,并做相應處理。

    1674568 主站蜘蛛池模板: 国产欧美亚洲一区在线电影| 国语精品91自产拍在线观看二区| 亚洲欧美视频在线播放| 人人影院免费大片| 真实的国产乱xxxx在线| 好男人观看免费视频播放全集| 亚洲欧美一区二区成人片| 鲁大师成人一区二区三区| 婷婷色在线播放| 亚洲av无码专区亚洲av桃| 精品视频国产狼友视频| 国产精品午夜在线播放a| 中文字幕亚洲欧美日韩不卡| 精品无人区无码乱码毛片国产| 国产青草视频在线观看| 久久久久九九精品影院| 沉伦柳淑云漫画3d| 国产亚洲3p无码一区二区| 中文字幕国产欧美| 欧美成人看片黄a免费看| 啊灬啊灬啊灬快灬深高潮了| 一个人看的毛片| 性一交一乱一伦一色一情| 亚洲一区二区三区久久久久| 精品国产夜色在线| 国产日韩精品视频| eva樱花动漫网| 欧美日韩一区二区三区在线观看视频 | 成人国产网站v片免费观看| 免费一级e一片在线播放| 777奇米影视网| 成人欧美一区二区三区在线观看 | 蜜桃av噜噜一区二区三区| 在线免费观看h| 中文字幕无码免费久久| 欧美亚洲国产第一页草草| 农村老熟妇乱子伦视频| 麻豆视频免费播放| 小呦精品导航网站| 久久精品久久精品久久精品| 色噜噜狠狠狠狠色综合久不|