博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
keyboard scan code 表
阅读量:4969 次
发布时间:2019-06-12

本文共 2587 字,大约阅读时间需要 8 分钟。

当按下一键时,产生 mark 码,产生一次 IRQ1 中断。

放开键时,产生 break 码,产生一次 IRQ1 中断。

因此:当按下 键放开,实际上产生了两次 IRQ1 中断

break 是 mark 码的 bit7 置 得来,也就是: break = mark + 0x80

 

1scan code 

这里只说一般日常应用中的键盘码集 set 2(有 set 1set 2 以及 set 3

  • 基本 scan code:绝大多数 scan code 是 1 byte 的。
  • 扩展 scan code:由 e0、e1 或e2 引导
  • 特殊的 PrintScreen/SysRq 键:e0 2a e0 37
  • 物殊的 Pause/Break 键:e1 1d 45 e1 9d c5

 

 

2、小键盘 scan code 

key

markHex

breakHex

描述

NumLock

45

c5

break = mark + 0x80

/

e0 35

e0 b5

由 e0 引导出 extend scan code

*

37

b7

break = mark + 0x80

 

-

4a

ca

同上

7/Home

47

c7

同上

8/Up

48

c8

同上

9/PgUp

49

c9

同上

4/Left

4b

cb

同上

5

4c

cc

同上

6/Right

4d

cd

同上

1/End

4f

cf

同上

2/Down

50

d0

同上

3/PgDn

51

d1

同上

0/Ins

52

d2

同上

./Del

53

d3

同上

+

4e

ce

同上

Enter

e0 1c

e0 9c

extend scan code

小键盘中的<home><Up><PgUp><Left><Right><End><Down><PgDn><Ins><Del>由 NumLock 按下后再按得来。

因此,会产生一个 <NumLock> mark 码后,再产生上述的mark 码。 释放 <NumLock> 又产生一个 break码。

 

3、附加键 scan code 

key

markHex

breakHex

描述

PrintScreen/SysRq

e0 2a e0 37

e0 b7 e0 aa

extend scan code

Scroll Lock

46

c6

同上

Pause/Break

e1 1d 45 e1 9d c5

*

同上

 

Insert

e0 52

e0 d2

同上

Home

e0 47

e0 c7

同上

Page Up

e0 49

e0 c9

同上

Delete

e0 53

e0 d3

同上

End

e0 4f

e0 cf

同上

Page Down

e0 51

e0 d1

同上

left

e0 46

e0 c6

同上

right

e0 4d

e0 cd

同上

up

e0 48

e0 c8

同上

down

e0 50

e0 d0

同上

抱歉:我对 PrintScreen/SysRq 和 Pause/Break 的理解未透彻。在这不便讲解。

如果您知道,请留言赐教。

 

 

4、功能键 scan code 

key

markHex

breakHex

描述

<esc>

01

81

scan code

F1

3b

bb

同上

F2

3c

bc

同上

 

F3

3d

bd

同上

F4

3e

be

同上

F5

3f

bf

同上

F6

40

c0

同上

F7

41

c1

同上

F8

42

c2

同上

F9

43

c3

同上

F10

44

c4

同上

F11

57

d7

同上

F12

58

d8

同上

 

 

5、主键盘 scan code 

key

mark

 

break

 

key

mark

break

key

mark

break

key

mark

break

~/·

29

a9

<tab>

0f

8f

<scapslock>

3a

ba

<L-shift>

2a

aa

!/1

02

82

q

10

90

a

1e

9e

z

2c

ac

@/2

03

83

w

11

91

s

1f

9f

x

2d

ad

#/3

04

84

e

12

12

d

20

a0

c

2e

ae

$/4

05

85

r

13

93

f

21

a1

v

2f

af

%/5

06

86

t

14

94

g

22

a2

b

30

b0

^/6

07

87

y

15

95

h

23

a3

n

31

b1

&/7

08

88

u

16

96

j

24

a4

m

32

b2

*/8

09

89

i

17

97

k

25

a5

</,

33

b3

(/9

0a

8a

o

18

98

l

26

a6

>/.

34

b4

)/0

0b

8b

p

19

99

:/;

27

a7

?//

35

b5

_/-

0c

8c

{/[

1a

9a

"/'

28

a8

<R-shift>

36

b6

+/=

0d

8d

}/]

1b

9b

<Enter>

1c

9c

<L-ctrl>

1d

9d

|/\

2b

ab

 

 

 

 

 

 

<L-alt>

38

b8

<backspace>

0e

8e

 

 

 

 

 

 

<space>

39

b9

 

 

 

 

 

 

 

 

 

<R-alt>

e0 38

e0 b8

 

 

 

 

 

 

 

 

 

<R-ctrl>

e0 1d

e0 9d

若输入字符ABCD有两种方法

1)按下 <CapsLock> 键后,再输入 abcd 键,再按<CapsLock> 

这样会产生一个 <CapsLock> 键 mark 和 break码,然后依次是 abcd 的 mark 和 break 码, 最后是<CapsLock> 的 mark 和 break 

 

2)按着 <L-shift> <R-shift> 不放,再按 abcd 键,再放开<L-shift> <R-shift> 

这样会产生一个 <L-shift> <R-shift> 键的 mark 码,然后依次是 abcd 的 mark和 break 码,最后是一个 <L-shift> <R-shift> 键的 break 

 

转载于:https://www.cnblogs.com/MaxWoods/archive/2013/06/14/3135658.html

你可能感兴趣的文章
更新.net core 3.0,dotnet ef命令无法使用的解决办法
查看>>
React躬行记(13)——React Router
查看>>
前端利器躬行记(1)——npm
查看>>
前端利器躬行记(2)——Babel
查看>>
前端利器躬行记(3)——webpack基础
查看>>
前端利器躬行记(4)——webpack进阶
查看>>
前端利器躬行记(5)——Git
查看>>
前端利器躬行记(6)——Fiddler
查看>>
每次阅读外文技术资料都头疼,终于知道原因了。
查看>>
zabbix短信网关调用问题总结
查看>>
130242014034-林伟领-实验一
查看>>
Forbidden You don't have permission to access / on this server.
查看>>
Windows server 2008 R2中安装MySQL !
查看>>
Intellij Idea新建web项目(转)
查看>>
raspberry 安装apache2,使其支持ssl ,并创建自签名证书
查看>>
Trie树:应用于统计和排序
查看>>
C语言结构体和函数
查看>>
用JAVA编写浏览器内核之实现javascript的document对象与内置方法
查看>>
linux 命令之top
查看>>
洛谷 [P3033] 牛的障碍
查看>>