Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовой проект / микроЭВМ на PIC16C84 / Организация памяти в микропроцессорных системах.doc
Скачиваний:
223
Добавлен:
21.02.2014
Размер:
882.69 Кб
Скачать

3.5.5. Работа контроллера к580вв79

Контроллер состоит из двух слабо связанных между собой частей – дисплейной и клавиатурной, программирование режимов которых осуществляется независимо.

Управление клавиатурой

Выше отмечалось, что поле [2:0] команды 1 установки режимов определяет режимы работы клавиатурной части контроллера. На самом деле младший разряд команды управляет мультиплексором линий S[3:0] и следовательно, одинаково влияет на сканирование клавиатуры (датчиков) и индикации.

D0 = 0 – кодированное сканирование, на линииS[3:0] выдаются значения разрядов счетчика сканирования;

D0 = 1 – дешифрированное сканирование, на линииS[3:0] выдаются выходы дешифратора двух младших разрядов счетчика сканирования (унитарный код).

Разряд D2 команды 1 установки режимов определяет режим работы клавиатурной части:D2= 0 –режим клавиатуры;D2= 1 – режим датчиков.

Режим клавиатурыпредполагает фиксацию нажатия клавиши и размещение в стеке кода этой клавиши в формате Рис.3.3, причем разрядD1 команды 1 установки режимов определяет, будут ли фиксироваться коды одновременно нажатых нескольких клавиш (см. описания формата команды 1). В режимес обнаружением двойных нажатийдвух- и более кратные нажатия будут просто игнорироваться и никакой код не будет введен в ОЗУ датчиков.

В режиме с обнаружением N нажатых клавишпри нажатии нескольких клавиш все они опознаются и их коды (Рис.3.3) вводятся в стек датчиков в порядке сканирования, однако, если предварительно прошла команда 8, такая ситуация будет вызывать установку флага ошибки – разрядаD6 слова состояния..

Режим датчиковимеет две разновидности.Режим матрицы датчиковпозволяет вводить в стек строкуRET[7:0], которая соответствует состоянию сканируемой строки матрицы датчиков. При этом в стеке не сохраняется информация о позиции строки. ВходыSHиCO/STBв этом режиме не используются. К линиямRET[7:0] можно подключать не только ключи, но и любую логическую схему, которой можно управлять с помощью выходов сканированияS[3:0]. Например, восемь мультиплексированных каналов ввода, которые сканируются с помощью БИС К580ВВ79. Информация, считанная из ОЗУ датчиков, будет инверсной.

В режиме ввода по стробусостояние входовRET[7:0] записывается в стек – ОЗУ датчиков по стробирующему импульсу на входеCO/STB, длительность которого должна быть не менее одного периода сканирования. ВходSHв этом режиме не используется.

Стек – ОЗУ датчиков предназначен для хранения с последующим считыванием кодов клавиш, состояния ключей в матрице датчиков, а также информации, вводимой по стробу. Блок памяти 88 бит выполняет две функции. В режимах сканирования клавиатуры или ввода по стробу память работает как магазин с дисциплинойFIFO(ввод в последовательные ячейки и последующее считывание в том же порядке). Если стек не пуст, формируется сигнал запроса на прерывание.

В режиме сканирования матрицы датчиков память работает как обычное ОЗУ, когда каждая ячейка ОЗУ загружается состоянием соответствующей (по счетчику сканирования) строки матрицы датчиков, причем запрос INTустанавливается только в том случае, еслиобнаружено изменениесостояния датчиков.

Специальная схема отслеживает текущее состояние ОЗУ датчиков – формирует значение числа символов в стеке в поле [3:0] слова состояния и устанавливает флаги переполнения и переопустошения стека, а также формирует запрос прерывания INT.