1 – ввод

advertisement
Особенности программирования матричной клавиатуры с внешним
генератором запроса прерываний.
Работа данной матричной клавиатуры строится следующим образом. На линиях
B1, B2 при разомкнутых кнопках будут присутствовать высокие уровни, т. к. эти
линии подключены через резисторы к источнику напряжения. Пусть в некоторый
момент на линии A1 присутствует сигнал низкого уровня, а на линиях A2...A4 —
высокого. Данные уровни могут быть сформированы, например, портом вывода.
Допустимый втекающий ток низкого уровня для этого устройства (порта вывода)
должен быть больше тока, определяемого из выражения R= U\ I, где R = R1 =
R2. При нажатии на кнопку SB1 на линии B1 установится сигнал низкого уровня,
состояние сигнала на линии B2 не изменится. Если нажать кнопку SB2, то сигнал
низкого уровня появится на линии B2 . Очевидно, что нажатие кнопок SB3...SB8
не изменит уровни на линиях Bi . Таким образом, анализируя состояние линий Bi
и, зная, что низкий уровень установлен на линии A1, можно определить, какая из
кнопок SB1 или SB2 нажата.
Чтобы проанализировать состояние кнопок SB3 и SB4, необходимо установить сигнал низкого уровня на линии A2, а на линии A1 — высокого уровня. В
этом случае появление сигнала низкого уровня, например, на линии B 2 будет
свидетельствовать о нажатии на кнопку SB3. Проверка состояния кнопок
SB5...SB8 производится аналогично.
Линии Ai , состояние которых задается портом вывода, можно назвать вход-
ными (сканирующими ) линиями матричной клавиатуры. Соответственно, линии
Bi можно назвать выходными (возвратными) линиями клавиатуры. Подключают
эти линии к порту ввода.
Применительно к матричной клавиатуре может быть использовано аналогичное схемотехническое решение, например использованием схемы И-НЕ,
подключенной к возвратным линиям клавиатуры. Тогда при появлении хотя бы на
одной из возвратных линий лог.0 , что свидетельствует о нажатии клавиши, на
выходе логической схемы появится лог.1 и этот сигнал можно использовать для
прерывания процессора. При большом числе возвратных линий это вызовет
существенное усложнение схемы. На практике обычно поступают следующим
образом: программа анализа состояния клавиатуры также реализуется в виде
подпрограммы обработки прерывания, но само прерывание периодически
запрашивается внешним устройством, например, таймером или генератором
импульсов. Подпрограмма обработки прерывания должна не только
анализировать состояние выходных линий клавиатуры, но и изменять
сигналы на входных(сканирующих) линиях клавиатуры.
Пример алгоритма подпрограммы определения координат нажатой кнопки
приведен на Рис.3.
Считывание кода
возвратных
линий
Определение полного кода
клавиши
Ф1
Ф2
Ф3
Выполнение
Ф4
Ф5
функции
Сравнить текущий код сканирования с
кодом последней сканирующей линии
Активировать
следующую линию
да
Nтек < Nпосл
Активировать
первую линию
Разрешить INT
Выход из ПП
Рис. 3 Возможный вариант структуры подпрограммы обработки
Режим работы ВВ55. Режим 1. Ввод
3
5
3
6
7
26
RESET
IOP
КА7
WR
КА6
RD
КА5
CS
КА4
37
38
39
40
25
A1
КА3
A0
АК2
24
23
КА1
27
КА0
28
29
11
GND
Ucc
30
22
10
КВ7
12
КВ6
КВ5
13
Обмен информацией между магистралью
данных МП системы и микросхемой
КР580ВВ55А осуществляется через 8разрядный
двунаправленный
трехстабильный канал данных (DB). Для
связи с периферийными устройствами
используются 24 линии ввода/вывода,
сгруппированные в три 8-разрядных
канала А, В, С. Направление передачи
информации и режимы работы каналов
определяются программным способом.
Микросхема может функционировать в
трех основных режимах. В режиме 0
обеспечивается возможность синхронной
программно
управляемой
передачи
данных через два независимых 8разрядных канала А и В и два 4разрядных канала С.
Рис.4. Условное графическое
обозначение микросхемы
КР580ВВ55А
Режим 0 используется в тех случаях, когда темп выдачи новой информации из
источника (например, БЦП) невысок и ВУ как приемник информации успевает
принять и обработать данные (т.е. вопрос о готовности ВУ не возникает) или
когда надо прочитать состояние датчиков, подключенных к порту ввода. В этом
режиме сама программа ЦП определяет моменты ввода или вывода информации.
Режим 0 может использоваться и для организации асинхронного обмена с
внешним устройством, т.е. обмена по готовности ВУ. Тогда чтение сигнала
«готов» и формирование строба сопровождения данных осуществляется по
свободным линиям каналов БИС под управлением программы. В режимах 1 и 2
обмен БИС КР580ВВ55 с ВУ осуществляется асинхронным способом с
использованием аппаратно формируемых сигналов квитирования.
Информация о состоянии ВУ как приемника или сведения о поступлении данных
от ВУ как источника сообщается процессору формированием сигналов
прерывания.
В режиме 1 обеспечивается возможность ввода и вывода информации в или из
периферийного устройства через два независимых 8-разрядных канала А и В по
сигналам управления (квитирования-от слова квитанция). При этом линии канала
С используются для приема и выдачи сигналов управления обменом.
В режиме 1 передача осуществляется только через каналы А и В, а
некоторые линии канала КС используются для приема и выдачи сигналов
управления обменом (сигналов квитирования). Свободные от управления
обменом линии канала С можно использовать как дополнительные порты для
ввода\вывода (направление передачи данных свободных линий определяется при
программировании режима).
Форматы управляющих слов и функциональные схемы каналов А и В при
вводе данных в режиме 1 показаны на рис.10, временная диаграмма обмена на
рис.11.
При подаче сигнала “СТБ ПР” ( сигнал строб приема) от ВУ низкого уровня
данные записываются во входной регистр соответствующего канала (рис. 10).
Выходной сигнал “Подт.ПР.” (подтверждение приема для ВУ) высокого
уровня свидетельствует о том, что входные данные записаны во входной регистр
канала (исходное значение сигнала означает готовность к приему данных).
Сигнал на выходе INT (запрос прерывания) может использоваться для
прерывания работы микропроцессора и устанавливается в состояние высокого
уровня, если соответствующий разряд регистра канала С, используемый как
триггер разрешения формирования запроса прерывания по данному каналу,
установлен в состояние высокого уровня путем индивидуальной программной
установки в единицу вторым словом управления.
Управляющее слово
DB7
DB3 DB2 DB1 DB0
1 DB6
0 DB5
1 DB4
1 1/0
а)1 – ввод
0–
б)
Управляющее слово
DB7
1 DB6 DB5 DB4 DB3 DB2
1 DB1
1 DB0
в)
KC – 6
KC – 7
г)
Рис.10. Форматы управляющих слов (а, в) и функциональные схемы ввода данных
(б, г) в режиме 1.
СТБ ПР
(C2, C4)
Из ВУ
ВУВВ55
t
(C1, C5)
ВВ55ВУ
Подт. Пр.
ВВ55МП
INT
МП читает
из ВВ55
(C0, C3) t
t
Рис.11. Временная диаграмма работы БИС в режиме 1 ввод.
Сигнал INT свидетельствует о том, что данные для ЦП готовы, процессор может
их ввести и сбрасывается в состояние низкого уровня при чтении информации из
соответствующего канала в ПП обработки запроса.
Для разрешения формирования сигнала INT (КА) при вводе используется
разряд КС4 регистра канала С, а для сигнала INT (КВ) разряд КС2 канала С.
Download