Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpora_na_pechat.docx
Скачиваний:
9
Добавлен:
22.04.2019
Размер:
2.4 Mб
Скачать

23. Схемы портов параллельного асинхронного ввода-вывода мп – систем.

Схема асинхронного ввода

STB – строб от ВУ

IBF – флаг готовности порта (входной буфер заполнен)

CSD – выборка данных

CSS – выборка состояния

RDD – чтение данных

Временная диаграмма работы:

Процедура асинхронного ввода через порт:

PUSH PSW

WAIT: IN A,CSS; ввод состояния порта

ANI IBF; проверка готовности

JZ WAIT

IN A,CSD; ввод данных

MOV M,A; сохранение в памяти

POP PSW

RET

Схема асинхронного вывода

ACK – сигнал подтверждения от ВУ

OBF – флаг готовности порта (если ОBF = «1», то имеется готовность к дальнейшему выводу данных)

CSD – выборка данных

CSS – выборка состояния

WRD – запись данных

Временная диаграмма работы:

Процедура асинхронного вывода через порт:

PUSH PSW

WAIT: IN A,CSS; считываем флаг состояния

ANI A,/ОBF; проверка готовности

JZ WAIT

MOV A,M;

OUT CSD,A

POP PSW

RET

24. Структурная схема параллельного программируемого интерфейса. Основные режимы работы.

Имеет 3 порта: PA (8 p.), PB (8 p.), PC (2x4 p.). PC имеет локальное управление в каждом бите.

Осуществляется синхронный ввод/вывод по командам IN, OUT.

Управляющее слово:

7: 1

6-5: режим РА – 00 (p0), 01 (p1), 1х (p2)

4: направление обмена 1 – ввод через РА, 0 – вывод через РА

3: 1 – ввод РС-2, 0 – вывод РС-2

2: режим порта В

1: 1 - ввод РВ, 0 – вывод РВ

0: 1 – ввод РС-1, 0 – вывод РС-1

Режим 0 – обмен данными безусловный или синхронный

Режим 1 – асинхронный обмен

Режим 2 – двунаправленный обмен через порт А

Код адреса

А1 А0

Ресурс

0 0

0 1

1 0

1 1

Порт А

Порт В

Порт С

Рг упр слова (RACW)


25. Организация ввода-вывода данных по запросам прерываний от схемы программируемого параллельного интерфейса.

Вывод данных по прерыванию с использование режима 1 (асинхронный вывод):

Основная процедура:

1. Инициализация (в основной программе).

2. Определение указателей для массива символов, для длины сообщения и стека.

3. Настройка ППИ на режим работы 1 канала вывода CW=1010хххх.

4. Разрешение прерывания от ППИ из КА CW=00001101.

5. Программное включение STROB.

6. Разрешить работу системных прерываний в МП.

7. Выполнение основной программы.

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

1. Обработка прерываний.

2. Запрет внешних прерываний.

3. Сохранение PSW в стеке.

4. Чтение символа сообщения из памяти.

5. Вывод в КА (порт А).

6. Включение STROB.

7. Увеличение указателя массива, уменьшение счетчика длины сообщения.

6. Проверка условия: конец сообщения. Если да, то шаг 7, если нет то шаг 8.

7. Запрет прерывания от ППИ.

8. Разрешение внешних прерываний в МП.

9. Выход

Асинхронный обмен данными через ППИ

Вывод Ввод

26. Схемы и принципы работы двунаправленного (p0) и квазидвунаправленных портов (p1, p2, p3) микроконтроллеров mcs-51.

Порт Р0 является двунаправленным. При использовании порта Р0 в качестве выходного порта общего назначения необходимо устанавливать на его выводах внешние резисторы для задания уровня "1".

Каждый вывод портов Р1, Р2, РЗ может независимо от других настраиваться как вход или как выход. Для использования вывода в качестве входа необходимо, чтобы его защелка содержала "1". Эти порты в режиме "оборванный вход" имеют уровень "1", благодаря чему их называют квазидвунаправленными.

Назначение:

Через порт Р0 при работе с внешней памятью программ (ВПП) и внешней памятью данных (ВПД) выводится младший байт адреса (А7...А0), вводится байт команды из ВПП, вводится и выводится байт данных при работе с ВПД (все эти операции мультиплексируются во времени и поддерживаются аппаратно), задаются данные при программировании внутреннего ППЗУ в тех моделях МК, где оно предусмотрено, и читается содержимое внутренней памяти программ.

Через порт Р1 вводится младший байт адреса (А7...А0) при программировании внутреннего ППЗУ и чтении внутренней памяти программ.

Порт Р2 используется для вывода старшего байта адреса (А15...А8) при обращении к ВПП и ВПД (также мультиплексно во времени) и ввода разрядов А12...А8 адреса при программировании внутреннего ППЗУ и чтении внутренней памяти программ.

Каждый из разрядов порта РЗ используется для выполнения какой-либо альтернативной функции. Для выполнения этим портом альтернативных функций необходимо, чтобы защелки соответствующих разрядов содержали "1".

Схемотехника порта Р1 для одного разряда.

Режим вывода: Р1.х повторяет состояние триггера.

Р ежим ввода: требуется, чтобы транзистор был закрыт, следовательно, триггер должен быть в "1". Перед началом ввода необходимо выполнить настройку: mov P1,#0ffh

Обращение к портам ввода/вывода возможно с использованием команд, оперирующих с байтом, отдельным битом и произвольной комбинацией бит. При этом в тех случаях, когда порт является одновременно операндом и местом назначения результата, устройство управления автоматически реализует специальный режим, который называется "чтение-модификация-запись". Этот режим обращения предполагает ввод сигналов не с внешних выводов порта, а из его регистра-защелки, что позволяет исключить неправильное считывание ранее выведенной информации.

Подобный механизм обращения к портам реализован в следующих командах:

ANL - логическое И;

ORL - логическое ИЛИ;

XRL - исключающее ИЛИ, например XRL РЗ, А;

JBC - переход, если в адресуемом бите единица, и последующий сброс бита;

CPL - инверсия бита;

INC - инкремент порта;

DEC - декремент порта;

DJNZ - декремент порта и переход, если его содержимое не равно нулю;

MOV PX.Y, C - передача бита переноса в бит Y порта X;

SET PX.Y - установка бита Y порта X;

CLR PX.Y - сброс бита Y порта X.

Причиной, по которой команды "чтение-модификация-запись" обеспечивают раздельный доступ к регистру-защелке порта и к внешним выводам порта, является необходимость исключить возможность неправильного прочтения уровней сигналов на внешних выводах. Предположим для примера, что линия Y порта Х соединяется с базой мощного транзистора и выходной сигнал на ней предназначен для его управления. Когда в данный бит записана 1, то транзистор включается. Если для проверки состояния исполнительного механизма (в нашем случае - мощного транзистора) прикладной программе требуется прочитать состояние выходного сигнала в том же бите порта, то считывание сигнала с внешнего вывода порта, а не из D-триггера регистра-защелки порта приведет к неправильному результату: единичный сигнал на базе транзистора имеет относительно низкий уровень и будет интерпретирован в МК как сигнал 0. Команды "чтение-модификация-запись" реализуют считывание из регистра-защелки, а не с внешнего вывода порта, что обеспечивает получение правильного значения 1.

Действия над портом:

1. Установка или сброс битов порта.

2. Установка или сброс группы разрядов порта (с помощью команд ANL, XRL, ORL).

3. Тестирование входов порта:

а) ожидание прихода лог. "0": wait: JB P1.2, wait

б) ожидание прихода лог. "1": wait: JNB P1.2, wait

в) ожидание прихода импульса: wait: JNB P1.2, wait; wait: JB P1.2, wait. Для короткого импульса: CLR P1,0; SETB P1,0; wait: JNB P1.2, wait

г) ожидание поступления входного двоичного набора: mov A,#135 - код сравнения; wait: CJNE A,P1,wait.

Порт Р3 с альтернативными управляющими сигналами.

Режим вывода: альтернативный сигнал = лог. "1", Р3.х = состоянию триггера, альтернативный сигнал = лог. "0", ", Р3.х = 0

Режим ввода: триггер в лог. "1" и выходной транзистор закрыт.

Схема одного разряда мультиплексного (передача адреса (в одном направлении) и данных (в обоих направлениях) портаР0:

Для мультиплексной передачи (сначала вывод адреса, затем данных).

Управление = лог. "1", если Аi = 1, то Т1 открыт, Т2 закрыт и выход Р0.х = лог. "1"; если Аi = 0, то выход Р0.х = лог. "0". При вводе данных оба транзистора закрываются. Входные данные определяются потенциалом линии Р0.х

Порт Р2 может быть использован для передачи адресов при работе с внешней памятью, выполнен по схеме сходной с Р0

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]