8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 26 27 28 29 30 31 32 ... 39

этом входе происходит пересылка входных или выходных данных. Сигнал «1» на выводе В/А (порт В/порт А) означает вызов порта В, - а сигнал «О» - порта А. С помощью этих трех сигналов (СЕ , C/D, В/А) указывается адрес порта ПИ. При обращении ЦПУ к портам ввода-вывода этот адрес внутреннего порта ПИ устанавливается на 8 младших разрядах (An...А?) шины адреса ЦПУ. Схема подключения ПИ к разрядам Ап...А7 шины адреса ЦПУ показана на Рис. 8.2.

ЦПУ

Шина адреса восьми младших разрядов

3

Дешифратор адреса

ПИ

C/D В/А

СЕ

А, (В/А)

Ао (C/D)

Выбор порта

Трансляция данных/

Запись управляющего кода

0

0

Порт А

Трансляция данных через порт А

0

1

Запись управляющего кода в порт А

1

0

Порт В

Трансляция данных через порт В

1

1

Запись управляющего кода в порт В

ПИ имеет 4 последовательно расположенных адреса установки режима. Если 0-й разряд (АО) находится в состоянии «О», то указывается адрес порта ввода-вывода, если «1» - адрес для записи управляющего кода

Рис. 8.2. Схема адресации ПИ

Нулевой разряд (Ао) шины адреса ЦПУ соединяется с выводом C/D параллельного интерфейса. Когда значение сигнала в разряде Ао равно «О», производится выбор порта А или В, а когда Ао находится в состоянии «1», производится запись управляющего кода. Разряд А] шины адреса ЦПУ соединяется с выводом В/А. Для того чтобы выбрать порт А, нужно подать на этот вывод сигнал «О», для выбора порта В значение разряда А! должно быть равно 1. Если шину адреса А0...А7 ЦПУ подключить к выводу СЁ через схему дешифратора адреса (см. ниже), то можно одновременно определять адреса обоих портов ПИ.

Установка режимов работы портов А и В, соединенных с ЦПУ110 рассмотренной выше схеме, осуществляется программно. Чтобы уста новить нужный нам режим работы порта А, необходимо с помошЫ0 команды вывода записать в ПИ управляющий код этого режима.

- Пример -

Чтобы установить в ПИ адрес порта А равным 0А0Н, нужно построить схему дешифратора таким образом, чтобы на вход /СЕ ПИ подавался «О» в том случае, когда в шести старших разрядах (А7...А2) шины адреса установлен двоичный код 101000 (ОАОН)

Адрес данных порта А: 0A0H

Адрес управляющего кода порта А: 0А1Н Адрес данных порта В: 0А2 Н

Адрес управляющего кода порта В: 0A3H

Схема дешифратора адреса j

Q

~ Пример ~

Установка порта А в режим вывода, а порта В - в режим ввода осуществляется следующим образом:

[Программа установки режима ПИ

LD A, 0FH OUT (0А1Н),А LD A, 4FH OUT (0АЗН),А

;0FH Управляющий код режима вывода ;0А1 Н Адрес управляющего кода порта А ;4FH Управляющий код режима ввода ОАЗН Адрес управляющего кода порта В

Если программно установить режим работы ПИ, как показано в Приведенном выше примере, то порт А будет функционировать как порт вывода с адресом 0A0H, а порт В - как порт ввода с адресом 0А2Н. В процессе выполнения программы можно изменить режим Работы обоих портов.

Теперь рассмотрим назначение выводов ARDY, ASTB и BRDY, BsTB (см. Рис. 8.1). Сигналы RDY (Ready) и STB (Strob) называется сигналами «стробирования» или «квитирования». Посредст-


вом сигналов квитирования ЦПУ при обмене данными с внешними устройствами подтверждает направление передачи данных и синхронизирует работу регистров. Например, когда порт А функционирует в режиме вывода, сигнал ARDY сообщает внешнему устройству, что на выводах (Ао ... А7) порта А в ЦПУ (Рис. 8.1) установлены выходные данные. Сигнал ASTB сообщает ПИ, что внешнее устройство приняло данные и можно переходить к пере-даче очередного пакета данных. Назначение сигнала STB, используемого при обработке прерывания, мы обсудим в следующем разделе.

Третий режим работы ПИ (режим «3») позволяет каждому разряду портов ввода-вывода назначить любую из двух функций (прием или передачу), при этом за счет оптимальной загрузки портов можно повысить эффективность передачи данных по сравнению с режимами, в которых все восемь разрядов одновременно используются либо для приема, либо для передачи. Чтобы активизировать режим «3» ПИ, следом за кодом установки режима «3» в регистр управления загружается код установки разрядов, в соответствии с которым каждый из разрядов порта программируется на ввод или вывод. Код установки разряда представляет собой 8-разрядное число. Если мы хотим, чтобы данный разряд работал на прием данных, то в соответствующей позиции кода установки разряда нужно записать «1».

Соответственно разрядам, программируемым на вывод данных, нужно присвоить код «О». Пример кода установки разрядов в режиме «3» представлен на Рис. 8.3.

Режим «2» работы ПИ - это режим ввода-вывода с использованием только порта А. В этом режиме шина данных (Ао...А7) порта А используется как для ввода, так и для вывода, подобно шине данных микрокомпьютера. Этот режим используется, например, при обмене данными с внешними устройствами, имеющими двунаправленную шину данных.

В этом разделе неоднократно встречалось выражение «обработка прерывания» без какого-либо объяснения его смысла. В следУ" ющем разделе мы постараемся подробно разобраться в этом вопросе.

Режим «3»: программа поразрядной установки режима ПИ

Программа устанавливает порт А в режим «3» и определяет назначение разрядов, как показано на рисунке

аа\

LD A, 0CFH OUT (ОАШ), А

LD А, 94Н OUT (ОАШ), А

Установка режима

Установка назначения разрядов

Следом за кодом установки режима загружается управляющий код (94Н) назначения разрядов

Управляющий код назначения разрядов

Рис. 8.3. Пример поразрядной установки режима ПИ

S.2.Понятие прерывания

ОБРАБОТКАСлово «прерывание» в бытовом плане ассо-

ПРЕРЫВАНИЯ циируется в нашем сознании с чем-то раздражающим (наподобие рекламных пауз, мешающих досмотреть развяку телевизионного детектива). В вычислительной технике этим словом обозначают временную задержку выполнения основной программы для решения каких-либо срочных задач.

Чтобы было проще представить себе, для чего нужно прерывание, обратимся к примеру из повседневной жизни. Допустим, вы еще накануне вечером построили план на весь рабочий день. Однако по своему опыту вы знаете, что довольно часто возникает необходимость срочно выполнить дело, которое вы не планировали. Например, позвонит начальник и вызовет в свой кабинет, чтобы Дать какое-нибудь «архиважное» задание. И вот вам приходится, Прервав запланированную работу, идти «на ковер». Случаются и чисто технические перерывы. То лампочка перегорит в настольной лампе, то картридж в принтере нужно заменить. В общем, как бы тщательно ни был продуман план, жить строго по плану не получается.

7-2970


То же самое можно сказать и о работе микрокомпьютера. В нормальных условиях ЦПУ выполняет загруженную в него программу, в которой указано, какие операции он должен произвести. Однако неисправность внешнего устройства или перебой в подаче электропитания могут нарушить этот хорошо продуманный программистом процесс. К счастью, перебои в сети электропитания или неисправности внешнего устройства возникают нечасто, поэтому постоянный контроль посредством программы всех факторов, способных нарушить выполнение задачи, невыгоден с точки зрения производительности микрокомпьютера. Только в случае возникновения ситуации, требующей немедленного вмешательства, целесообразно, прервав основную программу, выполнить необходимые срочные действия. Сигнал, сообщающий ЦПУ о возникновении ситуации, когда необходимо прервать выполнение программы, называется сигналом прерывания (Interrupt). Программа, посредством которой ЦПУ, прервав выполнение текущей задачи, выполняет предусмотренные для этого случая операции, называется программой обработки прерывания.

Если на ЦПУ подан сигнал прерывания, как показано на Рис. 8.4, выполнение программы, выполнявшейся до этого момента, временно останавливается, и ЦПУ переходит к выполнению программы обработки прерывания, размещенной в памяти, начиная с определенного адреса. После завершения операций, предусмотренных программой обработки прерывания, ЦПУ про-

должает выполнение прерванной программы.

Функция прерывания ЦПУ используется не только в тех случаях, когда требуется срочно отреагировать на какие-либо экстренные ситуации. С помощью прерывания обычно осуществляется взаимодействие быстродействующего ЦПУ с более «неповоротливыми» периферийными устройствами, а также одновременное выполнение нескольких программ, что позволяет значительно повысить производительность компьютера (см. Рис. 8.5).

Обработка прерывания

Память

Сигнал прерывания

©

ЦПУ

У©

Программа

Главная

©

обработки

программа

,.©\

прерывания

© © © © ©

Выполнение главной программы ЦПУ получило сигнал прерывания Переход к программе обработки прерывания Выполнение программы обработки прерывания Возврат в основную программу Выполнение команд прерванной программы

Рис. 8.4. Последовательность процедуры выполнения прерывания

Прерывание используют в следующих случаях

Оптимальное использование производительностиj ЦПУ

I

Рис. 8.5. В каких случаях применяется прерывание Сигнал прерывания

Два входа ЦПУ Z80 используются для сигналов запроса прерывания: INT (Interrupt) и NMI (Non-Maskable Interrupt) (см. Рис. 2.4).



0 ... 26 27 28 29 30 31 32 ... 39