文档库 最新最全的文档下载
当前位置:文档库 › 键盘扫描码key_code

键盘扫描码key_code

键盘扫描码

Keyboard Scan Codes (Numerical Order)

---------------+---------------+---------------+---------------+-

--------------

HEX DEC keys |HEX DEC keys |HEX DEC keys |HEX DEC keys |HEX

DEC keys

---------------+---------------+---------------+---------------+-

--------------

|10 16 Q |20 32 D |30 48 B |40

64 F6

01 1 ESC |11 17 W |21 33 F |31 49 N |41

65 F7

02 2 1 |12 18 E |22 34 G |32 50 M |42

66 F8

03 3 2 |13 19 R |23 35 H |33 51 , |43

67 F9

04 4 3 |14 20 T |24 36 J |34 52 . |44

68 F10

05 5 4 |15 21 Y |25 37 K |35 53 / |45

69 Num

06 6 5 |16 22 U |26 38 L |36 54 R

Shift|46 70 Scroll

07 7 6 |17 23 I |27 39 ; |37 55 PrtSc |47

71 Home

08 8 7 |18 24 O |28 40 ' |38 56 Alt |48

72 Up

09 9 8 |19 25 P |29 41 ` |39 57 Space |49

73 PgUp

0A 10 9 |1A 26 [ |2A 42 L

Shift|3A 58 Caps |4A 74 -

0B 11 0 |1B 27 ] |2B 43 \ |3B 59 F1 |4B

75 Left

0C 12 - |1C 28 |2C 44 Z |3C 60 F2 |4C

76 Center

0D 13 = |1D 29 CTRL |2D 45 X |3D 61 F3 |4D

77 Right

0E 14 bs |1E 30 A |2E 46 C |3E 62 F4 |4E

78 +

0F 15 Tab |1F 31 S |2F 47 V |3F 63 F5 |4F

79 End

---------------+---------------+---------------+---------------+-

--------------

50 80 Down | | | |

51 81 PgDn | | | |

52 82 Ins | | | |

53 83 Del | | | | ---------------+---------------+---------------+---------------+-

--------------

Keyboard Scan Codes (Read from Port HEX 60 = DEC 96) (Keyboard Layout)

Top number ... DEC

Bottom number ... HEX

+--+--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--

-----+-------+

|F1|F2|ESC| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |BkS|Num

Lok|Scr Lok|

| | | | | | | | | | | | | | | | |

| |

|59|60| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |10 |11 |12 |13 |14 | 69 | 70 | |3B|3C|01 |02 |03 |04 |05 |06 |07 |08 |09 |0A |0B |0C |0D |0E

| 45 | 46 |

+--+--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--

-----+-------+

|F3|F4|TAB| Q | W | E | R | T | Y | U | I | O | P | [ | ] | | 7 3

8 | 9 3 - |

| | | | | | | | | | | | | | | | | 3

| 3 |

|61|62|15 |16 |17 |18 |19 |20 |21 |22 |23 |24 |25 |26 |27 | |71 372

|73 374 |

|3D|3E|0F |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |1A |1B | |47 348

|49 34A |

+--+--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--

-----+-------+

|F5|F6|CTR| A | S | D | F | G | H | J | K | L | ; | ' | ` |28 | 4 3

5 |

6 3 |

| | | | | | | | | | | | | | | | | 3

| 3 |

|63|64|29 |30 |31 |32 |33 |34 |35 |36 |37 |38 |39 |40 |41 | |75 376

|77 3 |

|3F|40|1D |1E |1F |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 | |4B 34C

|4D 3 |

+--+--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--

-----+-------+

|F7|F8|Shf| \ | Z | X | C | V | B | N | M | , | . | / |Shf|Prt| 1 3

2 |

3 3 + |

| | | | | | | | | | | | | | | | | 3

| 3 |

|65|66|42 |43 |44 |45 |46 |47 |48 |49 |50 |51 |52 |53 |54 |55 |78 380

|81 378 |

|41|42|2A |2B |2C |2D |2E |2F |30 |31 |32 |33 |34 |35 |36 |37 |4F 350

|51 34E |

+--+--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--

-----+-------+

|F9|F0| A|t | | | | |pac| | | | |Cap|Lok| I|s 3

D|l 3 |

| | | | | | | | | | | | | | | | | 3

| 3 |

|67|68| 5| | | | | |57

| | | | | 5| | 8| 3 8| 3 |

|43|44| 3| | | | | |39

| | | | | 3| | 5| 3 5| 3 |

+--+--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--

-----+-------+

Extended ASCII Special Key Codes (Numerical Order)

... composed of 2 bytes, the 2nd byte being 00 (00 signifies that the special codes are to be applied.)

HEX DEC keys

-------------------------------

03 3 CTRL-2; same as CHR$(0)

0F 15 Shift-tab

10 16 Alt-Q

11 17 Alt-W

12 18 Alt-E

13 19 Alt-R

14 20 Alt-T

15 21 Alt-Y

16 22 Alt-U

17 23 Alt-I

18 24 Alt-O

19 25 Alt-P

1E 30 Alt-A

1F 31 Alt-S

20 32 Alt-D

21 33 Alt-F

22 34 Alt-G

23 35 Alt-H

24 36 Alt-J

25 37 Alt-K

26 38 Alt-L

2C 44 Alt-Z

2D 45 Alt-X

2E 46 Alt-C

2F 47 Alt-V

30 48 Alt-B

31 49 Alt-N

32 50 Alt-M

3B 59 F1

3C 60 F2

3D 61 F3

3E 62 F4

3F 63 F5

40 64 F6

41 65 F7

42 66 F8

43 67 F9

44 68 F10

47 71 Home

48 72 Up

49 73 PgUp

4B 75 Left

4D 77 Right

4F 79 End

50 80 Down

51 81 PgDn

52 82 Ins

53 83 Del

54 84 Shift-F1

55 85 Shift-F2

56 86 Shift-F3

57 87 Shift-F4

58 88 Shift-F5

59 89 Shift-F6 5A 90 Shift-F7 5B 91 Shift-F8 5C 92 Shift-F9 5D 93 Shift-F10

5F 95 Ctrl-F2

60 96 Ctrl-F3

61 97 Ctrl-F4

62 98 Ctrl-F5

63 99 Ctrl-F6

64 100 Ctrl-F7

65 101 Ctrl-F8

66 102 Ctrl-F9

67 103 Ctrl-F10

68 104 Alt-F1

69 105 Alt-F2

6A 106 Alt-F3

6B 107 Alt-F4

6C 108 Alt-F5

6D 109 Alt-F6

6E 110 Alt-F7

6F 111 Alt-F8

70 112 Alt-F9

71 113 Alt-F10

72 114 Ctrl-PrtSc

73 115 Ctrl-Left

74 116 Ctrl-Right

75 117 Ctrl-End

76 118 Ctrl-PgDn

77 119 Ctrl-Home

78 120 Alt-1

79 121 Alt-2

7A 122 Alt-3

7B 123 Alt-4

7C 124 Alt-5

7D 125 Alt-6

7E 126 Alt-7

7F 127 Alt-8

80 128 Alt-9

81 129 Alt-0

82 130 Alt--

83 131 Alt-=

84 132 Ctrl-PgUp

85 133 Ctrl-Up

86 134 Ctrl--(num)

87 135 Ctrl-Center

88 136 Ctrl-+(num)

89 137 Ctrl-Down

8B 139 Ctrl-Del

8C 140 Alt-Home

8D 141 Alt-Up

8E 142 Alt-PgUp

8F 143 Alt--(num)

90 144 Alt-Left

91 145 Alt-Center

92 146 Alt-Right

93 147 Alt-+(num)

94 148 Alt-End

95 149 Alt-Down

96 150 Alt-PgDn

97 151 Alt-Ins

98 152 Alt-Del

Extended ASCII Special Key Codes (Keyboard Layout)

------------------+-------------------+-------------------+------

--------------

HEX DEC keys | HEX DEC keys | HEX DEC keys | HEX DEC

keys

------------------+-------------------+-------------------+------

--------------

03 3 nul | 0F 15 Shift-tab | 72 114 Ctrl-PrtSc|

------------------+-------------------+-------------------+------

--------------

47 71 Home | | 77 119 Ctrl-Home | 8C

140 Alt-Home

48 72 Up | | 85 133 Ctrl-Up | 8D

141 Alt-Up

49 73 PgUp | | 84 132 Ctrl-PgUp | 8E

142 Alt-PgUp

4A 74 -(num) | | 86 134 Ctrl--(nu)| 8F

143 Alt--(num)

4B 75 Left | | 73 115 Ctrl-Left | 90

144 Alt-Left

4C 76 Center | | 87 135 Ctrl-Centr| 91

145 Alt-Center

4D 77 Right | | 74 116 Ctrl-Right| 92

146 Alt-Right

4E 78 +(num) | | 88 136 Ctrl-+(nu)| 93

147 Alt-+(num)

4F 79 End | | 75 117 Ctrl-End | 94

148 Alt-End

50 80 Down | | 89 137 Ctrl-Down | 95

149 Alt-Down

51 81 PgDn | | 76 118 Ctrl-PgDn | 96

150 Alt-PgDn

52 82 Ins | | 8A 138 Ctrl-Ins | 97

151 Alt-Ins

53 83 Del | | 8B 139 Ctrl-Del | 98

152 Alt-Del

------------------+-------------------+-------------------+------

--------------

3B 59 F1 | 54 84 Shift-F1 | 5E 94 Ctrl-F1 | 68

104 Alt-F1

3C 60 F2 | 55 85 Shift-F2 | 5F 95 Ctrl-F2 | 69

105 Alt-F2

3D 61 F3 | 56 86 Shift-F3 | 60 96 Ctrl-F3 | 6A

106 Alt-F3

3E 62 F4 | 57 87 Shift-F4 | 61 97 Ctrl-F4 | 6B

107 Alt-F4

3F 63 F5 | 58 88 Shift-F5 | 62 98 Ctrl-F5 | 6C

108 Alt-F5

40 64 F6 | 59 89 Shift-F6 | 63 99 Ctrl-F6 | 6D

109 Alt-F6

41 65 F7 | 5A 90 Shift-F7 | 64 100 Ctrl-F7 | 6E

110 Alt-F7

42 66 F8 | 5B 91 Shift-F8 | 65 101 Ctrl-F8 | 6F

111 Alt-F8

43 67 F9 | 5C 92 Shift-F9 | 66 102 Ctrl-F9 | 70

112 Alt-F9

44 68 F10 | 5D 93 Shift-F10 | 67 103 Ctrl-F10 | 71

113 Alt-F10

------------------+-------------------+-------------------+------

--------------

1E 30 Alt-A | 31 49 Alt-N | 78 120 Alt-1 |

30 48 Alt-B | 18 24 Alt-O | 79 121 Alt-2 |

2E 46 Alt-C | 19 25 Alt-P | 7A 122 Alt-3 |

20 32 Alt-D | 10 16 Alt-Q | 7B 123 Alt-4 |

12 18 Alt-E | 13 19 Alt-R | 7C 124 Alt-5 |

21 33 Alt-F | 1F 31 Alt-S | 7D 125 Alt-6 |

22 34 Alt-G | 14 20 Alt-T | 7E 126 Alt-7 |

23 35 Alt-H | 16 22 Alt-U | 7F 127 Alt-8 |

17 23 Alt-I | 2F 47 Alt-V | 80 128 Alt-9 |

24 36 Alt-J | 11 17 Alt-W | 81 129 Alt-0 |

25 37 Alt-K | 2D 45 Alt-X | 82 130 Alt-- |

26 38 Alt-L | 15 21 Alt-Y | 83 131 Alt-= |

32 50 Alt-M | 2C 44 Alt-Z |

PC机和键盘部分通信命令字

PC机向键盘发出的命令共有10条,键盘向PC机发出的键盘响应共有7条。当收到PC机发送的命令时,键盘一般要在20ms内回答“确认”。

置位/复位命令格式:

PC机发送:ED

键盘发送:FA

PC机发送:命令码

键盘发送:FA

“命令码”内容为:0x00-熄灭键盘指示灯。0x01-亮“Scroll”灯。

0x02-亮“Num”灯。0x04-亮“Caps”灯。

以下扫描代码为按键通码。

当一个键被按下或持续按住时,键盘会将该键的通码发送给主机;而当一个键被释放时,键盘会将该键的断码发送给主机. 根据键盘按键扫描码的不同,可将按键分为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.

数字区小键盘扫描码:

0:0x70 1:0x69 2:0x72 3:0x7a 4:0x6b 5:0x73 6:0x74 7:0x6c 8:0x75 9:0x7d

/:0xe0 0x4a 0xe0 *:0x7c -:0x7b +:0x79 .:0x71

Numlock:0x77 enter:0xe0 0x5a

功能键区:

Print:0xe0 0x12 0xe0 0x7c 断码:0xe0 0xf0 0x7c 0xe0 0xf0 0x12 Pause:0xe1 0x14 0x77 0xe1 0xf0 0x14 0xf0 0x77 无断码

Scrol:0x7e

Insert:0xe0 0x70

Home:0xe0 0x6c

Page up:0xe0 0x7d

Page down:0xe0 0x7a

Delete:0xe0 0x71

End:0xe0 0x69

↑:0xe0 0x75

↓:0xe0 0x72

←:0xe0 0x6b

→:0xe0 0x74

特殊功能键区:

Esc:0x76 F1:0x05 F2:0x06 F3:0x04 F4:0x0c F5:0x03 F6:0x0b F7:0x83 F8:0x0a F9:0x01 F10:0x09 F11:0x78 F12:0x07

主键盘区扫描码:

~:0x0e 1:0x16 2:0x1e 3:0x26 4:0x25 5:0x2e 6:0x36

7:0x3d 8:0x3e 9:0x46 0:0x45 -:0x4e =:0x55 \:0x5d

a:0x1c b:0x32 c:0x21 d:0x23 e:0x24 f:0x2b g:0x34 h:0x33 i:0x43 j:0x3b k:0x42 l:0x4b m:0x3a n:0x31 o:0x44 p:0x4d q:0x15 r:0x2d s:0x1b t:0x2c u:0x3c v:0x2a w:0x1d x:0x22 y:0x35 z:0x1a

[:0x54 ]:0x5b ;:0x4c ':0x52 ,:0x41 .:0x49 /:0x4a Enter:0x5a BackSpace←:0x66

Space空格:0x29

Tab:0x0d Caps:0x58

Left shift:0x12 Right shift:0x59

Left ctrl:0x14 Right ctrl:0xe0 0x14

Left win:0xe0 0x1f Right win:0xe0 0x27

Left alt:0x11 Right alt:0xe0 0x11

Right click:0xe0 0x2f

键盘扫描码

键盘上的每一个键都有两个唯一的数值进行标志。为什么要用两个数值而不是一个数值呢?这是因为一个键可以被按下,也可以被释放。当一个键按下时,它们产生一个唯一的数值,当一个键被释放时,它也会产生一个唯一的数值,我们把这些数值都保存在一张表里面,到时候通过查表就可以知道是哪一个键被敲击,并且可以知道是它是被按下还是被释放了。这些数值在系统中被称为键盘扫描码 2扫描码大全 扫描码键 0x011b ESC 0x3b00 F1 0x3c00 F2 0x3d00 F3 0x3e00 F4 0x3f00 F5 0x4000 F6 0x4100 F7 0x4200 F8 0x4300 F9 0x4400 F10 主键盘区: 0x2960 ~ 0x0231 1 0x0332 2 0x0433 3 0x0534 4 0x0635 5 0x0736 6 0x0837 7 0x0938 8 0x0a39 9 0x0b30 0 0x0c2d - 0x0d3d = 0x2b5c \ 0x0e08 退格键 0x0f09 Tab 0x1071 q 0x1177 w 0x1265 e 0x1372 r 0x1474 t 0x1579 y

0x1769 i 0x186f o 0x1970 p 0x1a5b [ 0x1b5d ] 0x1e61 a 0x1f73 s 0x2064 d 0x2166 f 0x2267 g 0x2368 h 0x246a j 0x256b k 0x266c l 0x273b ; 0x2827 ' 0x1c0d 回车 0x2c7a z 0x2d78 x 0x2e63 c 0x2f76 v 0x3062 b 0x316e n 0x326d m 0x332c , 0x342e . 0x352f / 0x3920 空格键 0xe05b 左Win 0xe05c 右Win 0xe05d Menu 右边数字键盘: 0x5200 Insert 0x4700 Home 0x4900 Page UP 0x5300 Delete 0x4f00 End 0x5100 PageDown 0x4800 上箭头 0x4b00 左箭头 0x5000 下箭头 0x4d00 右箭头 0x352f /

串口转键盘 键盘扫描码输入

串口转键盘设备使用说明 (RS232转ps2) 特别说明:本文中的数据都是十六进制格式的数据。 1 串口参数设置 波特率9600,8个数据位,1个停止位,无奇偶校验; 2 控制方法 该设备的控制完全模拟手工操作的过程,分为下面几种情况。 2.1 普通键 直接发送按键的通码+断码(按键的通码、断码请参考附录1) 比如要发送字母a,相当于发送数据1C F0 1C,数据都是以十六进制的格式发送;如果要实现按住不动地效果,则发送通码+通码+通码+……+断码,最后发送的断码表示按键弹起,请自行控制通码之间的时间间隔,具体要求为第一个通码与第二个通码之间的时间间隔为500ms左右,后面其他的通码之间地时间间隔为80ms左右(此时间是普通键盘的实际间隔时间); 2.2 组合键 组合键例1:CTRL+ALT+DEL 实现过程:CTRL通码+ ALT通码+ DEL通码+ DEL断码+ ALT断码+ CTRL断码 相当于手工按键操作的按下CTRL键+按下ALT键+按下DEL键+松开DEL键+松开ALT键+松开CTRL键 组合键例2:输入字符@ ‘Shift’的通码+数字键‘2’的通码+数字键‘2’的断码+‘shift’键的断码 组合键例3:输入大写字母A 这分为两种情况,如果当前capslock指示灯处于点亮状态,则直接输入字母a的通码加断码,即发送数据1C F0 1C即可;如果当前capslock指示灯处于熄灭状态,则需要发送shift通码+字母a的通码+字母a的断码+shift断码这样来实

现,即发送数据:12 1C F0 1C F0 12,此处使用的是左shift键的键码,实际应用中可根据自己的需要来选用左shift或者右shift; 3 其他需要注意的问题 3.1 ps/2接口注意问题 ps/2接口不支持热插拔,请在系统断电的情况下插ps/2接口。 3.2 握手信号 通过RS232接口向该设备发送数据00,设备返回30,说明链接成功;请注意,本设备是通过计算机的ps2键盘接口提供电源的,因此只有当设备的ps2接口插到计算机的ps2键盘接口上并且计算机开机的情况下该线才会正常工作。 3.3 速度 为了使此转接线可以适应大部分的设备,我们设置了一个相对比较安全的发送的时间间隔,大约15ms发送一次键盘指令,也就是说,如果转接线一次性收到多条指令,那么它会间隔大约15ms的时间发送一个指令,而不是一次性把所有指令全部转发,未发送的指令暂存在缓冲区中,缓冲区的大小为50字节,因此在使用时需要注意,一次性连续发送的数据不要超过50个字节,否则就可能丢失数据,发送完毕一串数据后等待的时间(即下次发送数据的时间)根据指令数目来计算,等待时间要大于等于指令数目×15ms,这个时间看上去挺长,但是比实际手工操作的速度要快的多; 3.4 设备主动向RS232接口发送的信息 键盘上的指示灯numlock、capslock、scrolllock中的任何一个状态发生变化时,该设备会向RS232口返回变化后的状态数据,状态数据为一个字节,设备会连续发送两次,主机控制程序可根据此返回值来确定当前输入信号的大小写锁定、小键盘状态等信息; 返回值详解: bit0:0-Scroll lock灯灭,1-Scroll lock灯亮

键盘扫描码

(注:当按下“普通键”时,它的低8位数存放该字符的ASCII码。对于特殊键,低8位为0。特殊键包括箭头键、功能键等。高8位字节存放该键的扫描码。) 扫描码键 0x011b ESC 0x3b00 F1 0x3c00 F2 0x3d00 F3 0x3e00 F4 0x3f00 F5 0x4000 F6 0x4100 F7 0x4200 F8 0x4300 F9 0x4400 F10 主键盘区: 0x2960 ~ 0x0231 1 0x0332 2 0x0433 3 0x0534 4 0x0635 5 0x0736 6 0x0837 7 0x0938 8 0x0a39 9 0x0b30 0 0x0c2d - 0x0d3d = 0x2b5c " 0x0e08 退格键 0x0f09 Tab 0x1071 q 0x1177 w 0x1265 e 0x1372 r 0x1474 t 0x1579 y 0x1675 u 0x1769 i 0x186f o 0x1970 p 0x1a5b [ 0x1b5d ] 0x1e61 a

0x2064 d 0x2166 f 0x2267 g 0x2368 h 0x246a j 0x256b k 0x266c l 0x273b ; 0x2827 ' 0x1c0d 回车 0x2c7a z 0x2d78 x 0x2e63 c 0x2f76 v 0x3062 b 0x316e n 0x326d m 0x332c , 0x342e . 0x352f / 0x3920 空格键 右边数字键盘: 0x5200 Insert 0x4700 Hom e 0x4900 Page UP 0x5300 Delete 0x4f00 End 0x5100 PageDown 0x4800 上箭头 0x4b00 左箭头 0x5000 下箭头 0x4d00 右箭头 0x352f / 0x372a * 0x4a2d - (注意,这是数字键盘的) 0x4737 7 0x4838 8 0x4939 9 0x4b34 4 0x4c35 5 0x4d36 6 0x4e2b + 0x4f31 1

ps2键盘编码

2 PS/2键盘的编码与命令集 2.1 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禁止键盘后,重新使能键盘. 4.1 单片机与键盘间PS/2通信的程序设计 在PS/2通信过程中,主设备(文中是单片机)是在时钟信号为低时发送和接收数据信号.因为单片机向键盘发送的是指令,需要键盘回应,所以这部分程序采用查询方式;而单片机接收键盘数据时,数据线上的信号在时钟为低时已经稳定,所以这部分程序采用中断方式,且不需要在程序中加入延时程序. 单片机向PS/2键盘发送数据程序代码为: void ps2_sentchar(unsigned char sentchar){//ps2主设备向从设备发送数据 unsigned char sentbit_cnt= 0x00; unsigned char sentchar_chk = 0x00; EX0=0; //关外部中断0 //发起一个传送,发起始位 PS2_SGN_CLOCK = 0; //将时钟线拉低并保持100 us delay100us(); PS2_SGN_DATA= 0; //起始位 PS2_SGN_CLOCK = 1; //发送DATA0-7 for(sentbit_cnt=0;sentbit_cnt< 8;sentbit_cnt++){ while(PS2_SGN_CLOCK) _nop_(); //等待时钟线变为低 PS2_SGN_DATA = sentchar& 0x01;//发送数据 if(PS2_SGN_DATA) sentchar_chk++; //计算校验 while(!PS2_SGN_CL0CK) _nop_(); //等待时钟线变高 sentchar>>=1; //待发送数据右移一位 } //发送校验位 while(PS2_SGN_CLOCK) _nop_(); //等待时钟线变低

键盘按键的key code值

常用的键盘按键值 说明一 --------第一排F键和主键盘上键--------- F1-F12键:值从112-123。主键盘上数字0-9键:值从48-57。 字母A-Z键:值从65-90。 ESC键:值27。 "~"符号键:值192。 "-"减号键:189。 "="等号键:187。 " \ "键:220。 退格键Backspace:8。 TAB键:9。 "["左中括号键:219。 "]"右中括号键:221。 回车键Enter:13. 大小写转换键Caps Lock:20。 ";"分号键:186。 "'"引号键:222。 Shift键:16。(也可另只指左Shift键:160,只指右Shift键:161。)","逗号键:188。 "。"句号键:190。 "/"键:191。 Ctrl键:17。(也可左:162;右:163)Alt键:18。(也可左:164;右:165)Windows键:左:91;右:92。 ------功能键--------- 上下左右键头键:左:37;上:38:右:39;下:40。 Sleep进入休眠键:95。 Print Screen抓屏键:44。 Scroll Lock键:145。 Insert插入键:45。 Delete删除键:46。 Home开始位置键:36。 END结束位置键:35。 Page Up向上翻页键:33。 Page Down向下翻页键:34。 ------数字小键盘上的键------- Num Lock键:144。 "/"号键:111。 "*"号键:106。 "-"号键:109。 "+"号键:107。回车键:13。 其余键分两种情况,当Num Lock键关上时: Num 1键:35。 Num 2键:40。 Num 3键:34。 Num 4键:37。 Num 5键:12。Num 6键:39。 Num 7键:36。 Num 8键:38。 Num 9键:33。 Num 0键:45。Del键:46。 当Num Lock键打开时:(键盘上Num lock指示灯亮) Num 1键:97。 Num 2键:98。 Num 3键:99。 Num 4键:100。 Num 5键:101。Num 6键:102。 Num 7键:103。 Num 8键:104。 Num 9键:105。 Num 0键:96。 Del键:110。 -----鼠标键------- 鼠标左键:值1。鼠标右键:值2。

键盘扫描码key_code

键盘扫描码 Keyboard Scan Codes (Numerical Order) ---------------+---------------+---------------+---------------+- -------------- HEX DEC keys |HEX DEC keys |HEX DEC keys |HEX DEC keys |HEX DEC keys ---------------+---------------+---------------+---------------+- -------------- |10 16 Q |20 32 D |30 48 B |40 64 F6 01 1 ESC |11 17 W |21 33 F |31 49 N |41 65 F7 02 2 1 |12 18 E |22 34 G |32 50 M |42 66 F8 03 3 2 |13 19 R |23 35 H |33 51 , |43 67 F9 04 4 3 |14 20 T |24 36 J |34 52 . |44 68 F10 05 5 4 |15 21 Y |25 37 K |35 53 / |45 69 Num 06 6 5 |16 22 U |26 38 L |36 54 R Shift|46 70 Scroll 07 7 6 |17 23 I |27 39 ; |37 55 PrtSc |47 71 Home 08 8 7 |18 24 O |28 40 ' |38 56 Alt |48 72 Up 09 9 8 |19 25 P |29 41 ` |39 57 Space |49 73 PgUp 0A 10 9 |1A 26 [ |2A 42 L Shift|3A 58 Caps |4A 74 - 0B 11 0 |1B 27 ] |2B 43 \ |3B 59 F1 |4B 75 Left 0C 12 - |1C 28 |2C 44 Z |3C 60 F2 |4C 76 Center 0D 13 = |1D 29 CTRL |2D 45 X |3D 61 F3 |4D 77 Right 0E 14 bs |1E 30 A |2E 46 C |3E 62 F4 |4E 78 + 0F 15 Tab |1F 31 S |2F 47 V |3F 63 F5 |4F 79 End ---------------+---------------+---------------+---------------+- --------------

VB键盘常量大全个虚拟键码

Public Const VK_LBUTTON = &H1 Public Const VK_RBUTTON = &H2 Public Const VK_CANCEL = &H3 Public Const VK_MBUTTON = &H4 Public Const VK_BACK = &H8 Public Const VK_TAB = &H9 Public Const VK_CLEAR = &HC Public Const VK_RETURN = &HD Public Const VK_SHIFT = &H10 Public Const VK_CONTROL = &H11 Public Const VK_MENU = &H12 Public Const VK_PAUSE = &H13 Public Const VK_CAPITAL = &H14 Public Const VK_ESCAPE = &H1B Public Const VK_SPACE = &H20 Public Const VK_PRIOR = &H21 Public Const VK_NEXT = &H22 Public Const VK_END = &H23 Public Const VK_HOME = &H24 Public Const VK_LEFT = &H25 Public Const VK_UP = &H26 Public Const VK_RIGHT = &H27 Public Const VK_DOWN = &H28 Public Const VK_Select = &H29 Public Const VK_PRINT = &H2A Public Const VK_EXECUTE = &H2B

VB模拟鼠标键盘动作

模拟鼠标键盘动作 有些时候,一些重复性的,很繁琐的键盘操作总会让人疲惫,于是就有了用程序来代替人们按键的方法,这样可以把很多重复性的键盘操作交给程序来模拟,省了很多精力,按键精灵就是这样的一个软件。那么我们怎样才能用VB来写一个程序,达到与按键精灵类似的功能呢?那就让我们来先了解一下windows 中响应键盘事件的机制。 当用户按下键盘上的一个键时,键盘内的芯片会检测到这个动作,并把这个信号传送到计算机。如何区别是哪一个键被按下了呢?键盘上的所有按键都有一个编码,称作键盘扫描码。当你按下一个键时,这个键的扫描码就被传给系统。扫描码是跟具体的硬件相关的,同一个键,在不同键盘上的扫描码有可能不同。键盘控制器就是将这个扫描码传给计算机,然后交给键盘驱动程序。键盘驱动程序会完成相关的工作,并把这个扫描码转换为键盘虚拟码。什么是虚拟码呢?因为扫描码与硬件相关,不具有通用性,为了统一键盘上所有键的编码,于是就提出了虚拟码概念。无论什么键盘,同一个按键的虚拟码总是相同的,这样程序就可以识别了。简单点说,虚拟码就是我们经常可以看到的像VK_A,VK_B这样的常数,比如键A的虚拟码是65,写成16进制就是&H41,注意,人们经常用16进制来表示虚拟码。当键盘驱动程序把扫描码转换为虚拟码后,会把这个键盘操作的扫描码和虚拟码还有其它信息一起传递给操作系统。然后操作系统则会把这些信息封装在一个消息中,并把这个键盘消息插入到消息列队。最后,要是不出意外的话,这个键盘消息最终会被送到当前的活动窗口那里,活动窗口所在的应用程序接收到这个消息后,就知道键盘上哪个键被按下,也就可以决定该作出什么响应给用户了。这个过程可以简单的如下表示: 用户按下按键-----键盘驱动程序将此事件传递给操作系统-----操作系统将键盘事件插入消息队列-----键盘消息被发送到当前活动窗口 明白了这个过程,我们就可以编程实现在其中的某个环节来模拟键盘操作了。在VB中,有多种方法可以实现键盘模拟,我们就介绍几种比较典型的。 1.局部级模拟 从上面的流程可以看出,键盘事件是最终被送到活动窗口,然后才引起目标程序响应的。那么最直接的模拟方法就是:直接伪造一个键盘消息发给目标程序。哈哈,这实在是很简单,windows提供了几个这样的API函数可以实现直接向目标程序发送消息的功能,常用的有SendMessage和PostMessage,它们的区别是PostMessage函数直接把消息仍给目标程序就不管了,而SendMessage 把消息发出去后,还要等待目标程序返回些什么东西才好。这里要注意的是,模拟键盘消息一定要用PostMessage函数才好,用SendMessage是不正确的(因为模拟键盘消息是不需要返回值的,不然目标程序会没反应),切记切记!PostMessage函数的VB声明如下: Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long 参数hwnd 是你要发送消息的目标程序上某个控件的句柄,参数wMsg 是消息的类型,表示你要发送什么样的消息,最后wParam 和lParam 这两个参数是随消

键盘工作原理

键盘工作原理 一、PS/2键盘 PS/2键盘是遵循IBM PS/2键盘协议,通过PS/2的接口与主机相连。 PS/2接口共有4条信号线。如下所示: 5-Pin DIN Connector 6-Pin Mini DIN Connector DIN Connector Signal Name Signal Type MiniDIN Connector Pin Pin Pin 1Pin 5+KBD CLK Input / Output Pin 2Pin 1+KBD DATA Input / Output Pin 3Pin 2Reserved Pin 4Pin 3GND Power Pin 5Pin 4+Power

如上图所示,PS/2接口四条信号线分别为“电源,地线,数据,时钟”。键盘通电后,所有数据都是通过“时钟/数据”两条信号线与主机进行沟通的。键盘与主机之间的沟通每次传送的数据为11位:1个起始位/8个数据位/1个校验位/1个停止位。键盘上每个按键都会进行编码称之为扫描码(Scan Code),每个键都有按下去的码称为通码(Make Code)与弹起来的码称为断码(Break Code)。扫描码又分为两种Code Set 1(简称为CS1)与Code Set2(简称为CS2)。这两种编码方式不同,CS1中“断码=通码+80(十六进制)”;CS2中“断码=F0 + 通码”。举例来说,如字母“A”, CS1码为通码=1E、断码= 9E;CS2码为通码=1C、断码=F0 1C。键盘是按CS2的方式将码传送至电脑主板的上键盘控制口8042,8042再将码转换成CS1的方式再传给操作系统。操作系统收到码后再转换成其相应的功能。 二、USB键盘 USB键盘是随着USB协议的推出而设计出来的。其通讯方式是遵循与HID 规范的。HID中文称之为人机接口设备,HID的规范主要定义了如键盘、鼠标、游戏杆等由人直接控制跟电脑相连的一些输入输出设备。 USB键盘的原理较为复杂,这里只能做简单介绍: 1、信号线:分为四条,按顺序依次为“VCC(红色)、DATA-(白色)、

键盘工作原理

键盘工作原理 键盘是计算机输入设备中常见的一种,通过键盘可以输入文字、数字和各种命令。键盘的工作原理涉及到按键的检测、信号传输和数据处理等多个方面。 一、按键的检测 键盘上的每个按键都与一个电路开关相连,当按下某个按键时,该按键对应的电路开关闭合,形成一个电路通路。键盘通过扫描的方式来检测按键的状态。具体来说,键盘会定时发送扫描码(scan code)给计算机,扫描码是一个数字,用来表示按键的位置和状态。计算机通过检测扫描码来判断哪个按键被按下。 二、信号传输 键盘与计算机之间的信号传输通常采用PS/2或USB接口。PS/2接口是一种6针或5针的圆形接口,用于连接键盘和计算机主机。USB接口是一种通用的数字串行接口,可以连接各种外部设备,包括键盘。当按键被按下时,键盘会将扫描码通过接口发送给计算机,计算机接收到扫描码后进行解析和处理。 三、数据处理 计算机接收到键盘发送的扫描码后,会将其转换为相应的字符或命令。这个过程称为键盘映射(Keyboard Mapping)。键盘映射是通过键盘驱动程序来实现的,驱动程序会根据操作系统的不同,将扫描码映射为相应的字符编码或命令。例如,按下字母键盘上的"A"键,键盘会发送相应的扫描码给计算机,计算机根据键盘映射表将扫描码转换为ASCII码,最终显示为字母"A"。 四、特殊功能键 键盘上还有一些特殊功能键,如Shift键、Ctrl键、Alt键等。这些键可以与其他键配合使用,实现一些特殊的功能。例如,按下Shift键和字母键"A",可以输入

大写字母"A";按下Ctrl键和字母键"C",可以复制选中的内容。这些特殊功能键的工作原理与普通按键类似,但在键盘映射过程中会进行特殊处理。 五、多媒体键盘 除了常规的键盘,还有一种称为多媒体键盘的特殊键盘。多媒体键盘上通常有一些额外的按键,用于控制音量、播放器、亮度等多媒体功能。这些按键的工作原理与普通按键类似,但在键盘映射过程中会进行特殊处理,将按下的按键映射为相应的多媒体命令。 总结: 键盘的工作原理包括按键的检测、信号传输和数据处理等多个方面。按键的检测通过扫描码来实现,键盘通过扫描的方式检测按键的状态。信号传输通常采用PS/2或USB接口,键盘将扫描码发送给计算机进行处理。数据处理是将扫描码转换为相应的字符或命令,通过键盘映射来实现。特殊功能键和多媒体键盘在键盘映射过程中会进行特殊处理,以实现特殊的功能。键盘的工作原理是计算机输入设备中的重要一环,了解键盘的工作原理有助于更好地理解和使用键盘。

4乘4键盘扫描程序汇编语言

LJMP MAIN ORG 0030H MAIN:MOV P1,#01H ;ɨÃèµÚÒ»ÐÐ MOV A,P1 CJNE A,#01H,LOOP0;È·¶¨µÚÒ»ÐÐÓа´¼ü°´Ï MOV P1,#02H MOV A,P1 CJNE A,#02H,LOOP1 MOV P1,#04H MOV A,P1 CJNE A,#04H,LOOP2 MOV P1,#08H MOV A,P1 CJNE A,#08H,LOOP3 LJMP MAIN LOOP2:LJMP LOOOP2;CJNEÖ¸ÁîÎÞ·¨×ªÒÆ£¬¸¨ÖúÖ¸Áî LOOP3:LJMP LOOOP3 LOOP0:MOV P1,#10H ;ɨÃèµÚÒ»ÁÐ MOV A,P1 CJNE A,#10H,LOP0;È·¶¨µÚÒ»ÁÐÓмü°´Ï MOV P1,#20H MOV A,P1 CJNE A,#20H,LOP1 MOV P1,#40H MOV A,P1 CJNE A,#40H,LOP2 MOV P1,#80H MOV A,P1 CJNE A,#80H,LOP3 LJMP MAIN LOP0:MOV P2,#0C0H ;ÏÔʾȷ¶¨ÐÐÁеÄÖµ LJMP MAIN LOP1:MOV P2,#0F9H ;¿É½«´«Ë͵ÄÖµÓòé±íµÄ·½Ê½ÏÔʾ£¬ÕâÑù»á¼òµ¥Ã÷ÁË¡£ LJMP MAIN LOP2:MOV P2,#0A4H LJMP MAIN LOP3:MOV P2,#0B0H LJMP MAIN LOOP1: MOV P1,#10H MOV A,P1 CJNE A,#10H,LOP4 MOV P1,#20H MOV A,P1 CJNE A,#20H,LOP5 MOV P1,#40H MOV A,P1 CJNE A,#40H,LOP6 MOV P1,#80H MOV A,P1 CJNE A,#80H,LOP7 LJMP MAIN LOP4:MOV P2,#99H LJMP MAIN LOP5:MOV P2,#92H LJMP MAIN LOP6:MOV P2,#82H LJMP MAIN LOP7:MOV P2,#0F8H LJMP MAIN LOOOP2:MOV P1,#10H MOV A,P1 CJNE A,#10H,LOP8

键位码表大全

一、键位扫描码,用event.keyCode获得 8 退格 9 Tab 12 小键盘<5> ,numlock未锁定时 13 回车 16 Shift 17 Ctrl 18 Alt 19 Pause Break 20 CapsLock 27 Esc 33 PgUp 34 PgDn 35 End 36 Home 37 ← 38 ↑ 39 → 40 ↓ 45 Insert和小键盘的Ins 46 Delete和小键盘的Del 48 0 ) 49 1 ! 50 2 @ 51 3 # 52 4 $ 53 5 % 54 6 ^ 55 7 & 56 8 * 57 9 ( 65 A(小写一样) 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M

78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 左窗键 92 右窗键 93 仿右鼠标键 96 0(小键盘) 97 1(小键盘) 98 2(小键盘) 99 3(小键盘) 100 4(小键盘) 101 5(小键盘) 102 6(小键盘) 103 7(小键盘) 104 8(小键盘) 105 9(小键盘) 106 *(小键盘) 107 +(小键盘) 109 -(小键盘) 111 /(小键盘) 112 F1 IE占用113 F2 114 F3 IE占用115 F4 IE占用116 F5 IE占用117 F6 IE占用118 F7 119 F8 120 F9 121 F10 取不到F11 取不到F12 取不到Print Screen SysRq 144 NumLock

libsdl 键盘解析

libsdl 键盘解析 SDL(Simple DirectMedia Layer)是一个跨平台的多媒体开发库,可用于创建图形、音频和输入处理等功能。在游戏开发中,键盘输入是一项非常重要的功能,本文将介绍如何利用SDL库解析键盘输入。 一、SDL键盘事件 SDL提供了处理键盘输入的功能,它的键盘事件主要有两个部分:键按下事件和键释放事件。当键盘按下时,SDL会生成一个键按下事件,并将该事件发送到应用程序的事件队列中。同样,当键盘释放时,SDL也会生成一个键释放事件,并将其发送到事件队列中。通过捕获这些事件,应用程序可以实时响应用户的键盘输入。 二、设置SDL键盘事件的循环 要使用SDL键盘事件,首先需要创建一个事件循环,以便不断地从事件队列中获取键盘事件。以下是一个简单的SDL键盘事件循环的示例代码: C++ SDL_Event event; while(SDL_PollEvent(&event)){ switch (event.type){ case SDL_KEYDOWN: 键按下事件 处理键按下事件的代码

break; case SDL_KEYUP: 键释放事件 处理键释放事件的代码 break; } } 以上代码片段中,使用了SDL_PollEvent函数从事件队列中获取事件,并通过switch语句根据事件的类型做出不同的响应。在键按下事件的处理代码块中,可以执行相应的操作;而在键释放事件的处理代码块中,可以执行其他相应的操作。 三、获取键盘按键的值 在键按下事件或键释放事件的处理代码块中,可以通过 event.key.keysym.sym来获取键盘按键的值。这个值是一个枚举类型SDL_Keycode的变量,表示触发事件的具体按键。下面是一个示例,展示如何使用SDL键盘事件解析键盘输入。 C++ SDL_Event event; while(SDL_PollEvent(&event)){

44键盘编码

实验十二4*4矩阵键盘 一、设计功能 按下按键,通过数码管显示键值; 二、电路连接 注意事项: 实际键盘按键在按下与放开时,0-1之间并非平滑过渡,在闭合与释放的过程中可能存在抖动,从而造成判断误差。解决方法是:在检测到有按键后,延时一段时间(与按键的机械性能有关,一般取10ms),再读入按键值,如果还为有效值,则判定为有按键按下。 一、实验代码 1. key.h头文件 #ifndef __key4_H #define __key4_H unsigned char KEY=16; #define keyport PORTC #define keytris TRISC rom unsigned char KEYCODE[]= //定义数码管键位 { 0xEE,0xDE,0xBE,0x7E,

0xED,0xDD,0XBD,0x7D, 0xEB,0xDB,0xBB,0x7B, 0xE7,0xD7,0xB7,0x77 }; unsigned char key(unsigned char scan_range) { unsigned char i; unsigned char KeyTemp; while(1) { keytris = 0xF0; //配置RB0..3为输出,RB4..7为输入keyport = 0xF0; //RB0..3输出低电平,RB4..7输出高电平if(0xF0 != (keyport & 0xF0)) //根据高四位判断是否有键按下{ Delay1KTCYx(20); //延时10ms去抖动 if(0xF0 != (keyport & 0xF0)) //判断是否真的按下 { //读取当前高四位状态值存储到临时变量中KeyTemp = keyport& 0xF0; keytris = 0x0F; //交换配置RB0..3为输入,RB4..7为输出keyport = 0x0F; //RB0..3输出高电平,RB4..7输出低电平//读取当前低四位状态值与上次读的值进行逻辑或运算 KeyTemp |= (keyport & 0x0F); for(i=0;i

ASCII码表和键盘键码表(完整珍藏版)

表一: ASCII码表 (完整版 ) ASCII 值字符ASCII 值字符ASCII 值字符ASCII 值字符0NUT32(space)64@96、1SOH33!65A97a 2STX34”66B98b 3ETX35#67C99c 4EOT36$68D100d 5ENQ37%69E101e 6ACK38&70F102f 7BEL39,71G103g 8BS40(72H104h 9HT41)73I105i 10LF42*74J106j 11VT43+75K107k 12FF44,76L108l 13CR45-77M109m 14SO46.78N110n 15SI47/79O111o 16DLE48080P112p 17DCI49181Q113q 18DC250282R114r 19DC351383X115s 20DC452484T116t 21NAK53585U117u 22SYN54686V118v 23TB55787W119w 24CAN56888X120x 25EM57989Y121y 26SUB58:90Z122z 27ESC59;91[123{ 28FS60<92/124| 29GS61=93]125} 30RS62>94^126~ 31US63?95—127DEL 注:特殊控制字符所代表含义 NUL 空VT垂直制表SYN空转同步HT横向列表SOH 标题开始FF 走纸控制ETB信息组传送结束LF换行 STX 正文开始CR 回车CAN 作废GS组分隔符ETX正文结束SO 移位输出EM纸尽NAK否定EOY传输结束SI移位输入SUB换置US单元分隔符ENQ询问字符DLE空格ESC换码DEL删除 ACK承认BS 退一格FS文字分隔符RS记录分隔符DC1 设备控制 1DC2 设备控制 2DC3 设备控制 3DC4 设备控制 4

VB键盘常量大全个虚拟键码

Public Const VK_RBUTTON = &H2 Public Const VK_CANCEL = &H3 Public Const VK_MBUTTON = &H4 Public Const VK_BACK = &H8 Public Const VK_TAB = &H9 Public Const VK_CLEAR = &HC Public Const VK_RETURN = &HD Public Const VK_SHIFT = &H10 Public Const VK_CONTROL = &H11 Public Const VK_MENU = &H12 Public Const VK_PAUSE = &H13 Public Const VK_CAPITAL = &H14 Public Const VK_ESCAPE = &H1B Public Const VK_SPACE = &H20 Public Const VK_PRIOR = &H21 Public Const VK_NEXT = &H22 Public Const VK_END = &H23 Public Const VK_HOME = &H24 Public Const VK_LEFT = &H25 Public Const VK_UP = &H26 Public Const VK_RIGHT = &H27 Public Const VK_DOWN = &H28 Public Const VK_EXECUTE = &H2B

Public Const VK_PRINT = &H2A Public Const VK_L = &H4C

相关文档