Микросхема КР580ВВ79 – программируемое интерфейсное устройство, которое предназначено для ввода и вывода информации в системах, выполненных на основе 8– и 16–разрядных микропроцессоров КР580ВМ80А и КМ1810ВМ86. Кроме того, микросхема может применяться и как самостоятельное устройство при выполнении требований, предъявляемых к электрическим и временным параметрам.
Микросхема состоит из двух функционально автономных частей: клавиатурной и дисплейной.
Клавиатурная часть обеспечивает ввод информации в микросхему через «линии возврата» RET7 – RET0 с клавиатуры (клавиатурная матрица объемом 8 слов x 8 разрядов с возможностью расширения до 4×8 слов x 8 разрядов) и матрицы датчиков (8 слов x 8 разрядов), а также ввод по стробирующему сигналу (8 слов х 8 разрядов). Для хранения вводимой информации в микросхеме предусмотрен обратный магазин – оперативное запоминающее устройство (ОМ–ОЗУ) емкостью 8 байт. Последний работает по принципу «первый вошел – первый вышел».
При наличии информации в ОМ–ОЗУ микросхема вырабатывает сигнал «Запрос прерывания» INT; а в случае ввода или чтения более восьми символов – сигналы (флаги) переполнения или переопустошения.
В клавиатурной части микросхемы предусмотрен специальный режим обнаружения ошибок при замыкании двух и более клавиш, а также введена схема устранения дребезга при замыкании – размыкании клавиши.
Клавиатурная часть может сопрягаться с любой клавиатурой типа клавиатуры пишущей машинки, произвольным набором переключателей и др.
Дисплейная часть микросхемы обеспечивает вывод информации по двум 4–разрядным каналам DSPA3–DSPA0 и DSPB3–DSPB0 в виде двоичного кода на 8– и 16–разрядные цифровые или алфавитно–цифровые дисплеи.
Для хранения информации, подлежащей отображению в микросхеме, имеется оперативное запоминающее устройство отображения объемом 16 слов x 8 разрядов, которое также можно использовать как два устройства объемом по 16 слов x 4 разряда, одно устройство объемом 16 слов х 4 разряда или одно устройство объемом 8 слов x 8 разрядов.
Информация на дисплей может выводиться двумя способами: слева направо без сдвига или справа налево со сдвигом.
Микросхема позволяет отображать информацию на всех известных в настоящее время типах дисплеев (дисплеи накаливания, со светоизлучающими диодами и др.).
Программирование режимов работы, запись информации в ОЗУ отображения, чтение информации из ОМ–ОЗУ отображения, а также чтение внутреннего состояния микросхемы осуществляются через 8–разрядный двунаправленный канал данных D7–D0 при подаче соответствующих управляющих сигналов.
Микросхема обеспечивает также формирование кодированных или дешифрованных интерфейсных сигналов сканирования S3–S0 клавиатуры и дисплея, а также сигнала для межразрядного гашения BD информации на дисплее.
Наличие выходной линии запроса прерывания INT и режима чтения внутреннего состояния позволяют использовать данную микросхему в системах с прерыванием и последовательным опросом внешних устройств. Микросхема допускает одновременное выполнение функций ввода/вывода и рассчитана по выводу INT на прямое подключение к шинам микропроцессоров КР580ВМ80А и КМ1810ВМ86.
Применение микросхемы КР580ВВ79 в системах позволяет полностью освободить микропроцессор от операций сканирования клавиатуры и регенерации отображения на дисплее.
Условное графическое обозначение микросхемы приведено на рис. 6.30, структурная схема показана на рис. 6.31.
Схема управления вводом/выводом вырабатывает сигналы, которые управляют обменом информации с микропроцессором (табл. 6.8), а также внутренними пересылками данных и команд к различным регистрам и буферным схемам микросхемы.
Команды или данные записываются в микросхему после перехода сигнала WR из состояния низкого в состояние высокого уровня.
Источником данных при чтении состояния микросхемы служит 8–разрядный регистр словосостояния (рис. 6.32), в котором содержится информация о состоянии ОМ–ОЗУ, ошибках и запрещении доступа к ОЗУ отображения. Регистр словосостояния переходит в 0 при поступлении команды «Сброс» (разряд D1 или D0), а также с помощью аппаратного сброса.
Буферные схемы канала данных D7–D0 предназначены для обмена информацией между микросхемой КР580ВВ79 и микропроцессором КР580ВМ80А. При подаче сигналов WR и CS осуществляется ввод информации в микросхему, а при подаче сигналов RD и CS – вывод информации из микросхемы. Если сигнал CS находится в состоянии высокого уровня, то через буферные схемы D7–D0 обмен информацией между микросхемой и микропроцессором не происходит.
Таблица 6.8
Сигналы на входах |
Направление и вид информации |
|||
А0 |
RD |
WR |
CS |
|
1 |
1 |
0 |
0 |
Канал данных – ПККИ (команда) |
0 |
1 |
0 |
0 |
Канал данных – ПККИ (данные) |
1 |
0 |
1 |
0 |
ПККИ – канал данных (словосостояние) |
0 |
0 |
1 |
0 |
ПККИ – канал данных (данные) |
Х |
Х |
Х |
1 |
ПККИ в высокоомном состоянии |
Схема управления и синхронизации кроме основных своих функций вырабатывает также выходной сигнал BD длительностью не менее 150 мкс, который используется для гашения отображения на дисплее во время смены цифр (букв) или при поступлении команды «Гашение отображения». Если в команде «Гашение отображения» разряды D1 и D0 равны нулю, то сигнал BD равен нулю в период всего времени действия команды. Если один из разрядов Dl, D0 команды «Гашение отображения» равен нулю, то сигнал BD равен нулю в течение не менее 150 мкс.
Счетчик сканирования вырабатывает сигналы сканирования клавиатуры, матрицы датчиков и дисплея и работает в двух режимах. В режиме кодированного сканирования он обеспечивает выдачу на выходы сканирования S3–S0 двоичного кода последних четырех разрядов счетчика синхронизации, который должен дешифрироваться внешним дешифратором для получения сигналов сканирования клавиатуры и дисплея. В режиме дешифрированного сканирования счетчик сканирования дешифрирует внутри микросхемы два младших разряда счетчика сканирования и обеспечивает выдачу дешифрированных сигналов на выводы S3–S0.
Если запрограммирован режим дешифрированного сканирования клавиатуры, то в таком же режиме будет работать и дисплей. Это означает, что в данном режиме будут воспроизводиться только первые четыре символа ОЗУ отображения. Счетчик сканирования сбрасывается в исходное состояние аппаратным или программным сбросом.
Оперативное запоминающее устройство отображения объемом 16 слов x 8 разрядов можно организовать в сдвоенное ОЗУ объемом 16 слов х 4 разряда. ОЗУ отображения можно сбрасывать в 1,0 или шестнадцатеричное число 20 командой «Сброс».
Регистр адреса ОЗУ отображения предназначен для хранения адреса данных, которые в данный момент записываются или считываются микропроцессором. Адрес в регистр адреса отображения записывается с помощью команды «Запись в ОЗУ отображения» или «Чтение ОЗУ отображения». Разряд D4 в этих командах может устанавливаться как с автоинкрементированием, так и без него. Регистр адреса отображения сбрасывается на нулевую строку сканирования аппаратным и программным сбросом, записью режима работы, а также разрядом D4=1 в команде «Сброс», когда дисплей устанавливается в 0,1 или шестнадцатеричное число 20.
Регистры ОЗУ отображения хранят данные, которые в момент сканирования сигналами S3–S0 отображаются на выходах DSPA3–DSPA0 и DSPB3–DSPB0. В соответствии с запрограммированной командой «Гашение–запрет записи отображения» выходы DSPA3–DSPA0, DSPB3–DSPB0 можно устанавливать одновременно или раздельно в код, который программируется командой «Сброс».
Входная информация D7–D0, записываемая в буферные схемы канала данных, соответствует информации на выходах DSPA3–DSPA0, DSPB3–DSPB0:
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
DSPA3 |
DSPA2 |
DSPA1 |
DSPA0 |
DSPB3 |
DSPB2 |
DSPB1 |
DSPB0 |
Ввод слева соответствует простейшему формату отображения, в котором каждой позиции дисплея соответствует определенная строка в ОЗУ отображения. Адресу 0 в этом ОЗУ соответствует крайний слева символ дисплея, а адресу 15 в 16–разрядном дисплее или адресу 7 в 8–разрядном – крайний справа символ дисплея. Ввод символов, начиная с нулевой позиции, вызывает заполнение дисплея слева направо. Символ 17 или 9 будет в этом случае вводиться снова в крайнюю слева позицию дисплея и т. д.
Ввод в произвольную ячейку при установке режима ввода слева не приводит к нежелательным побочным эффектам, и результат при этом предсказуем. В данном режиме используется как автоинкрементирование, так и ввод слева без автоинкрементирования.
Ввод справа со сдвигом принят в большинстве электронных калькуляторов. Первый ввод помещается в крайнюю справа позицию дисплея. Следующий ввод помещается также в крайнюю справа позицию, но после того, как все отображение сдвинется на один символ влево. Крайний слева символ при этом сдвигается за край дисплея и теряется. В режиме ввода справа со сдвигом нет прямого соответствия между позицией дисплея и адресом строки ОЗУ отображения. Следовательно, ввод какого–либо символа в некоторую произвольную позицию и установка режима автоинкрементирования могут привести к непредвиденным результатам.
Буферные схемы клавиатуры и датчиков хранят входную информацию в режимах сканирования клавиатуры, сканирования матрицы датчиков и ввода по стробирующему сигналу. В режиме сканирования клавиатуры информация, вводимая в ОМ–ОЗУ, соответствует позиции ключа в клавиатуре и состоянию входных сигналов SH и CO/STB:
C0/STB |
SH |
Номер строки |
Номер столбца |
||||
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
Состояние входного сигнала C0/STB соответствует старшему разряду этого формата, а состояние входного сигнала SH – следующему по меньшинству разряду. Значения следующих трех разрядов соответствуют трем младшим разрядам счетчика сканирования и номеру строки, в которой нажата клавиша. Значения трех последующих разрядов соответствуют значениям трех разрядов, которые предшествуют трем младшим разрядам S2–S0 счетчика сканирования и номеру столбца, в котором нажата клавиша. В качестве клавиатуры, подключаемой к микросхеме, может использоваться любая клавиатура, подобная клавиатуре пишущей машинки с 64–контактной матрицей клавиш, которая может быть расширена до 256–контактной матрицы.
В режиме матрицы датчиков данные, поступающие с входов RET7–RET0, вводятся непосредственно в ту строку ОЗУ датчиков, которая соответствует сканируемой в данный момент строке матрицы. Следовательно, каждая позиция ключа в матрице соответствует определенной позиции ОЗУ датчиков. Входы SH и C0/STB при работе в режиме матрицы датчиков не используются. К буферным схемам клавиатуры и датчиков в этом режиме можно подключать не только ключи. Любая логическая схема, кото
рой можно управлять с помощью выходов сканирования S3–SO, вводит данные на входы RET7–RET0. Например, к входам RET7–RET0 можно подключать восемь мультиплексированных каналов ввода и сканировать их с помощью микросхемы КР580ВВ79. Информация, считанная с ОЗУ датчиков, будет инверсной.
В режиме ввода по стробирующему сигналу содержимое входов RET7–RET0 записывается в буферные схемы клавиатуры и датчиков строб–импульсом C0/STB. Вход SH в этом режиме не используется. Длительность строб–импульса должна быть не менее одного периода ТС.
Схема управления и устранения дребезга клавиатуры предназначена для управления сканированием клавиатуры в режимах 2– и N–клавишных сцеплений, N–клавишных сцеплений с обнаружением ошибок, а также в режимах сканирования матрицы датчиков и ввода по стробирующему сигналу. Кроме того, она устраняет влияние дребезга клавиатуры.
В режиме сканирования клавиатуры с обнаружением 2–клавишных сцеплений ввод осуществляется по одной клавише, а при нажатии двух и более клавиш код ни одной из них не будет введен в ОМ–ОЗУ датчиков.
В режиме сканирования клавиатуры с обнаружением N–клавишных сцеплений при нажатии нескольких клавиш все они опознаются и вводятся в ОМ–ОЗУ датчиков в соответствии с порядком сканирования.
В режиме сканирования клавиатуры с обнаружением N–клавишных сцеплений при программировании команды «Сброс прерывания – установка обнаружения ошибок» ввод осуществляется только по одной клавише. При одновременном нажатии двух и более клавиш код ни одной из них не вводится в ОМ–ОЗУ датчиков, но при этом в слове состояния устанавливается флаг ошибки D6.
Обратный магазин – ОЗУ датчиков предназначено для хранения с последующим считыванием кода позиции клавиш, состояния ключей в матрице датчика, а также информации, вводимой по стробирующему сигналу. ОМ–ОЗУ датчиков представляет собой ОЗУ с организацией 8×8, которое может выполнять две функции. В режимах сканирования клавиатуры или ввода по стробирующему сигналу оно работает как ОМ–ОЗУ (обратный магазин, работающий по принципу «первым вошел – первым вышел»). Каждое вновь вводимое значение данных в этом случае записывается в последующие ячейки ОЗУ и каждое из них впоследствии считывается в том же порядке, в каком оно вводилось. В режиме сканирования матрицы датчиков данное ОЗУ работает как ОЗУ датчиков. Каждая строка ОЗУ датчиков загружается состоянием соответствующей строки датчиков в матрице датчиков. В этом режиме на выходе INT устанавливается напряжение высокого уровня только в том случае, если обнаружено изменение состояния датчиков.
Схема анализа состояния ОМ–ОЗУ датчиков предназначена для отображения состояния ОМ–ОЗУ датчиков, т. е. следит за числом символов, содержащихся в ОМ–ОЗУ датчиков, и за тем, является ли он полным или пустым. Слишком большое число операций считывания из ОМ–ОЗУ или записи в ОМ–ОЗУ распознается как ошибка. Схема анализа состояния ОМ–ОЗУ датчиков формирует также сигнал прерывания INT, если ОМ–ОЗУ содержит информацию. В режиме сканирования матрицы датчиков схема анализа состояния ОМ–ОЗУ датчиков следит только за числом символов в нем (их может быть не более семи).
Программирование ПККИ.
Описанные ниже команды программируют режим работы микросхемы КР580ВВ79. Перед программированием режима работы необходимо установить микросхему в исходное состояние. На вход SP следует подать напряжение высокого уровня
длительностью не менее 6ТС. ОМ–ОЗУ датчиков и ОЗУ отображения в нулевое состояние сигналом SR не устанавливаются.
Команда «Установка режимов работы клавиатуры и дисплея» предназначена для задания режима работы микросхеме КР580ВВ79. На рис. 6.33 показано детальное раскодирование данной команды. Разряды D4 и D3 определяют код режима работы дисплейной части, а разряды D2–D0 – код режима работы клавиатурной части микросхемы.
Программируемый интерфейс клавиатуры–дисплея микросхемы допускает одновременное выполнение в микрокомпьютерных системах операций с клавиатурой и дисплеем. Переход микросхемы из одного режима в другой осуществляется соответствующим кодом команды и не требует предварительного аппаратного или программного сброса.
Команда «Программирование синхронизации» предназначена для обеспечения требуемой скорости сканирования клавиатуры–дисплея, а также согласования цикла синхронизации микропроцессора с внутренним циклом синхронизации микросхемы. Формат команды:
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
0 |
0 |
1 |
К = 2 – 31 |
D7–D5 – код команды «Программирование синхронизации»; D4–D0 – код программируемого коэффициента деления К.
Команда «Чтение ОМ–ОЗУ датчиков» используется для чтения данных из ОМ–ОЗУ датчиков. Формат команды:
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
0 |
1 |
0 |
А |
Х |
Адрес |
где D7–D5 – код команды «Чтение ОМ–ОЗУ датчиков»; D4 – флат автоинкрементирования; D3 – разряд не используется; D2–D0 – адрес строки, читаемой микропроцессором.
В режиме сканирования матрицы датчиков используется флаг автоинкрементирования D4 и разряды адреса D2–D0. В клавиатурном режиме и режиме ввода по стробирующему сигналу для чтения ОМ–ОЗУ датчиков достаточно подать только код команды.
Команда «Чтение ОЗУ отображения» используется для чтения данных из ОЗУ отображения. Формат команды:
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
0 |
1 |
1 |
А |
Адрес |
где D7–D5 код команды «Чтение ОЗУ отображения»; D4 – флаг автоинкрементирования; D3–D0 – адрес строки, читаемой микропроцессором.
Так как для чтения данных из ОЗУ отображения и их записи в ОЗУ отображения используется один и тот же счетчик адреса, то эта команда одновременно устанавливает также адрес следующей строки записи данных и режим автоинкрементирования при записи. Если флаг автоинкрементирования D4 установлен в 1, то адрес символа после каждой операции чтения (записи) будет увеличиваться на 1 и следующее чтение (запись) будет происходить из следующей строки (в следующую строку).
Команда «Запись в ОЗУ отображения» используется для записи информации в ОЗУ отображения. Формат команды:
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
1 |
0 |
0 |
А |
Адрес |
где D7–D5 – код команды «Запись в ОЗУ отображения»; D4 – флаг автоинкрементирования; D3–D0 – адрес строки, в которую записывается информация.
Адресация и автоинкрементирование при записи в ОЗУ отображения аналогичны адресации и автоинкрементированию при чтении из ОЗУ отображения. Различие состоит в том, что команда «Запись в ОЗУ отображения» не влияет на выбор источника информации при чтении, т. е. микропроцессор будет производить чтение из того ОЗУ (ОЗУ отображения или ОМ–ОЗУ датчиков), которое было указано последним.
Команда «Гашение – запрет записи отображения» используется для гашения отображения на выходах DSPA3–DSPA0 и DSPB3– DSPB0 (в нули, единицы и шестнадцатеричное число 20), а также для запрещения записи в одну из половин ОЗУ отображения или обе половины одновременно. Формат команды:
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
1 |
0 |
1 |
Х |
А |
В |
А |
В |
где D7–D5 – код команды «Гашение – запрет записи отображения»; D4 разряд не используется; D3 – запрет записи в ОЗУ отображения по входам D7–D4 для канала А; D2 – запрет записи в ОЗУ отображения по входам D3–D0 для канала В; D1 – гашение выходов DSPA3–DSPA0 для канала A; D0 – гашение выходов DSPB3–DSPB0 для канала В.
Гашение отображения или запрет записи информации в ОЗУ отображения осуществляется при записи 1 в соответствующий разряд команды «Гашение – запрет записи отображения». После аппаратного сброса выходы DSPA3–DSPA0, DSPB3–DSPB0 и BD автоматически устанавливаются в состояние низкого уровня.
Команда «Сброс» предназначена для осуществления программного сброса микросхемы, сброса слова состояния и прерывания сигнала INT, а также сброса ОЗУ отображения и выходов DSPA3–DSPA0, DSPB3–DSPB0 в код, который определяется разрядами D3, D2 (см. рис. 6.34).
Команда «Сброс прерывания – установка режима обнаружения ошибок» предназначена для сброса сигнала INT в режиме матрицы датчиков и установки специ
ального режима обнаружения ошибок в клавиатурном режиме с N–клавишным сцеплением. Формат команды:
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
1 |
1 |
1 |
1 |
Х |
Х |
Х |
Х |
где D7–D5 – код команды «Сброс прерывания – установка режима обнаружения ошибок»; D4 – код установки режима обнаружения ошибок; D3–D0 – безразличное состояние.