Студопедия

Главная страница Случайная страница

Разделы сайта

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






Порты ввода - вывода






Система ввода-вывода (ВВ) микроконтроллеров MCS - 51 состоит из четырех двунаправленных 8-разрядных портов P0-P3. Каждый из портов содержит регистр - защелку, имеющий байтовую и битовую адресацию для установки (сброса) разрядов с помощью программного обеспечения. Все порты ВВ отображены в пространстве внутренней памяти DSEG по адресам 80H, 90H, 0A0h, 0B0H и ничем не отличаются от обычных ячеек памяти. Таким образом, любая команда с операндом из внутренней памяти может быть применена к содержимому портов P0-P3. Порты P0-P3 совмещены с битовым пространством BSEG, что обеспечивает доступ к отдельным его разрядам независимо от других. Порты P0-P3 занимают в битовом пространстве BSEG адреса 80H-87H, 90H-97H, 0A0H-0A7H и 0B0H-0B7H соответственно.

Помимо работы в качестве обычных портов ввода/вывода линии портов P0-P3 могут выполнять ряд дополнительных функций, описанных ниже.

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

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

Линии порта P3 реализуют управление циклами обмена и другие специальные функции аппаратного уровня, описываемые в таблице 12.3.

Таблица 12.3

Функции линий порта Р3

Бит Мнемоника Назначение
P3.0 RxD Вход приемника последовательного канала
P3.1 TxD Выход передатчика последовательного канала
P3.2 Вход запроса на прерывание 0
P3.3 Вход запроса на прерывание 1
P3.4 T0 Внешний вход таймера/счетчика 0
P3.5 T1 Внешний вход таймера/счетчика 1
P3.6 Строб записи в XSEG
P3.7 Строб чтения из XSEG

Последнее используется при обращении к внешней памяти. Во время обращения к внешней памяти содержимое разрядов регистра-защелки порта P2 не изменяется, а во все разряды регистра - защелки порта P0 всегда автоматически записываются «1».

Каждая линия портов может быть использована независимо для ввода или вывода информации. Для перевода какой-либо линии порта в режим ввода информации в соответствующий разряд регистра-защелки должна быть записана логическая 1. При сбросе состояние всех портов устанавливается равным 0FFH.

Любую линию ввода-вывода порта можно проверить с помощью команд условного перехода.

Порты P1-P3 имеют встроенную нагрузку, тогда как для порта P0, выполненного по схеме с открытым стоком, требуется внешняя нагрузка (за исключением случая, когда шина порта P0 используется в качестве шины «адрес/данные» внешней памяти).

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

К командам чтения первой категории относятся, например, команды:

MOV A, < port>; MOV Rn, < port>; MOV @Ri, < port>; MOV C, < port.bit>.

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

Примеры подобных команд:

ANL < port>, < source>; ORL < port>, < source>; XRL < port>, < source>;

JBC < port.bit>, < addr>; CPL < port.bit>; INC < port>; DEC < port>;

DJNZ < port>, < addr>; CLR < port.bit>; SETB < port.bit>;

MOV < port.bit>, < source>;

где < source> - операнд-источник - аккумулятор, регистр, косвенно-адресуемая ячейка памяти.

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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.