PS/2键盘的编码与命令集

       目前,PC机使用的PS/2键盘都默认采用第2套扫描码集.

       扫描 码有两种不同的类型:“通码(make code)”和“断码(break code)”.当一个键被按下或持续按住时,键盘会将该键的通码发送给主机;而当一个键被释放时,键盘会将该键的断码发送给主机.

       根据键盘按键扫描码的不同,可将按键分为3类:
       第1类按键 通码为一个字节,断码为0xF0+通码形式.如A键,其通码为0x1C;断码为0xF0 0x1C.
       第2类按键 通码为两字节0xE0+0xXX形式,断码为0xE0+0xF0+0xXX形式.如Right Ctrl键,其通码为0xE0 0x14;断码为0xE0 0xF0 0x14.
       第3类特殊按键 有两个,Print Screen键,其通码为0xE0 0x12和0xE0 0x7C;断码为0xE0 0xF0 0x7C 和0xE0 0xF0 0x12.Pause键,其通码为0xE1 0x14 0x77和0xE1 0xF0 0xl4 0xF0 0x77;断码为空.
      组合按键扫描码的发送是按照按键发生的次序,如按下面顺序按左Shift十A键:① 按下左Shift键;② 按下A键;③ 释放A键;④ 释放左Shift键,那么计算机上接收到的一串数据为0x12 0x1C 0xF0 0x1C 0xF0 0x12.
    在文中的驱动程序设计中,就是根据按键的分类对其分别进行处理.

2.2 PS/2键盘的命令集
    主机可通过向PS/2键盘发送命令对键盘进行设置或者获得键盘的状态等操作.

    每发送一个字节,主机都会从键盘获得一个应答0xFA(“重发resend” 和“回应echo”命令例外).

    驱动程序在键盘初始化过程中所用的指令:

    0xED,主机在该命令后跟随发送一个参数字节,用于指示键盘上Num Lock,Caps Lock,Scroll Lock Led的状态;

    0xF3,主机在这条命令后跟随发送一个字节参数定义键盘机打的速率和延时;

    0xF4,用于当主机发送

    0xF5禁止键盘后,重新使能键盘.

 

2.3 键盘扫描码和命令集

第二套扫描码:(实用于标准PC的101、102和104 键的键盘):

 

给键盘的命令列表:
     0xFF: (Reset).复位Device。

     0xFE: (Resend).要求重新发送上一个字节(此命令可以由Host发给键盘,也可以由键盘发给Host)。

     0xFD/0xFC/0xFB: (Set Key Type Make/Make & Break/Make & Typematic).指定一个按键只发送Make Code/Make      Code & Break Code/Make Code & Typematic Repeat。该键值依照第三套键盘扫描码设定。

     0xFA: (Set all keys Make,Break & Typematic).缺省设置,恢复所有按键的Make code, Break code 和 Typematic      repeat功能。

     0xF9/0xF8/0xF7: (Set all keys Make/Make & Break/Make & Typematic).设置所有按键只发送Make Code/Make      Code & Break Code/Make Code & Typematic Repeat。

     0xF6: (Set Default).设置缺省的Typematic rate/delay(10.9cps/500ms),第二套键盘扫描码,执行0xFA命令。

     0xF5: (Disable).键盘停止扫描,执行0xF6命令。

     0xF4: (Enable).使能键盘扫描。

     0xF3: (Set Typematic Rate/delay). 后面跟1个字节设置Repeat Rate & Delay。
     Bit0-4:Repeat rate 0x00-0x10-0x1F (2.0-8.0-30.0 cps);
     Bit5-6:Delay 0.25/0.5/0.75/1.0 second。

     0xF2: (Read ID). 键盘回复双字节的设备ID(0xAB,0x83).

     0xF0: (Set Scan code set). 设置或读取当前使用的扫描码。参数为0x01,0x02或0x03时设置当前扫描码,参数为0x00时      读取当前扫描码。

     0xEE: (Echo).键盘回复一个0xEE。

     0xED: (Set/Reset LEDs). 后面跟一字节参数,用来设置键盘的Caps Lock/Num Lock/Scroll Lock。
     Bit0:ScrollLock;Bit1:NumLock;Bit2:CapsLock。


KEY

通码

断码

  KEY 通码 断码  KEY 通码断码 

A

1C

F0 1C

    946F0 46    [54 F0 54 

B

32

F0 32

 `0EF0 0E  INSERTE0 70 E0 F0 70

C

21

F0 21

 -4E F0 4E  HOMEE0 6C E0 F0 6C

D

23

F0 23

 =55 F0 55  PG UPE0 7D E0 F0 7D

E

24

F0 24

 /5D F0 5D  DELETEE0 71 E0 F0 71 
F2BF0 2B BKSP66 F0 66  ENDE0 69 E0 F0 69 
G34 F0 34  SPACE29 F0 29  PG DNE0 7A E0 F0 7A 
33 F0 33  TAB0D F0 0D  U ARROWE0 75 E0 F0 75 
I43 F0 43  CAPS58 F0 58  L ARROWE0 6B E0 F0 6B 
J3B F0 3B  L SHFT 12 F0 12  D ARROWE0 72E0 F0 72 
42 F0 42  L CTRL14 F0 14  R ARROWE0 74E0 F0 74 
4BF0 4B  L GUIE0 1F E0 F0 1F NUM77 F0  77
3A F0 3A  L ALT11 F0 11  KP /E0 4A E0 F0 4A 
31 F0 31  R SHFT 59 F0 59  KP *7CF0  7C
44 F0 44  R CTRL E0 14 E0 F0 14  KP -7BF0 7B 
4D F0 4D R GUIE0 27 E0 F0 27  KP +79F0 79 
15 F0 15  R ALTE0 11 E0 F0 11  KP ENE0 5AE0 F0 5A 
2DF0 2D  APPSE0 2F E0 F0 2F  KP 71F0 71 
1B F0 1B  ENTER5AF0 5A  KP 070F0 70 
2C F0 2C  ESC76 F0 76  KP 169F0 69 
3CF0 3C  F105 F0 05  KP 2 72F0 72 
2AF0 2A  F2 06F0 06  KP 3 7AF0 7A 
1DF0 1D  F3 04 F0 04  KP 4 6BF0 6B 
22F0 22  F4 0C F0 0C  KP 5 73F0 73 
35 F0 35  F5 03 F0 03  KP 6 74F0 74 
1A F0 1A  F6 0B F0 0B  KP 7 6C F0 6C 
045 F0 45  F7 83 F0 83  KP 8 75F0 75 
16 F0 16  F8 0A F0 0A  KP 9 7DF0 7D 
1E F0 1E  F9 01 F0 01  ]58F0 58 
26 F0 26  F10 09 F0 09  ;4CF0 4C 
25 F0 25  F11 78 F0 78  '52F0 52 
2E F0 2E  F12 07 F0 07  ,41F0 41 
36F0 36  PRNT

SCRN

E0 12

E0 7C

E0 F0

7C E0

F0 12 

 .49F0 49 
3D F0 3D  SCROLL7EF0,7E  /4AF0 4A 
3E F0 3E  PAUSEE1 14 77

E1 F0 14

F0 77

 -NONE-   

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值