Основные части клавиатуры
Информация - Компьютеры, программирование
Другие материалы по предмету Компьютеры, программирование
овной клавиатуры.
2. Принципы работы клавиатуры
При вводе информации с клавиатуры каждый введенный символ преобразуется в соответствующий двоичный код, который передается в компьютер для последующей его обработки. При выводе информации осуществляется обратное преобразование, и двоичный код преобразуется во внешнее его представление.
Для кодирования символов в ЭВМ используется специальная таблица кодов ASCII (American Standart Code for Information Interchange американский стандарт кодов для обмена информацией), применяемая на большинстве компьютеров. Таблица кодировки обеспечивает взаимное соответствие изображений символов на экране с их числовыми кодами, и ставит в соответствие каждому символу семиразрядный двоичный код.
В ASCII-кодировке представлены 128 символов, которые делятся на две группы:
- символы пишущей машинки, т.е. прописные и строчные латинские буквы, цифры, и специальные знаки;
- управляющие символы, используемые для передачи команд в коммуникационных программах.
Семи разрядов ASCII-кода совершенно недостаточно для представления символов языков с алфавитом, отличным от латинского. Поэтому в большинстве стран используются свои собственные версии кодировок, основанные на ASCII.
При нажатии клавиши клавиатура посылает процессору сигнал прерывания, что заставляет процессор приостановить свою работу и переключиться на программу обработки прерывания клавиатуры.
При этом клавиатура в своей собственной специальной памяти (буфере) запоминает, какая клавиша была нажата. После передачи кода нажатой клавиши процессору эта информация из буфера клавиатуры исчезает.
Буфер клавиатуры рассчитан на хранение до 20 кодов нажатых клавиш и логически организован в виде циклического списка-очереди. Код только что нажатой клавиши размещается в конце списка, если он не пуст. Если на момент запроса буфер пуст, то программа переходит в состояния ожидания ввода реального символа. Наличие буфера позволяет нажимать клавиши на клавиатуре с упреждением (заранее), что ускоряет работу на ЭВМ.
Каждой клавише на клавиатуре соответствует семиразрядный код сканирования скэн-код. Перечень этих кодов для 83-клавишной клавиатуры приведен в таблице.
Коды сканирования усовершенствованной 101-клавишной клавиатуры полностью совместимы с кодами 83-клавишной клавиатуры, а дополнительные клавиши кодируются оставшимися числами семиразрядного кода.
Кроме нажатия клавиатура отмечает также и отпускание каждой клавиши, посылая процессору свой сигнал прерывания с соответствующим кодом. При нажатии клавиши клавиатура генерирует однобайтный код нажатия, а при отпускании также однобайтный код отпускания. Код нажатия клавиши совпадает с кодом сканирования. Код отпускания отличается от соответствующего кода нажатия тем, что он больше его на 128.
Таким образом, компьютер всегда “знает“, нажата ли клавиша или она уже отпущена. Это свойство используется при переходе на другой регистр. Кроме того, если клавиша нажата дольше определенного времени, (обычно около половины секунды), то клавиатура генерирует повторные коды нажатия этой клавиши.
Таблица. Коды сканирования клавиш 83-клавишной клавиатуры
КлавишаКод сканированияEsc11 !22 @33 #44 $55 ^77 &88 *99 (100 )11- _12= +13Backspace14Tab15Q16W17E18R19T20Y21U22I23O24P25[ {26] }27Enter28Ctrl29A30S31D32F33G34H35J36K37L38; :39 “40` ~41Shift (левая)42
Продолжение таблицы. Коды сканирования клавиш 83-клавишной клавиатуры
КлавишаКод сканирования\ |43Z44X45C46V47B48N49M50, 52/ ?53Shift (правая)54PrtScr55Alt56Space57Caps Lock58F159F260F361F462F563F664F765F866F967F1068Num Lock69Scroll Lock70Home 771^ 872PgUp 973- (на малой цифр. клав-ре)74< 4755 (на малой цифр. клав-ре)76> 677+ (на малой цифр. клав-ре)78End 179v 280PgDown 381Ins 082Del .83
Драйвер клавиатуры различает следующие типы клавиш:
- клавиши-переключатели;
- кодовые клавиши.
Клавиши-переключатели служат для изменения состояния клавиатуры. К клавишам-переключателям относятся клавиши Ins, Caps Lock, Num Lock, Scroll Lock, Alt, Ctrl, Shift (левая и правая), а также комбинация Ctrl+NumLock. Для хранения статуса (состояния) клавиш-переключателей в области данных BIOS, находящейся в ОЗУ, зарезервировано два байта.
Если драйвер клавиатуры получил код нажатия (отпускания) клавиши-переключателя, то соответствующий бит статуса устанавливается в единицу (нуль). В результате появляется возможность распознать одновременное нажатие клавиши-переключателя и какой-либо другой клавиши. Дополнительно к этому за каждой логически фиксирующейся клавишей-переключателем (Ins, Caps Lock и Num Lock) закреплен еще один бит в статусе, содержимое которого определяет состояние соответствующего режима (вставки, ввода прописных букв и фиксации цифр). При включении режима указанный бит устанавливается драйвером клавиатуры в единицу, а при выключении сбрасывается.
К кодовым клавишам относятся все остальные клавиши. Они служат для непосредственного ввода символов.
При считывании драйвером клавиатуры нажатия такой клавиши в компьютер передается двухбайтовый код, называемый двухбайтовым кодом символа. Структура этого кода определяется в соответствии с расширенным кодом ASCII.
Если была нажата клавиша на клавиатуре пишущей машинки и клавиатура находится только на нижнем или верхнем регистре, а также если была нажата клавиша на малой цифровой клавиатуре (только в режиме фиксации цифр), то первым (младшим) байтом двухбайтового кода символа будет расширенный код ASCII соответствующего символа, а вторым (старшим )