Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PRINT.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.1 Mб
Скачать

40. Типовые устройства ввода

1. Клавиатура

В настоящее время клавиатура (Keyboard) все еще остается основным устройством ввода информации в компьютер.

Клавиатура персонального компьютера представляет собой унифицированное устройство, которое подсоединяется к системной плате при помощи стандартного разъема. Обычно 5-контактным разъема типа DIN (Deutsche Industrie Norm) или типа Mini DIN. Поскольку разъемы Mini DIN впервые были использованы в компьютерах Intel PS/2, эти разъемы большей частью так и называют: разъемы или порты PS/2. Однако в последнее время подключение клавиатуры все чаще происходит через разъемы типа USB.

Блок-схема связи клавиатуры с системной платой и монитором компьютера приведена на рис.XV.1.

Н ажатием клавиши клавиатуры пользователь подает сигнал во внутренний контроллер клавиатуры, обычно реализуемый в виде специальной микросхемы типа 8049. При поступлении этого сигнала, контроллер клавиатуры генерирует некоторый пакет данных, называемый скэн-кодом (scan-code), который определяется порядковым номером расположения клавиши на клавиатуре. Для увеличения надежности ввода, скэн-код состоит как бы из двух частей, образующих непрерывную цепочку битов: кода нажатия и кода освобождения. Код нажатия генерируется при нажатии клавиши и представляет собой один байт, код которого определяет порядковый номер нажатой клавиши. Код освобождения генерируется при отпускании клавиши и представляет собой два байта. Первый байт всегда равен F0h, а второй – повторяет код порядкового номера нажатой клавиши. Сами же номера клавиш назначаются фирмой-изготовителем.

При удержании клавиши в нажатом состоянии, через некоторое время клавиатура начинает автоповтор передачи скэн-кода нажатия этой клавиши. Задержка автоповтора (typematic delay) и скорость автоповтора (typematic rate) программируются и, следовательно, интерфейс между внутренним контроллером клавиатуры и системной платой – двунаправленный. От клавиатуры передается информация о нажатии/отпускании клавиш, а передача информации к клавиатуре используется для управления светодиодными индикаторами ее состояния и программирования параметров (автоповтор, выбор таблиц скэн-кодов, а также управление режимом сканирования матрицы клавиш и запуск диагностического теста).

Формируемый контроллером клавиатуры скэн-код подается на специальный контроллер интерфейса клавиатуры на системной плате. Когда скэн-код поступает в этот контроллер, инициируется аппаратное прерывание IRQ1 (вектор 09h). Процессор прекращает выполнение текущей программы, и управление передается на процедуру, анализирующую скэн-код. Данное прерывание обслуживается специальной программой, входящей в состав ROM BIOS (BIOS INT 09h). Процедура прерывания преобразует, поступающие с клавиатуры скэн-коды, в специальный двухбайтовый код. Младший из этих двух байтов для алфавитно-цифровых клавиш содержит ASCII-код, соответствующий изображенному на клавише знаку. Этот байт называется главным. Старший байт - вспомогательный – содержит исходный скэн-код нажатия. При нажатии одиночной клавиши, относящейся к функциональным или служебным клавишам, или при одновременном нажатии некоторых клавиш главный байт содержит не ASCII-код, а 0. Это позволяет проверить важный факт, свидетельствующий о том, что при нажатии в данный момент клавиша не относится к алфавитно-цифровым клавишам. Вспомогательный байт при этом содержит уникальный номер, совпадающий со скэн-кодом нажатой клавиши, или же он соответствует определенной комбинации одновременно нажатых клавиш. Сочетание главного и вспомогательного кода, когда первый из них равен 0, называют расширенным ASCII-кодом. При поступлении скэн-кода от клавиш <Alt>, <Ctrl>, <Shift> или <CapLock>, изменение статуса записывается в RAM. При этом обрабатывающая процедура сначала определяет установку клавиш и переключателей, чтобы правильно получить вводимый код (например, «а» или «А»). Затем введенный код помещается в буфер клавиатуры, представляющий собой область памяти, способную запомнить до 15 вводимых символов, пока прикладная программа не может их обработать. Этот буфер организован по принципу FIFO (первый вошел – первый вышел).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]