Студопедия — Параллельные порты
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Параллельные порты






 

Порты Р0, PI, P2, Р3 являются двунаправленными портами ввода-вывода и предназначены для обеспечения обмена информацией МК51 с внешними устройствами, образуя 32 линии ввода-вывода. Каждый из портов (рис.25) содержит регистр-фиксатор (защелку), который представляет собой восьмиразрядный параллельный регистр с дополнительной логикой управления и буфер – выходной каскад, служащий для сопряжения внутренних цепей микроконтроллера с внешними устройствами. Регистры данных портов находятся в области РСФ (регистров специальных функций) и, следовательно, имеют как байтовую, так и битовую адресацию. Это позволяет обращаться к портам как к обычным ячейкам памяти или обслуживать каждую линию порта командами битового процессора независимо от других линий того же порта. С учетом этого обстоятельства схемотехника портов рассматривается на уровне одного вывода порта. Порты Р0 – Р3 имеют идентичные характеристики. Данные, записанные в них, статически фиксируются и не изменяются до перезаписи.

Кроме операций ввода-вывода информации предусмотрена возможность выполнения логических операций И, ИЛИ и исключающее ИЛИ непосредственно на регистрах - фиксаторах портов

Р0 ÷ Р3.

Физические адреса регистров - фиксаторов Р0, P1, P2, Р3 составляют для:

Р0 - 80Н, при битовой адресации 80Н÷87Н;

Р1 - 90Н, при битовой адресации 90Н÷97Н;

P2 - А0Н, при битовой адресации А0Н÷А7Н;

Р3 - В0Н, при битовой адресации В0Н÷В7Н.

 

 

Рис. 25. Устройство параллельного порта ввода-вывода

 

Помимо работы в качестве обычных портов ввода-вывода, линии портов Р0÷Р3 могут выполнять ряд дополнительных альтернативных функций.

Через порт Р0:

- выводится младший байт адреса А0÷А7 при работе с внешней памятью программ и внешней памятью данных;

- выдается и принимается байт данных при работе с внешней памятью (при этом обмен байтом данных и вывод младшего байта адреса внешней памяти мультиплексированы во времени);

- задаются данные при программировании внутреннего ППЗУ и читается содержимое внутренней памяти программ.

Через порт Р1:

- задается младший байт адреса при программировании внутреннего ППЗУ и при чтении внутренней памяти программ.

Через порт P2:

- выводится старший байт адреса А8÷А15 при работе с внешней памятью программ и внешней памятью данных;

- задается старший байт (разряды А8÷А14) адреса при программировании внутреннего ППЗУ и при чтении внутренней памяти программ.

Каждая линия порта Р3 имеет индивидуальную альтернативную функцию:

Р3. 0 - RxD, вход последовательного порта, предназначен для ввода последовательных данных в приемник последовательного порта;

Р3. 1 - TxD, выход последовательного порта, предназначен для вывода последовательных данных из передатчика последовательного порта;

Р3. 2 - , используется как вход 0 внешнего запроса прерывания;

Р3. 3 - , используется как вход 1 внешнего запроса прерывания;

Р3.4 - Т0, используется как вход счетчика внешних событий Т/С0;

Р3. 5 - T1, используется как вход счетчика внешних событий Т/С1;

Р3. 6 - , строб записи во внешнюю память данных, выходной сигнал, сопровождающий вывод данных через порт Р0 при использовании команд MOVX @Ri,A и MOVX @DPTR, А;

Р3. 7 - , строб чтения из внешней памяти данных, выходной сигнал, сопровождающий ввод данных через порт Р0 при использовании команд MOVX A,@Ri и MOVX A,@DPTR.

 

2.3.1.1. Особенности схемных решений параллельных портов

 

На рис. 26-29 показаны функциональные схемы одного вывода в каждом из портов для серии 8051 [3]. Для серии 8031 конфигурация портов Р1-Р3 отличается только выходным усилительным каскадом, который представлен на рис. 30. На рис. 26-29 фиксатор-защелка показан в виде D-триггера, тактируемого внутренним сигналом "Строб записи в триггер", который вырабатывается при записи данных в порт. Выход триггера Q может быть подключен на внутреннюю шину МК51 через буфер В1 сигналом "Строб чтения вывода триггера", что обеспечивает возможность программного чтения содержимого фиксатора. Значение сигнала непосредственно на выводе порта может быть программно считано на внутреннюю шину МК51 через буфер В2, управляемый внутренним сигналом "Строб чтения вывода порта". Часть команд при чтении порта активизируют режим "Чтение защелки", другая часть команд - режим "Чтение выводов".

 

Рис.26. Функционально-структурная схема разряда порта Р0

 

Сигналы управления логикой каждого разряда порта вырабатываются устройством управления и синхронизации (УУС) при выполнении команд и подаются в него по выделенным линиям шины управления ШУ (линии «Управление», «Строб чтения вывода триггера», «Строб записи в триггер», «Строб чтения вывода порта»). Разрядная «линия внутренней шины данных» DX соединяет каждый разряд порта с соответствующей разрядной линией встроенной двунаправленной шины данных (ШД) микроконтроллера для организации двухстороннего обмена.

Для выполнения альтернативных функций каждый разряд порта P0 линиями «Адрес/Данные» соединен с соответствующими разрядами младшего байта шины адреса (ША) и шины данных (ШД). Каждый разряд порта P2 линиями «Адрес» соединен с соответствующими разрядами старшего байта шины адреса, а разряды порта P3 - линиями «Альтернативная функция входа» и «Альтернативная функция выхода», образующие шину альтернативных функций (ШАФ), соединены с соответствующими входами и выходами встроенных периферийных устройств и центрального процессора.

Порт Р0 работает как в основном, так и альтернативном режиме. В альтернативном режиме при выполнении команд MOVC и MOVX через него выводится младший байт адреса и производится чтение данных из ВПД и ВПП, а также запись данных в ВПД. Каждый разряд порта Р0 (см. рис. 26) содержит триггер-защелку DD1 с логикой управления основной (буферы В1 и В2) и альтернативной (элементы DD2 и DD3) функциями и драйвер (транзисторы VT1 и VT2). Выбор основной или альтернативной функции порта выполняется мультиплексором - переключателем MX под действием сигнала «Управление». В основном режиме (сигнал Управление= «0») вход MX драйвера соединен с инверсным выходом триггера. Транзистор VT1 заперт, и для работы выходного ключа на транзисторе VT2 необходимо подключить внешний подтягивающий резистор.

При записи данных в порт внутренним сигналом «Строб записи в триггер» данные с линии внутренней шины данных записываются в триггер и появляются на выводе Р0.х драйвера. Данные в триггере и на выходе драйвера сохраняются до следующей записи. Состояние триггера может быть прочитано на линию внутренней шины данных сигналом «Строб чтения вывода триггера», который переводит выход трехстабильного буфера В1 в нормальное состояние. Этот режим чтения используется в командах модификации содержимого порта. Чтение данных с вывода порта на линию внутренней шины данных выполняется сигналом «Строб чтения вывода порта» при закрытом транзисторе VT2. Для запирания транзистора VT2 и перевода разряда порта в режим чтения необходимо записать в его триггер 1.

Альтернативные функции включаются автоматически лишь во время выполнения команд MOVC и MOVX. В это время сигналом Управление= «1» УУС переключает вход 2 драйвера к выходу инвертора DD2 и по 8 младшим разрядам внутренней шины адреса ША(А7÷А0), одной из линий которой является линия «Адрес/Данные», выдает младший байт адреса и байт данных. Если в режиме альтернативных функций выводятся адреса или данные, то работают оба транзистора драйвера, образуя комплементарный ключ. При чтении данных из ВПП или ВПД сигналом Адрес/Данные= «1» запирается транзистор VT2, переводя драйвер порта в режим ввода. Ввод данных осуществляется обычным образом через буфер B2 сигналом «Строб чтения выводапорта»7. Содержимое триггеров всех разрядов порта P0 при выполнении альтернативной функции не изменяется.

Порт Р1 работает только в основном режиме, обеспечивая функции ввода/вывода данных. Каждый разряд порта Р1 (рис.27) содержит триггер-защелку DD1 с логикой управления и выходной драйвер. Транзистор VT1' выполняет функции подтягивающего резистора для транзистора VT2 в тех случаях, когда транзистор VT1 закрыт. В остальном работа порта Р1 соответствует описанному выше.

Рис.27. Функционально-структурная схема разряда порта Р1

 

Порт Р2 работает как в основном, так и альтернативном режиме (рис. 28). Основной режим порта Р2 (сигнал Управление=«0») аналогичен основному режиму порта P0. В альтернативном режиме (сигнал Управление= «1») через порт P2 выдается старший байт адреса при обращении командами MOVX и MOVC к внешним ВПД и ВПП. Линия «Адрес» является одной из линий старшего байта внутренней шины адреса ША (A15÷A8). Содержимое всех триггеров порта P2 при выполнении альтернативной функции сохраняется.

 

Рис.28. Функционально-структурная схема разряда порта Р2

 

Порт Р3 (рис.29), кроме основной функции, аналогичной основной функции порта Р0, выполняет альтернативную функцию по управлению циклами обмена с внешними ВПД и ВПП и другими специальными функциями аппаратного уровня (см. рис. 5). Альтернативная функция любой линии порта реализуется только в том случае, если в соответствующем этой линии разряде триггера записана «1». В противном случае на выходе разряда порта будет установлен «0». При аппаратном сбросе (RESET=1) все разряды триггеров портов устанавливаются в состояние «1», а порты - в режим «Ввод».

Вывод альтернативной информации на выход драйвера осуществляется по линии «Альтернативная функция выхода», а ввод – по линии «Альтернативная функция входа» через дополнительные логические схемы DD2 и DD3. При отсутствии внешней ВПП командой MOVC соответствующие альтернативные функции и не исполняются.

 

 

Рис.29. Функционально-структурная схема разряда порта Р3

 

Все выводы портов P1, P2 и Р3 имеют внутренние подключенные к питанию подтягивающие резисторы (выполнены в виде показанных на рис. 27-29 транзисторов VT1', включенных в режиме источников тока). Каждый вывод указанных портов может независимо от других использоваться как вход или как выход. Для использования вывода в качестве входа необходимо, чтобы его защелка содержала «1», которая при этом запирает выходной транзистор VT2. Из-за наличия внутреннего подтягивающего резистора выводы портов P1, P2, Р3 в режиме «оборванный вход» имеют уровень «1». Благодаря этой особенности порты P1, P2, Р3 иногда называют "квазидвунаправленными".

Порт Р0 не имеет внутренних подтягивающих резисторов (см. рис. 26). Транзистор VT1 в выходном каскаде выводов порта Р0 открыт только когда через эти выводы выдается «1» при обращениях к внешней памяти. Во всех других режимах работы транзистор VT1 заперт. Таким образом, в случае использования порта Р0 в качестве выходного порта общего назначения, необходимо устанавливать на его выводах внешние подтягивающие резисторы для задания уровня «1». Запись «1» в защелку вывода порта Р0 закрывает транзистор VT2 и при отсутствии внешнего подтягивающего резистора переводит вывод в высокоимпедансное состояние. При этом данный вывод может использоваться в качестве входа. Если порт Р0 используется в качестве порта ввода/вывода общего назначения, каждый из его выводов может независимо от других работать как вход или как выход. Порт Р0 является в чистом виде двунаправленным портом.

 

2.3.1.2. Работа с параллельными портами

 

В режиме работы с внешней памятью программ порт Р2 служит для выдачи сигналов старших разрядов адреса и статически фиксирует их до момента изменения. Обращения к внешней памяти программ всегда выполняются с использованием 16-разрядного адреса. Когда МК51 работает с внешней памятью программ, все 8 бит порта Р2 задействованы на выдачу старшего байта адреса (старший байт счетчика команд PC) и не могут быть использованы в качестве линий ввода/вывода общего назначения.

Обращения к внешней памяти данных могут выполняться как с использованием 16-разрядного адреса (MOVX A, @DPTR), так и с использованием 8-разрядного адреса (MOVX A, @Ri). При использовании 16-разрядного адреса старший байт адреса выдается через порт Р2, на линиях которого байт адреса удерживается в течение всего времени цикла записи или чтения. Если через линию порта Р2 выдается разряд адреса, содержащий «1», то напряжение логической «1» формируется мощным транзистором VT1 (см.

рис. 28), который при этом будет открыт в течение всего времени выдачи адреса.

Выдача адреса через порт Р2 не влияет на содержимое защелок порта Р2. Если порт Р2 не задействован на выдачу адреса, то на его выводах выставляется содержимое защелок (регистр Р2 в области РСФ).

Для перевода любой линии портов Р1÷Р3 на прием входной информации необходимо в соответствующий фиксатор-защелку порта записать «1» с помощью команды выдачи данных. Сигнал RST устанавливает все порты на прием входной информации.

Порт Р0 - восьмиразрядный двунаправленный порт с тремя состояниями. Информация, выдаваемая портом Р0 с помощью команд записи в память, сопровождается строб-импульсом . При записи информации в порт Р0 с помощью команд чтения из памяти вырабатывается строб-импульс .

В режиме работы с внешней памятью программ порт Р0 служит для выдачи младших разрядов адреса памяти программ и приема кодов команд. В режиме работы с внешним ОЗУ данных порт Р0 служит для выдачи адреса внешнего ОЗУ данных и приема-выдачи данных при обмене с внешним ОЗУ.

При работе с последовательным портом МК51 линии Р3.0 и Р3.1 используются как вход RXD и выход TXD последовательного порта. Кроме того, вывод Р3. 1 можно использовать как выход тактового сигнала в синхронном режиме работы последовательного интерфейса МК51.

Выводы Р3. 2 и Р3. 3 можно использовать для внешнего аппаратного прерывания и , выводы Р3.4 и Р3.5 – как входы счетчиков внешних событий для таймеров/счетчиков Т0 и Т1.

Выводы Р3. 6 и Р3. 7 порта Р3 служат для выдачи сигналов разрешения соответственно записи () и чтения () байта ВПД через порт Р0.

Основными командами при работе с портами являются команды типа MOV:

- MOV P1, А – вывод операнда из аккумулятора в порт Р1 (запись в регистр-защелку);

- MOV A, Р1 – чтение данных с выводов порта Р1 в аккумулятор;

- MOV P1.1, C – вывод бита из битового аккумулятора CY в разряд порта Р1.1;

- MOV C, P1.1 – чтение бита порта Р1.1 в битовый аккумулятор CY.

Система команд МК51 позволяет считывать информацию с фиксатора-защелки порта или непосредственно с выхода, в зависимости от кода инструкции.

Кроме операций ввода-вывода информации предусмотрена возможность выполнения логических операций И, ИЛИ и исключающее ИЛИ непосредственно на фиксаторах портов Р0÷Р3. В инструкциях, в которых порт служит операндом источником, информация считывается непосредственно с выводов порта, например

ADD A, P1: содержимое аккумулятора складывается с данными на выводах порта Р1 и результат заносится в аккумулятор. Во всех случаях, когда операндом и регистром назначения является порт или бит порта, команды считывают данные с выходов фиксаторов-защелок, а не с внешних контактов выводов порта. Например, ORL Р2, А: содержимое регистра-защелки порта Р2 логически складывается с содержимым аккумулятора и записывается обратно в регистр-защелку.

Рассмотренная команда является примером команд, относящихся к режиму " Чтение-Модификация-Запись ".

Команды чтения портов МК51 делятся на две категории: команды, считывающие информацию с выходов защелок, и команды, считывающие информацию непосредственно с внешних контактов выводов порта. Команды, считывающие информацию с выходов защелок, реализуют так называемый режим "Чтение-Модификация-Запись", заключающийся в том, что команда считывает состояние защелки, при необходимости модифицирует полученное значение и записывает результат обратно в защелку.

Ниже приводятся команды, работающие в режиме "Чтение-Модификация-Запись". Во всех случаях, когда операндом и регистром назначения результата является порт или бит порта, команды считывают информацию с выходов защелок, а не с внешних контактов выводов порта:

- ANL Р1, А – логическое умножение содержимого аккумулятора с содержимым регистра-защелки Р1 и запись в Р1;

- ORL P2, A – логическое сложение содержимого аккумулятора с содержимым регистра-защелки Р2 и запись в Р2;

- XRL Р3, А – операция ИСКЛЮЧАЮЩЕЕ ИЛИ над содержимым аккумулятора и содержимым регистра-защелки Р3 и запись в Р3;

- INC Р2 – инкремент содержимого регистра-защелки Р2 и запись в Р2;

- DEC Р2 – декремент содержимого регистра-защелки Р2 и запись в Р2;

- DJNZ Р3, LABEL – декремент содержимого регистра- защелки Р3 и переход на метку LABEL, если содержимое не ноль.

С помощью команд типа "Чтение-Модификация-Запись" можно модифицировать либо проверить любую линию ввода-вывода с помощью команд условного перехода:

- CPL Р3. 0 – инверсия бита порта Р3.0;

- CLR Р2.2 – очистка (сброс) бита порта Р2.2;

- SETB Р1.0 – установка бита порта Р1.0;

- MOV P1.4, C – запись содержимого битового аккумулятора CY в Р1.4;

- JB Р1.1, LABEL – проверка состояния бита Р1.1 и переход, если бит равен «1».

 







Дата добавления: 2015-08-12; просмотров: 1487. Нарушение авторских прав; Мы поможем в написании вашей работы!



Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Деятельность сестер милосердия общин Красного Креста ярко проявилась в период Тритоны – интервалы, в которых содержится три тона. К тритонам относятся увеличенная кварта (ув.4) и уменьшенная квинта (ум.5). Их можно построить на ступенях натурального и гармонического мажора и минора.  ...

Понятие о синдроме нарушения бронхиальной проходимости и его клинические проявления Синдром нарушения бронхиальной проходимости (бронхообструктивный синдром) – это патологическое состояние...

Опухоли яичников в детском и подростковом возрасте Опухоли яичников занимают первое место в структуре опухолей половой системы у девочек и встречаются в возрасте 10 – 16 лет и в период полового созревания...

Определение трудоемкости работ и затрат машинного времени На основании ведомости объемов работ по объекту и норм времени ГЭСН составляется ведомость подсчёта трудоёмкости, затрат машинного времени, потребности в конструкциях, изделиях и материалах (табл...

Гидравлический расчёт трубопроводов Пример 3.4. Вентиляционная труба d=0,1м (100 мм) имеет длину l=100 м. Определить давление, которое должен развивать вентилятор, если расход воздуха, подаваемый по трубе, . Давление на выходе . Местных сопротивлений по пути не имеется. Температура...

Огоньки» в основной период В основной период смены могут проводиться три вида «огоньков»: «огонек-анализ», тематический «огонек» и «конфликтный» огонек...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия