键盘机制
每次按下键盘时会产生按下码及释放码
扫描码表
键 | 按下码 | 释放码 | 键 | 按下码 | 释放码 | 键 | 按下码 | 释放码 |
A | 1E | 9E | 9 | 0A | 8A | [ | 1A | 9A |
B | 30 | B0 | ` | 29 | 89 | INSERT | E0,52 | E0,D2 |
C | 2E | AE | - | 0C | 8C | HOME | E0,47 | E0,97 |
D | 20 | A0 | = | 0D | 8D | PG UP | E0,49 | E0,C9 |
E | 12 | 92 | / | 2B | AB | DELETE | E0,53 | E0,D3 |
F | 21 | A1 | BKSP | 0E | 8E | END | E0,4F | E0,CF |
G | 22 | A2 | SPACE | 39 | B9 | PG DN | E0,51 | E0,D1 |
H | 23 | A3 | TAB | 0F | 8F | U ARROW | E0,48 | E0,C8 |
I | 17 | 97 | CAPS | 3A | BA | L ARROW | E0,4B | E0,CB |
J | 24 | A4 | L SHFT | 2A | AA | D ARROW | E0,50 | E0,D0 |
K | 25 | A5 | L CTRL | 1D | 9D | R ARROW | E0,4D | E0,CD |
L | 26 | A6 | L GUI | E0,5B | E0,DB | NUM | 45 | C5 |
M | 32 | B2 | L ALT | 38 | B8 | KP / | E0,35 | E0,B5 |
N | 31 | B1 | R SHFT | 36 | B6 | KP * | 37 | B7 |
O | 18 | 98 | R CTRL | E0,1D | E0,9D | KP - | 4A | CA |
P | 19 | 99 | R GUI | E0,5C | E0,DC | KP + | 4E | CE |
Q | 10 | 19 | R ALT | E0,38 | E0,B8 | KP EN | E0,1C | E0,9C |
R | 13 | 93 | APPS | E0,5D | E0,DD | KP . | 53 | D3 |
S | 1F | 9F | ENTER | 1C | 9C | KP 0 | 52 | D2 |
T | 14 | 94 | ESC | 01 | 81 | KP 1 | 4F | CF |
U | 16 | 96 | F1 | 3B | BB | KP 2 | 50 | D0 |
V | 2F | AF | F2 | 3C | BC | KP 3 | 51 | D1 |
W | 11 | 91 | F3 | 3D | BD | KP 4 | 4B | CB |
X | 2D | AD | F4 | 3E | BE | KP 5 | 4C | CC |
Y | 15 | 95 | F5 | 3F | BF | KP 6 | 4D | CD |
Z | 2C | AC | F6 | 40 | C0 | KP 7 | 47 | C7 |
0 | 0B | 8B | F7 | 41 | C1 | KP 8 | 48 | C8 |
1 | 02 | 82 | F8 | 42 | C2 | KP 9 | 49 | C9 |
2 | 03 | 83 | F9 | 43 | C3 | ] | 1B | 9B |
3 | 04 | 84 | F10 | 44 | C4 | ; | 27 | A7 |
4 | 05 | 85 | F11 | 57 | D7 | ' | 28 | A8 |
5 | 06 | 86 | F12 | 58 | D8 | , | 33 | B3 |
6 | 07 | 87 | PRNT | E0,2A, | ?E0,B7, | . | 34 | B4 |
7 | 08 | 88 | SCROLL | 46 | C6 | / | 35 | B5 |
8 | 09 | 89 | PAUSE | E1,1D,45 | ? | ? | ? | ? |
整理出字母及数字
1-02 2-03 3-04 4-05 5-06 6-07 7-08 8-09 9-0A 0-0B
Q-10 W-11 E-12 R-13 T-14 Y-15 U-16 I-17 O-18 P-19
A-1E S-1F D-20 F-21 G-22 H-23 J-24 K-25 L-26
Z-2C X-2D C-2E V-2F B-30 N-31 M-32
我们根据按下码从小到大作为下标,排列出对应的字母及数字,组成一维数组:
char ch[51]=
{'A','B','1','2','3','4','5','6','7','8','9','0','C','D','E','F','q','w','e','r','t','y','u','i','o','p','G','H','I','J','a','s','d','f','g','h','j','k','l','K','L','M','N','O','z','x','c','v','b','n','m'} ;
按下码对应的是全部小写字母,在按下码不连贯的地方用大写字母显示以便程序的调试。
以后只要知道按下码就可以计算出数组下标,从而查出对应的字。