Сопряжение МК с клавиатурой и линейным дисплеем на основе БИС КР580ВД79

Описание БИС контроллера клавиатуры/дисплея (ККД) КР580ВД79 приведено в приложении Ш. Использование ККД позволяет разгрузить МК от рутинных операций опроса клавиатуры и поддержания (рефре-ша) изображения на однострочном дисплее.

Одна из возможных схем подключения контроллера клавиатуры/ дисплея к МК51 показана на рис. 7.11. При таком подключении конт­роллер входит в адресное пространство ВПД. Линия Р1.0 соединяется с линией Aq контроллера и должна быть установлена/сброшена перед обращением МК к контроллеру в зависимости от типа обращения (управление/данные). Вход выборки контроллера соединен с общей точкой, и, таким образом, контроллер всегда готов к обмену с МК. Выход сигнала запроса прерывания (IRQ) контроллера соединен с ли­нией Р1.1 МК и может быть программно опрошен для определения факта нажатия клавиши.

Шина данных и линии чтения/записи контроллера соединяются напря­мую с соответствующими линиями МК51. На вход CLK подается сигнал

Рис. 7.11. Схема подключения ККД к МК51

частотой примерно 2 МГц с выхода ALE. Контроллер клавиатуры/ дисплея в нашем примере обеспечивает ввод в МК кода нажатой кла­виши (одной из 20) и поддерживает изображение на восьмипозиционном однострочном дисплее. Для сканирования клавиатуры и дисплея до­полнительно используется инвертирующий дешифратор на восемь выходов. Диоды на выходе дешифратора необходимы для защиты от короткого замыкания между собой его выходов при одновремен­ном нажатии нескольких клавиш.

Дисплей показан на схеме условно; предполагается, что он снабжен необходимыми буферными схемами для обеспечения требуемых токов нагрузки. Сигнал 0 на входе R обеспечивает гашение всех индикаторов одновременно.

Матрица клавиш расположена таким образом, чтобы SCAN-код клавиши совпадал с двоичным кодом шестнадцатеричной цифры, нанесен- ной на клавишу. Входы SHIFT и CNTL заземлены. Клавиатура состоит из 16 цифровых клавиш (О—F) и 4 клавиш управления (функциональ­ных), коды которых больше 0FH.

Для того чтобы настроить контроллер клавиатуры/дисплея на опреде­ленный режим работы, основная программа МК-системы должна загру­зить в него управляющие слова инициализации (УСИ) и в требуемый момент выдать управляющее слово операции (УСО). Ниже приводится программа инициализации, которая настраивает контроллер на режим работы с восьмипозиционным дисплеем, распознавания одиночного нажатия клавиш и сканирования знакомест дисплея счетчиком:

Коэффициент деления входного синхросигнала (CLK) необходимо установить таким образом, чтобы внутренняя опорная частота контрол­лера получилась около 100 кГц. Так как частота сигнала ALE равна при­мерно 2 МГц, то коэффициент деления выбирается равным 20. Содержи­мое регистра R0 не имеет значения, так как в нашем примере контрол­лер "закрывает" собой все адресное пространство ВПД. После инициа­лизации контроллер будет работать параллельно с МК и избавит его от необходимости выполнения программ опроса клавиатуры и поддержа­ния изображения на дисплее.

Для ввода кода нажатой клавиши в МК необходимо выполнить сле­дующие действия:

Как только контроллер клавиатуры/дисплея зафиксирует нажатие клавиши и определит ее SCAN-код (совпадающий с двоичным кодом шестнадцатеричной цифры клавиши), он сразу оповестит об этом МК, установив сигнал на выходе запроса прерывания (IRQ). После обнару­жения сигнала 1 на входе Р1.1 МК может прочитать код клавиши из контроллера. Но для этого надо предварительно загрузить в контроллер УСО "Чтение", специфицирующее источник информации (буфер кодов клавиш) и адрес ячейки. После этого при Aq = 0 можно вводить код клавиши в МК.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: