Клавиатура содержит микропроцессор, который воспринимает каждое нажатие на клавишу и выдает скан-код в порт микросхемы интерфейса с периферией, расположенной на системной плате. Скан-код это однобайтное число, младшие 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 или расширенным кодом.
Клавиши пишущей машинки
Клавиша/Код нажатия | Клавиша/Код нажатия | Клавиша/Код нажатия |
"1" 2 | "T" 20 | "L" 38 |
"2" 3 | "Y" 21 | ";" 39 |
"3" 4 | "U" 22 | "'" 40 |
"4" 5 | "I" 23 | "`" 41 |
"5" 6 | "O" 24 | "\" 43 |
"6" 7 | "P" 25 | "Z" 44 |
"7" 8 | "[" 26 | "X" 45 |
"8" 9 | "]" 27 | "C" 46 |
"9" 10 | "A" 30 | "V" 47 |
"0" 11 | "S" 31 | "B" 48 |
"-" 12 | "D" 32 | "N" 49 |
"=" 13 | "F" 33 | "M" 50 |
"Q" 16 | "G" 34 | "," 51 |
"W" 17 | "H" 35 | "." 52 |
"E" 18 | "J" 36 | "/" 53 |
"R" 19 | "K" 37 | Пpoбeл 57 |
Управляющие клавиши
Esc - 1 | Ctrl – 29 | Alt - 56 |
BackSpace - 14 | left shift - 42 | CapsLock - 58 |
Tab - 15 | right shift - 42 | NumLock - 58 |
Enter - 28 | PrtSc – 55 | ScrollLock - 70 |
Функциональные клавиши
F1 - 59 | F5 - 63 | F9 - 67 |
F2 - 60 | F6 - 64 | F10 - 68 |
F3 - 61 | F7 - 65 | |
F4 - 62 | F8 - 66 |
Cвoднaя тaблицa кoдoв 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 0C 00001100 < 60 3C 00111100
13 0D 00001101 = 61 3D 00111101
14 0E 00001110 > 62 3E 00111110
15 0F 00001111 ? 63 3F 00111111
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 1C 00011100 L 76 4C 01001100
29 1D 00011101 M 77 4D 01001101
30 1E 00011110 N 78 4E 01001110
31 1F 00011111 O 79 4F 01001111
п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 2C 00101100 \ 92 5C 01011100
- 45 2D 00101101 ] 93 5D 01011101
. 46 2E 00101110 ^ 94 5E 01011110
/ 47 2F 00101111 _ 95 5F 01011111
` 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 9C 10011100
d 100 64 01100100 Э 157 9D 10011101
e 101 65 01100101 Ю 158 9E 10011110
f 102 66 01100110 Я 159 9F 10011111
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 6C 01101100 e 165 A5 10100101
m 109 6D 01101101 ж 166 A6 10100110
n 110 6E 01101110 з 167 A7 10100111
o 111 6F 01101111 и 168 A8 10101000
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 7C 01111100 Ќ 181 B5 10110101
} 125 7D 01111101 Ћ 182 B6 10110110
~ 126 7E 01111110 Џ 183 B7 10110111
127 7F 01111111 ђ 184 B8 10111000
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 8C 10001100 ќ 197 C5 11000101
H 141 8D 10001101 ћ 198 C6 11000110
O 142 8E 10001110 џ 199 C7 11000111
П 143 8F 10001111 … 200 C8 11001000
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
Визуализация данных (Лекция 10)
Устройство видеомонитора.
Ключевым элементом видеомонитора является электронно-лучевая трубка (ЭЛТ). С помощью ЭЛТ отображается информация, содержащаяся в видеосигнале.
Отрицательно заряженный катод нагревают до тех пор, пока возбужденные электроны не создадут расширяющегося облака (электроны отталкиваются друг от друга, так как имеют одинаковый заряд). Эти электроны притягиваются к сильно заряженному положительному аноду. На внутреннюю сторону расширенного конца ЭЛТ нанесен люминофор. Если бы электронам ничто не препятствовало, то в результате их воздействия на люминофор весь экран ЭЛТ засветился бы ярким светом. Однако облако электронов с помощью электронных линз фокусируется в узкий, строго параллельный пучок. Теперь сфокусированный электронный луч дает одно яркое пятно в центре ЭЛТ. Луч отклоняется или позиционируется влево или вправо от центра и (или) выше или ниже центра с помощью усилителей горизонтального и вертикального отклонения.
В растровом дисплее луч может отклоняться только в строго определенные позиции на экране, образующие своеобразную мозаику. Эта мозаика составляет видеоизображение. Люминофорное покрытие на экране растровой ЭЛТ представляет собой множество тесно расположенных мельчайших точек, куда может позиционироваться луч, образуя мозаику.
В цветной ЭЛТ находятся три электронные пушки, по одной на каждый основной цвет: красный, зеленый и синий. Электронные пушки часто объединены в блок, соответствующий подобному блоку точек красного (R - red), зеленого (G - green) и синего (B - blue), люминофоров на экране ЭЛТ.
Эволюция видеоадаптеров
Изначально персональные компьютеры IBM PC комплектовались видеоадаптером MDA с монохромным дисплеем. Этот адаптер имел небольшую разрешающую способность, не мог отображать графическую информацию и был монохромным. Через некоторое время небольшая фирма Hercules Computer Technology выпустила монохромный видеоадаптер Hercules, который имел возможность вывода графики и имел большую разрешающую способностью CGA, стал первым цветным видеоадаптером фирмы IBM. Он уже обеспечивал возможность отображать цветную графическую и текстовую информацию, но имел слишком маленькую разрешающую способность. Затем IBM выпустила EGA и VGA. Они созданы на другой элементной базе и имеют лучшую, чем у CGA, разрешающую способность при большем числе отображаемых цветов.
В последнее время различные фирмы-производители видеоадаптеров выпустили большое количество плат Super VGA. Фирма IBM начала выпуск нового видеоадаптера XGA.
Видеоадаптер содержит встроенный графический процессор, значительно увеличивающий его возможности и скорость работы. XGA аппаратно поддерживает перерисовку изображений в окнах экрана. При обмене данными между видеопамятью и основной памятью сам XGA вместо центрального процессора реализует управление шиной данных, что позволяет быстро передавать изображение на экран. Следует также отметить, что предусмотрена совместимость видеоадаптеров VGA и XGA на уровне регистров. Базовая конфигурация XGA содержит 512 Кбайт видеопамяти, что обеспечивает разрешение 1024*768 пикселов при 16 цветах. Увеличение объема видеопамяти до 1 Мбайта при той же разрешающей способности позволяет получить 256 цветов. Современные мониторы поддерживают большое количество стандартов и благодаря огромным объёмам видеопамяти позволяют вывод изображения высокой чёткости (несколько миллионов точек) в 32-битной палитре с 16 миллионами цветов.