Основы микропроцессорной техники


Средства интерфейса пользователя - часть 5


Он сводится к постоянному сканированию (последовательному опросу) всех клавиш (обычно применяется 101-клавишная клавиатура) и к пересылке в компьютер номера нажатой клавиши (8-битного скэн-кода), причем как при ее нажатии, так и при отпускании. При отпускании клавиши ее скэн-код предваряется посылкой кода F0. Если клавиша удерживается длительное время, то через заданный интервал посылки ее скэн-кодов повторяются с заданной частотой. Если одновременно нажимается более одной клавиши, то повторяется посылка кода только последней из нажатых клавиш.

При получении скэн-кода контроллером 8042 он формирует сигнал запроса аппаратного прерывания IRQ1. Это приводит к вызову программы обработки нажатия клавиши, находящейся в BIOS. Служебные клавиши (Shift, Сtrl, Alt) и переключающие клавиши (Caps Lock, Insert, Num Lock) обрабатываются специальным образом, а в случае нажатия символьных клавиш их скэн-коды преобразуются в коды соответствующих символов и помещаются в буфер клавиатуры. Буфер клавиатуры — это 16-байтная область памяти, организованная по принципу FIFO «первый вошел — первый вышел», в которой хранятся коды нажатых клавиш до тех пор, пока их сможет обработать программа.

Современные клавиатуры персональных компьютеров имеют 101 или 102 клавиши. Имеются «расширенные» модели с количеством клавиш до 122 и «усеченные» модели с количеством клавиш около 90, применяемые в портативных компьютерах типа ноутбук.

Начиная с компьютера PC AT, клавиатура может не только передавать информацию, но и принимать ее. Эта возможность используется для пересылки в клавиатуру команд, устанавливающих режимы ее работы (например, скорость повтора ввода символов при удерживаемой клавише или временная задержка перед повтором).

Компьютерная мышь, служащая для управления курсором, подключается к компьютеру через стандартный последовательный интерфейс RS-232C (о нем подробнее — в отдельной главе). Для передачи компьютеру информации о перемещении мыши используется 3-байтовый формат. Два байта при этом содержат информацию о перемещении мыши по вертикали и по горизонтали, а один байт — о состоянии кнопок мыши.


Начало  Назад  Вперед