键盘扫描码(表格)

别等时光非礼了梦想. 提交于 2019-12-18 04:51:22

转载: http://www.mouseos.com/os/doc/scan_code.html

当按下一键时,产生 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:由 e0e1 或 e2 引导
  • 特殊的 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 码

 

转载: http://www.mouseos.com/os/doc/scan_code.html

当按下一键时,产生 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:由 e0e1 或 e2 引导
  • 特殊的 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 码

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!