Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура ЭВМ_1.doc
Скачиваний:
9
Добавлен:
23.09.2019
Размер:
1.09 Mб
Скачать

5.2. Принципы работы и организация клавиатуры

Клавиатура является средством ввода данных вручную постредством нажатия клавишей и кнопок. Кнопки могут отличаться от клавишей не только внешним видом, но и схемой включения. Их задача – создавать на одном из проводов клавиатуры низкий или высокий потенциал в зависимости от состояния кнопки или клавиши.

Рис. 5.4. Простейшая схема включения клавиши или кнопки

Простейшая схема включения кнопки или клавиши показана на рис. 5.4. Контакты кнопки (клавиши) SB1 в зависимости от состояния замыкает или размыкает провод, соединяющий точки 0 и 1. При разомкнутых контактах провод разорван и в точке 1 присутствует потенциал +5В, при замкнутых – потенциал 0В.

Указанную функцию могут реализовывать контакты разного исполнения: механические, герконовые (механические с управлением магнитным полем), плёночные, сенсорные (электронные) и на магниточувствительных материалах (датчики Холла). Применение механических контактов с подвижными частями порождает проблему "дребезга" контакта, т.е. существование в течение некоторого времени нестабильного значения потенциала в точке 1. Это явление вредное, которое искажает вводимую информацию и команды. Дребезг контакта подавляется аппаратным и программным способом. Недостатком такой схемы является большое количество проводов, идущих от клавишей к электронной части клавиатуры.

Для большого количества клавишей более эффективной является матричная схема включения клавишей (рис. 5.5).

Рис. 5.5. Матричная схема включения клавишей и кнопок

Принцип действия матричной клавиатуры аналогичен принципу действия описанной выше простейшей клавиатуры: кнопка соединяет один из вертикальных проводников с точкой нулевого потенциала.

Клавиатура состоит из 9 клавишей SB1, SB2, …, SB9. При отпущенных кнопках вертикальные проводники имеют потенциал +5В. На проводниках 4, 5, 6 любым способом (переключателем S1 на рис. 5.5) поочерёдно создаётся нулевой потенциал. Замыкание клавиши в соответствующей строке создаёт на одной из линий 2 – 3 нулевой потенциал.

Нажатие клавиши фиксируется микросхемой "И", имеющей три входа. При отпущенных клавишах на всех входах присутствует логическая единица, поэтому на выходе 1 также присутствует логическая единица. При замыкании контакта клавиши хотя бы на одном из входов будет логический ноль, и на выходе 1 микросхемы также появится логический ноль. В этот момент комбинация импульсов на выходах 2 – 7 содержит код нажатой клавиши, состоящий из кода строки и кода столбца.

Взаимодействие процессора с клавиатурой строится по схеме (рис. 5.6). В клавиатуре имеется массив клавишей и кнопок, включённых, как правило, по матричной схеме. Кроме того, в клавиатуре имеется блок светодиодных индикаторов режима работы клавиатуры.

Рис. 5.6. Схема взаимодействия процессора и клавиатуры

При нажатии на любую клавишу и при отпускании её во внутренний контроллер клавиатуры попадает код нажатой или отпущенной клавиши. Внутренний контроллер воспринимает этот параллельный код, преобразует его в последовательный и по линиям KB-Data и KB-Clock1 передаёт в системную плату, где его принимает контроллер интерфейса клавиатуры. Процессор общается с контроллером через порты, находящиеся по адресам 60h и 64h. Порт 60h является портом данных. Порт 64h состоит из двух регистров: регистра состояния 064R и регистра команд 064W.

Приняв код клавиши, процессор в стандартных ситуациях обращается к программе IRQ1 обработки прерывания от клавиатуры, генерируя одноимённое прерывание от клавиатуры. Программа IRQ1 обработки прерывания находится по адресу 09h, который называется вектором Int 9h, и входит в BIOS. В нестандартных ситуациях обработку прерывания от клавиатуры IRQ1 выполняет программа пользователя, которая перехватывает вектор Int 9h и обрабатывает прерывание в соответствии со своим алгоритмом.

В случае необходимости процессор может записать байт в выходной буфер клавиатуры. Для этого он в должен предварительно записать в порт 64h код D2 и установить соответствующие биты состояния и сгенерировать запрос IRQ1. Если контроллер должен возвратить данные в буфер клавиатуры, то при получении соответствующей команды он устанавливает 0BF=1, вследствие чего генерируется запрос на прерывание IRQ1. Далее данные должны быть считаны клавиатурой из регистра данных.

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