Биты Поле Описание 0..3 COL
Поле предназначено для сканирования клавиатуры (колонки
матрицы). Сканирование производится посредством записи
логического «0» в один из разрядов поля. В полной
конфигурации ПЛИС из этой тетрады считывается записанное
ранее в нее значение. В упрощенной конфигурации всегда
возвращается «0».
4..7 ROW
Поле предназначено для считывания данных с клавиатурной
матрицы (строки). Если ни одна из кнопок в строке не нажата,
все биты поля ROW содержат логические «1». Если кнопка
нажата и на ее колонку подан логический «0», то в поле ROW
также появится логический «0».
Данный регистр можно использовать для определения типа конфигурации.
Если при старте программы записать в тетраду COL регистра KB ненулевое
значение, а затем его считать, то в полной конфигурации будет считано
записанное значение, а в упрощенной – нули.
В полной конфигурации ПЛИС работа с клавиатурой может быть
организована по прерыванию: 6-й бит (KB) регистра ENA заведен на вход
внешнего прерывания INT0 МК ADuC812. Внешнее прерывание будет
возникать, как только на клавиатуре будет нажата хоть одна клавиша (любая).
Таким образом, чтобы работать с клавиатурой по ее собственному прерыванию,
необходимо:
• Разрешить прерывание от клавиатуры (6-й бит регистра ENA должен
быть «1»);
• Настроить внешнее прерывание INT0 так, чтобы оно работало по спаду,
а не по уровню (регистр специального назначения TCON);
• Разрешить внешнее прерывание INT0 (бит EX0 = 1 в регистре
специального назначения IE);
• Написать обработчик внешнего прерывания INT0;
• Переключатели SW3 должны быть в положении OFF, а 5-й бит регистра
ENA (ПЛИС) должен быть «1»;
• Написать алгоритм сканирования клавиатуры.