前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >keyboard scan code 表

keyboard scan code 表

作者头像
战神伽罗
发布2019-07-24 14:35:20
1.3K0
发布2019-07-24 14:35:20
举报

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

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

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

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

1、scan code 集

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

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

2、小键盘 scan code 表

key

mark(Hex)

break(Hex)

描述

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

mark(Hex)

break(Hex)

描述

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

mark(Hex)

break(Hex)

描述

<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 码

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、scan code 集
  • 2、小键盘 scan code 表
  • 3、附加键 scan code 表
  • 4、功能键 scan code 表
  • 5、主键盘 scan code 表
    • (1)按下 <CapsLock> 键后,再输入 abcd 键,再按 <CapsLock> 键
      • (2)按着 <L-shift> 或 <R-shift> 不放,再按 abcd 键,再放开 <L-shift> 或 <R-shift> 键
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档