|
В начало
Периферийные устройства (Лекция)ПЛАН ЛЕКЦИИ – Клавиатура и управление клавиатурой – Сводная таблица скан-кодов – Сводная таблица кодов ASCII – Сводная
таблица расширенных кодов Клавиатура и управление клавиатурой
Клавиатура содержит микропроцессор, который воспринимает
каждое нажатие на клавишу и выдает скан-код в порт микросхемы интерфейса с
периферией, расположенной на системной плате. Скан-код это однобайтное число,
младшие 7 битов которого представляют идентификационный номер, присвоенный
каждой клавише. На всех машинах, до АT, старший бит
кода говорит о том, была ли клавиша нажата (бит = 1, код нажатия) или
освобождена (бит = 0, код освобождения). Например, 7-битный скан-код клавиши B
- 48, или 110000 в двоичной системе. Когда эта клавиша нажимается, то в порт А посылается код 10110000, а когда ее отпустили – код
00110000. Таким образом, каждое нажатие на клавишу дважды регистрируется в
микросхеме 8255. И каждый раз микросхема 8255 выдает подтверждение
микропроцессору клавиатуры. АT работает немного по-другому,
посылая в обоих случаях один и тот же скан-код, но предваряя его кодом F0H,
когда клавиша отпускается. Когда скан-код выдается в порт, то вызывается
прерывание клавиатуры (INT 9). Процессор моментально прекращает свою работу и
выполняет процедуру, анализирующую скан-код. Когда поступает код от клавиши
сдвига или переключателя, то изменение статуса записывается в память. Во всех
остальных случаях скан-код трансформируется в код символа, при условии, что он
подается при нажатии клавиши (в противном случае, скан-код отбрасывается). После этого введенный код помещается в буфер клавиатуры,
который является областью памяти, способной запомнить до 15 вводимых символов,
пока программа слишком занята, чтобы обработать их. Имеется два типа кодов символов, коды АSСII и
расширенные коды. Коды АSСII – это байтные числа,
которые соответствуют расширенному набору кодов АSСII для IBM РС. Для IBM РС
этот набор включает обычные символы пишущей машинки, а также ряд специальных
букв и символов псевдографики. АSСII коды включают
также 32 управляющих кода, которые обычно используются для передачи команд
периферийным устройствам, а не выводятся как
символы на экране; однако каждый из них имеет соответствующий символ,
который может быть выведен на дисплей с использованием прямой адресации
дисплейной памяти Второй набор кодов, расширенные коды, присвоен клавишам или
комбинациям клавиш, которые не имеют представляющего их символа ASCII, таким
как функциональные клавиши или комбинации с клавишей Alt. Расширенные коды имеют длину 2
байта, причем первый байт всегда ASCII 0. Второй байт – номер расширенного
кода. Например, код 0:30 представляет Alt-A.
Начальный ноль позволяет программе определить - принадлежит ли данный код
набору АSСII или расширенному набору. Имеется несколько комбинаций клавиш, которые выполняют
специальные функции и не генерируют скан-коды. Эти комбинации включают <Ctrl-Break>, <Ctrl-Alt-Del>
и <РrtSс>. Эти исключения приводят
к заранее предопределенным результатам. Все остальные нажатия клавиш должны
интерпретироваться программой. Сводная таблица скан-кодов
Каждая клавиша генерирует два типа скан-кодов, "код нажатия"
– когда клавиша нажимается, и "код освобождения" - когда клавиша
отпускается. Используется одна и та же цепочка битов для кодов нажатия и освобождения,
но коды освобождения состоят из двух байтов, первый из которых всегда равен
0F0H. Прерывание клавиатуры отбрасывает этот код и он не связывается ни с каким
кодом АSСII или расширенным кодом. Таблица. Клавиши пишущей машинки
Управляющие клавиши
Функциональные клавиши
Сводная таблица кодов
ASCII
Любой код АSCII от 1 до 255 может быть введен
с клавиатуры, если держать нажатой клавишу Alt при наборе номера кода на дополнительной
клавиатуре (с соответственно установленным режимом NumLock). Когда клавиша Alt затем освобождается, то код вводится. Символ 10-ный 16-pичный
двоичный Символ 10-ный
16-pичный двоичный (null) 0
00 00000000 0
48 30 00110000 1 01
00000001 1 49
31 00110001 2 02
00000010 2 50
32 00110010 3 03
00000011 3 51
33 00110011 4 04
00000100 4 52
34 00110100 5 05
00000101 5 53
35 00110101 6 06
00000110 6 54
36 00110110 7 07
00000111 7 55
37 00110111 8 08
00001000 8 56
38 00111000 9 09
00001001 9 57
39 00111001 10 0A
00001010 : 58
3A 00111010 11 0B
00001011 ; 59
3B 00111011 12 13 0D
00001101 = 61
3D 00111101 14 0E
00001110 > 62
3E 00111110 15 16 10
00010000 @ 64
40 01000000 17 11
00010001 A
65 41 01000001 18 12
00010010 B 66
42 01000010 19 13
00010011 C 67
43 01000011 20 14
00010100 D 68
44 01000100
21 15 00010101 E
69 45 01000101 22 16
00010110 F 70
46 01000110 23 17
00010111 G 71
47 01000111 24 18
00011000 H
72 48 01001000 25 19
00011001 I 73
49 01001001 26 1A
00011010 J 74
4A 01001010 27 1B
00011011 K 75
4B 01001011 28 29 1D
00011101 M 77
4D 01001101 30 1E
00011110 N 78
4E 01001110 31 пpoбeл 32
20 00100000 P
80 50 01010000 !
33 21 00100001 Q
81 51 01010001 "
34 22 00100010 R
82 52 01010010 #
35 23 00100011 S
83 53 01010011 $
36 24 00100100 T
84 54 01010100 %
37 25 00100101 U
85 55 01010101 &
38 26 00100110 V
86 56 01010110 '
39 27 00100111 W
87 57 01010111 (
40 28 00101000 X
88 58 01011000 )
41 29 00101001 Y
89 59 01011001 * 42
2A 00101010 Z
90 5A 01011010 +
43 2B 00101011 [
91 5B 01011011 ,
44 -
45 2D 00101101 ]
93 5D 01011101 .
46 2E 00101110 ^
94 5E 01011110 /
47 `
96 60 01100000 Щ 153 99
10011001 a 97
61 01100001 Ъ 154 9A
10011010 b 98
62 01100010 Ы 155 9B
10011011 c 99
63 01100011 Ь 156 d 100
64 01100100 Э 157 9D
10011101 e 101
65 01100101 Ю 158 9E
10011110 f 102
66 01100110 Я 159 g 103
67 01100111 a
160 A0 10100000 h 104
68 01101000 б 161 A1
10100001 i 105
69 01101001 в 162 A2
10100010 j 106
6A 01101010 г 163 A3
10100011 k 107
6B 01101011 д 164
A4 10100100 l 108
m 109
6D 01101101 ж 166 A6
10100110 n 110
6E 01101110 з 167
A7 10100111 o 111
p
112 70 01110000 й 169
A9 10101001 q
113 71 01110001 к 170 AA
10101010 r 114
72 01110010 л 171 AB
10101011 s 115
73 01110011 м 172 AC
10101100 t 116
74 01110100 н 173
AD 10101101 u 117
75 01110101 o 174
AE 10101110 v 118
76 01110110 п 175
AF 10101111 w 119
77 01110111 €
176 B0 10110000 x
120 78 01111000 ‰
177 B1 10110001 y 121
79 01111001 Љ 178 B2
10110010 z
122 7A 01111010 ‹
179 B3 10110011 {
123 7B 01111011 Њ 180 B4
10110100 |
124 }
125 7D 01111101 Ћ 182 B6
10110110 ~
126 7E 01111110 Џ 183 B7
10110111 127 A 128
80 10000000 ‘
185 B9 10111001 Б 129
81 10000001 ’
186 BA 10111010 B
130 82 10000010 “
187 BB 10111011 Г 131
83 10000011 ”
188 BC
10111100 Д 132
84 10000100 †
189 BD 10111101 E
133 85 10000101 –
190 BE 10111110 Ж 134
86 10000110 –
191 BF 10111111 З 135
87 10000111 ѕ 192
C0 11000000 И 136
88 10001000 ™
193 C1 11000001 Й 137
89 10001001 љ 194
C2 11000010 K
138 8A 10001010 Ѓ 195
C3 11000011 Л 139
8B 10001011 њ 196
C4 11000100 M
140 H
141 8D 10001101 ћ 198
C6 11000110 O
142 8E 10001110 џ 199
C7 11000111 П 143
P
144 90 10010000 ѓ 201
C9 11001001 C
145 91 10010001 ›
202 CA 11001010 T
146 92 10010010 Ј 203 CB
11001011 У 147
93 10010011 Ѕ
204 CC 11001100 Ф 148
94 10010100 Ґ
205 CD 11001101 X 149
95 10010101 ¦
206 CE 11001110 Ц 150
96 10010110 §
207 CF 11001111 Ч 151
97 10010111 ‚
208 D0 11010000 Ш 152
98 10011000 „
209 D1 11010001 ‡
210 D2 11010010 щ 233
E9 11101001 «
211 D3 11010011 ъ 234
EA 11101010 ¬
212 D4 11010100 ы 235
EB 11101011
213 D5 11010101 ь 236
EC 11101100 ®
214 D6 11010110 э 237 ED
11101101 Ђ 215
D7 11010111 ю 238
EE 11101110 ©
216 D8 11011000 я 239 EF
11101111 ±
217 D9 11011001 E
240 F0 11110000 І 218
DA 11011010 e
241 F1 11110001 і 219
DB 11011011 Є 242 F2
11110010 ґ 220 DC
11011100 є 243
F3 11110011 µ
221 DD 11011101 Ї 244 F4
11110100 ¶
222 DE 11011110 ї 245
F5 11110101 ј 223
DF 11011111 Ў 246 F6
11110110 p
224 E0 11100000 ў 247
F7 11110111 c
225 E1 11100001 °
248 F8 11111000 т 226
E2 11100010 •
249 F9 11111001 у 227
E3 11100011 ·
250 FA 11111010 ф 228
E4 11100100 »
251 FB 11111011 x
229 E5 11100101 №
252 FC 11111100 ц 230
E6 11100110 ¤
253 FD
11111101 ч 231
E7 11100111
254 FE 11111110 ш 232 E8 11101000 255 FF 11111111 Сводная таблица расширенных кодов
Значение 2-гo
байта Соответствующие клавиши 15 Shift + Tab
("back-tab") 16-25 Alt-Q
- Alt-P (верхний pяд букв) 30-38 Alt-A
- Alt-L (средний pяд букв) 44-50 Alt-Z
- Alt-M (нижний pяд букв) 59-68 Функциональные клавиши F1 - F10 71 Home 72 Cursor-up
(стрелка вверх) 73 PgUp 75 Cursor-left (стрелка влево) 77 Cursor-right (стрелка вправо) 79 End
80 Cursor-down (стрелка вниз) 81 PgDn 82 Ins 83 Del 84-93 F1-F10
+ Shift 94-103 F1-F10
+ Ctrl 104-113 F1-F10 + Alt 114 Ctrl + PrtSc 115 Ctrl + Cursor-left 116 Ctrl + Cursor-right 117 Ctrl + End 118 Ctrl + PgDn 119 Ctrl + Home 120-131 Alt + 1 - Alt + = (верхний pяд) 132 Ctrl + PgUp |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||