Введение в архитектуру персонального компьютера. Соппа И.В. - 28 стр.

UptoLike

Составители: 

В современных клавиатурах, для сканирования клавиши и управления работой клавиатуры
в целом, используют либо однокристальную микропроцессорную БИС, либо 8-разрядный
микропроцессор. Это позволяет существенно упростить схемотехнику клавиатуры, увеличить ее
функциональные возможности, а также усовершенствовать алгоритм устранения влияния дребезга
контактов. Для данных схем вертикальные и горизонтальные шины матрицы-клавиатуры
подключаются непосредственно к выходным и входным портам ввода/вывода БИС (рис 2.3),
которая специально запрограммирована на выполнение тех же функций, что и схема,
изображенная на рис. 2.2.
Рис. 2.3. Схема контроллера клавиатуры, построенная на базе однокристальной ЭВМ
Алгоритм работы такой клавиатуры заключается в следующем. В исходном состоянии
счетчик повторений контроллера обнуляется, а код X-столбца на линии Вывод устанавливается
равным 00...01. Каждое последующее значение кода X формируется путем циклического сдвига
логической единицы в сторону старших разрядов. В результате на горизонтальных шинах
матрицы устанавливается одна из комбинаций символов, программно считываемая контроллером
по линии Ввод. Если эта комбинация содержит все нули, т. е. не нажата ни одна из клавиш,
находящихся в вертикальном столбце по активной X линии, то микроконтроллер производит
очередной сдвиг кода X и продолжает поиск нажатой клавиши. В результате этого поиска вместе с
уже рассмотренной возможны ситуации, когда на линии Ввод устанавливается несколько единиц,
т.е. одновременно нажато несколько клавиш на активной X-линии, или когда на линии Ввод
присутствует только одна логическая единица. Первая из перечисленных ситуаций
воспринимается микроконтроллером как ошибочная, возвращает его в исходное состояние и
может вызвать включение звукового сигнала. При второй ситуации по текущему значению кода
опроса столбца Х и принятому из линии Ввод значению кода строки Y программно формируется
весовой код нажатой клавиши, т.е. замкнутого ключа. Для этого коды опроса преобразуются к
двоичному или двоично-десятичному виду с помощью программных счетчиков, затем
определяется весовое значение нажатой клавиши. Данный алгоритм работы клавиатуры является
своего рода стандартом для моделей ПК фирмы IBM и программно реализован в ПЗУ
однокристального микроконтроллера типа INTEL 8048. С его помощью осуществляется обработка
нажатой клавиши клавиатуры, устраняется дребезг ее контактов, а также выполняются
диагностические тесты работоспособности после включения питания системного блока.
При однократном нажатии клавиши, или когда имеет место режим повторения за счет
удержания клавиши в нажатом состоянии, результат каждого действия запоминается в 20-
символьном буферном регистре клавиатуры. Появление в нем хотя бы одного символа
инициирует прерывание в системный блок компьютера для последующей обработки нажатой
клавиши. В ответ на прерывание BIOS считывает в последовательном формате состояние
буферного регистра и посылает необходимые инструкции обратно в клавиатуру.
       В современных клавиатурах, для сканирования клавиши и управления работой клавиатуры
в целом, используют либо однокристальную микропроцессорную БИС, либо 8-разрядный
микропроцессор. Это позволяет существенно упростить схемотехнику клавиатуры, увеличить ее
функциональные возможности, а также усовершенствовать алгоритм устранения влияния дребезга
контактов. Для данных схем вертикальные и горизонтальные шины матрицы-клавиатуры
подключаются непосредственно к выходным и входным портам ввода/вывода БИС (рис 2.3),
которая специально запрограммирована на выполнение тех же функций, что и схема,
изображенная на рис. 2.2.




       Рис. 2.3. Схема контроллера клавиатуры, построенная на базе однокристальной ЭВМ

        Алгоритм работы такой клавиатуры заключается в следующем. В исходном состоянии
счетчик повторений контроллера обнуляется, а код X-столбца на линии Вывод устанавливается
равным 00...01. Каждое последующее значение кода X формируется путем циклического сдвига
логической единицы в сторону старших разрядов. В результате на горизонтальных шинах
матрицы устанавливается одна из комбинаций символов, программно считываемая контроллером
по линии Ввод. Если эта комбинация содержит все нули, т. е. не нажата ни одна из клавиш,
находящихся в вертикальном столбце по активной X линии, то микроконтроллер производит
очередной сдвиг кода X и продолжает поиск нажатой клавиши. В результате этого поиска вместе с
уже рассмотренной возможны ситуации, когда на линии Ввод устанавливается несколько единиц,
т.е. одновременно нажато несколько клавиш на активной X-линии, или когда на линии Ввод
присутствует только одна логическая единица. Первая из перечисленных ситуаций
воспринимается микроконтроллером как ошибочная, возвращает его в исходное состояние и
может вызвать включение звукового сигнала. При второй ситуации по текущему значению кода
опроса столбца Х и принятому из линии Ввод значению кода строки Y программно формируется
весовой код нажатой клавиши, т.е. замкнутого ключа. Для этого коды опроса преобразуются к
двоичному или двоично-десятичному виду с помощью программных счетчиков, затем
определяется весовое значение нажатой клавиши. Данный алгоритм работы клавиатуры является
своего рода стандартом для моделей ПК фирмы IBM и программно реализован в ПЗУ
однокристального микроконтроллера типа INTEL 8048. С его помощью осуществляется обработка
нажатой клавиши клавиатуры, устраняется дребезг ее контактов, а также выполняются
диагностические тесты работоспособности после включения питания системного блока.
        При однократном нажатии клавиши, или когда имеет место режим повторения за счет
удержания клавиши в нажатом состоянии, результат каждого действия запоминается в 20-
символьном буферном регистре клавиатуры. Появление в нем хотя бы одного символа
инициирует прерывание в системный блок компьютера для последующей обработки нажатой
клавиши. В ответ на прерывание BIOS считывает в последовательном формате состояние
буферного регистра и посылает необходимые инструкции обратно в клавиатуру.