Общие сведения.
Организация портов ввода вывода микроконтроллера 8051.
Дуплексный обмен
Полудуплексный обмен
Симплексный обмен
Асинхронный обмен
Алгоритмы обмена данными
Порты ввода-вывода предназначены для связи микроконтроллера с различными объектами и могут реализовывать различные алгоритмы обмена данными:
Ø асинхронный программный обмен,
Ø синхронный обмен,
Ø ввод-вывод с сигналами квитирования.
Обмен данными между портами и объектами обеспечивается специальными подпрограммами - драйверами, создаваемыми индивидуально для каждого объекта.
В режиме асинхронного программного обмена ввод и вывод данных производится по программе в моменты выполнения инструкций ввода и вывода данных. Предполагается, что объект всегда готов к обмену: при вводе - данные в момент выполнения инструкции in присутствуют на линиях порта, при выводе - данные будут прочитаны с линий порта до следующего вывода.
|
|
Симплексным считается однонаправленный обмен данными. Такой обмен обычно является синхронным. В этом случае каждое изменение данных на линиях порта сопровождается сигналом синхронизации (стробом). Строб генерируется источником данных и предназначается для задания момента записи данных в регистр приемника.
При выводе данных сигнал строба должен сформировать микроконтроллер, используя для этого специальные линии шины управления или отдельные биты портов ввода-вывода.
Полудуплексным считается двунаправленный синхронный обмен, при котором в любой момент времени передача данных может производиться только в одном направлении. Направление передачи данных порта меняется в процессе работы в зависимости от решаемой в текущий момент задачи.
Дуплексным считается двунаправленный синхронный обмен, при котором в любой момент времени возможна передача данных в двух направлениях. В этом случае для передачи данных в каждом направлении выделяется свой однонаправленный порт.
Количество портов - 4. Название - P0...P3, они адресуются как регистры специальных функций. Разрядность - 8 с возможностью побитной адресации разрядов. Направление обмена информацией через порты - все порты двунаправленные, причем имеется возможность в каждом порту часть разрядов использовать для ввода данных, а часть для вывода.
Из-за ограниченного количества выводов корпуса ИМС микроконтроллера, большинство выводов используется для выполнения двух функций - в качестве линий портов и для альтернативных функций:
- Порты P0 и Р2 используются при обращении к внешней памяти. При этом на выходах P0 младший байт адреса внешней памяти мультиплексируется с вводимым/выводимым байтом. Выходы Р2 содержат старший байт адреса внешней памяти, если адрес 16-разрядный. При использовании восьмиразрядного адреса портом Р2 можно пользоваться для ввода-выввода информации обычным образом. При обращении к внешней памяти в P0 автоматически заносятся 1 во все биты. Информация в Р2 при этом остается неизменной.
- Порт P3 помимо обычного ввода и вывода информации используется для формирования и приема специальных управляющих и информационных сигналов. Разряды порта (все или частично) при этом могут выполнять следующие альтернативные функции. Альтернативные функции могут быть активированы только в том случае, если в соответствующие биты порта P3 предварительно занесены 1. Неиспользуемые альтернативным образом разряды могут работать как обычно.
Вывод порта | Альтернативная функция |
РЗ.0 | RXD - вход последовательного порта |
Р3.1 | TXD - выход последовательного порта |
РЗ.2 | INT0 - внешнее прерывание 0 |
Р3.3 | INT1 - внешнее прерывание 1 |
РЗ.4 | Т0 - вход таймера-счетчика 0 |
РЗ.5 | Т1 - вход таймера-счетчика 1 |
РЗ.6 | WR - строб записи во внешнюю память данных |
РЗ.7 | RD - строб чтения из внешней памяти данных |
Таблица 1.10 Альтернативные функции портов.
|
|