跳至內容

鍵盤掃描碼

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

鍵盤掃描碼(英語:scancodescan code)是電腦鍵盤電腦傳送的一項數據,用於告知電腦哪些鍵被按下,這項數據對於絕大多數現代電腦鍵盤而言,遵循相同或幾乎相似的邏輯。

變種[編輯]

以行、列對映定位位置(也就是二維陣列形式)可以使鍵盤不必使用複雜控制晶片,因此在過去,使用軟件韌體翻譯掃描碼為文字字元比連接文字字元鍵盤更便宜。[1]這項成本差異已隨電腦晶片製造業發展而不再明顯。但目前,仍有許多種電腦在使用傳統的掃描碼以維護向下相容

部分鍵盤標準中,每個按鍵的按下與鬆開的掃描碼不相同。此外,許多鍵盤標準(例如IBM PC相容機)允許鍵盤本身傳送「typematic」表示鍵盤按鍵被持續按住,鍵盤本身在重複生成掃描碼。

掃描碼集[編輯]

PC相容機[編輯]

IBM PC相容機鍵盤上的掃描碼是由鍵盤傳送的1至3個位元組為一組。大多數字元鍵具有單位元組掃描碼,執行特殊功能的按鍵用2位元組或3位元組掃描碼,通常以下列位元組開頭(十六進制): E0E1E2。此外,有幾個按鍵傳送更長的掃描碼以有效方針一組按鍵,以便於操作某些軟件。

PS/2介面起的PC鍵盤支援最多三組掃描碼集。最常遇到的是「XT」掃描碼,它基於IBM PC XT及更早的電腦使用的83按鍵鍵盤。其大部分由單位元組組成,低7位標識按鍵,

PS/2相容鍵盤會被告知所要傳送的是掃描碼集合1、2或3。

PC相容(IBM PS/2)掃描碼
按鍵 集合1(IBM PC XT 集合2(IBM PC AT 集合3(IBM 3270 PC英語IBM 3270 PC
按下 鬆開 按下 鬆開 按下 鬆開
A(普通字元) 1E 9E 1C F0 1C 1C F0 1C
Return / Enter(主鍵盤) 1C 9C 5A F0 5A 5A F0 5A
Enter數字鍵盤 E0 1C E0 9C E0 5A E0 F0 5A 79 F0 79
Windows鍵 E0 5B E0 DB E0 1F E0 F0 1F 8B F0 8B
右Windows鍵 E0 5C E0 DC E0 27 E0 F0 27 8C F0 8C

USB[編輯]

USB鍵盤使用一組新的掃描碼集合,大部分在USB標準中指定。所有能辨識USB鍵盤的電腦都能辨識這組掃描碼。

參見[編輯]

參考資料[編輯]

  1. ^ 例如,傳統的12鍵數字鍵盤掃描為3行乘4列,共需要7個連接點。而單獨連接每個鍵需要12個連接點。
  2. ^ 存档副本. [2017-09-25]. (原始內容存檔於2019-07-10). 
  3. ^ Keyboard scancodes頁面存檔備份,存於互聯網檔案館) (section 10, "Keyboard internal scancodes"頁面存檔備份,存於互聯網檔案館)), Andries Brouwer. Version 1.2e, 2004-05-20, accessed 2006-11-15.
  4. ^ Keyboard scancodes頁面存檔備份,存於互聯網檔案館) (section 11, "The AT keyboard controller"頁面存檔備份,存於互聯網檔案館)), Andries Brouwer. Version 1.2g, 2009-07-07, accessed 2010-07-18.

外部連結[編輯]