МПС
Периферийные устройства (Лекция)ПЛАН ЛЕКЦИИ – Клавиатура и управление клавиатурой – Сводная таблица скан-кодов – Сводная таблица кодов 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 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||