Лабораторная работа №3 «Контроллер клавиатуры»
Задание:
1. Реализовать с помощью логических элементов библиотеки Quartus II и УНИЛ систему управления клавиатурой блока МС-10 с выводом кода нажатой клавиши на жидкокристаллический индикатор (ЖКИ).
2. Откомпилировать проект и загрузить в ПЛИС.
3. Составить битовую карту кодов клавиш.
4. Привести временные диаграммы работы контроллера.
Основные сведения о клавиатурной матрице:
В клавиатурах отдельные контакты объединяют в матрицы, состоящие из строк и столбцов. Столбцы образуют проводниками «подтянутыми» через резисторы к источнику питания и с них производится считывание информации. Строки образуют проводники, подключенные к выходам дешифратора. На пересечении строк и столбцов располагаются механические контакты (рис. 19).
В сканирующий порт выводится значение, состоящее из одного нуля и единицы на всех остальных выводах.
Рисунок 19. Схема подключения клавиатурной матрицы
|
Сканирующий порт состоит из декодера, на вход которого, подают код, вырабатываемый счетчиком тактовых импульсов с числом разрядов
N= Log2(n). В результате на одном из выходов декодера(A..E) появляется низкий уровень 0, который перемещается от выхода к выходу «по кольцу» с каждым тактовым импульсом счетчика. Этим осуществляется сканирование строк клавиатуры с целью нахождения строки, на пересечении со столбцом которой, находится замкнутый контакт.
Пусть, например, ноль будет на выводе D. Наличие нуля сразу же «придавливает» потенциал подтягивающих резисторов и весь столбец оказывается подключенным на «землю». Теперь считываем сразу все значение из читающего порта. Если на столбце D не нажата ни одна кнопка, то в порту будут все единички. Но стоит нажать любую кнопку из столбца D, так она сразу же замкнет линию D, на этот вывод порта. В линии D в данный момент 0, это обеспечивает ноль на сканирующем выводе контроллера. Поэтому и на соответствующем выводе порта будет 0. Так что, если будет нажата кнопка, например, 4, то на линии Р0 будет 0.
Структурная схема лабораторной установки приведена на рис. 20. Она состоит устройства, спроектированного на ПЛИС и платы расширения МС-10. На базе ПЛИС собраны контроллер клавиатуры, контроллер LCD, формирователя 32-битного слова и делители частоты (на схеме показан как один).
По шине COL контроллер клавиатуры получает сигналы со своего сканера, переданные им по шине ROW, вычисляет код клавиши и формирует сигнал «строб», который является признаком нажатия клавиши. По шине COD контроллер клавиатуры передает данные дешифратор разряда индикатора, в котором формируется битовое «изображение» цифры кода клавиши для каждого разряда. С помощью формирователя 32-битного слова совокупность «изображений» цифр кода клавиш образует 32-битное управляющее слово, которое передается в контроллер LCD. Функции и устройство контроллера LCD рассмотрены в лабораторной работе № 2.
формирователь 32-битного слова
|
Тактовые импульсы (44кГц)
|
Контроллер клавиатуры 4х5
|
Дешифратор разряда индикатора
|
Рисунок 20. Структурная схема устройства для работы с клавиатурой
|
Принцип работы самого контроллера клавиатуры проиллюстрирован на рис. 21. Кодовая комбинация строк и столбцов поступает на двоичные приоритетные шифраторы, где параллельно формируется двоичный код строки и столбца на которых нажата клавиша. Эти кодовые комбинации подаются на два регистра. Первый из них образует младшую часть кода клавиши, а второй старшую. Сигнал записи в регистр формируется через два счетчика таймера. Первый счетчик запускается в момент, когда нажимается какая-либо клавиша. Второй счетчик запускается при нажатии любой клавиши и создает задержку сигнала записи в регистр, достаточную для успокоения механического дребезга контактов. Второй счетчик-таймер срабатывает в момент отпускания клавиши и блокирует запись на время, достаточное для успокоения дребезга контактов клавиши в момент отпускания, тем самым, исключая ложные срабатывания контактов.
Таймер подавления дребезга 1
|
Таймер подавления дребезга 2
|
Рисунок 21. Структура контроллера клавиатуры
|
Рисунок 22. Схема контроллера клавиатуры
|
Указания к работе:
Популярное: