Микропроцессоры. Структурная схема микропроцессорной системы. Разработка аппаратной части проекта для микропроцессора с ядром MСS 8051 (МК51), страница 3

Микропроцессор МК51 содержит четыре двунаправленных порта ввода – вывода Р0, Р1, Р2 и Р3. Каждый порт содержит управляемый регистр защелку, образующий входной буфер и выходной каскад (драйвер). Порты Р0 и Р2 используются для обращения к внешней памяти (ВП). Через порт Р0 последовательно выводится младший байт адреса ВП, а затем выводится или принимается байт данных. Через порт Р2 выводится старший байт адреса ВП.

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

Таблица 2. Альтернативные функции порта Р3.

Символ

PIN

Имя и назначение альтернативной функции

RD

Р3.7

Чтение. Сигнал низкого уровня формируется при обращении к внешней памяти данных.

WR

Р3.6

Запись. Сигнал низкого уровня формируется при обращении к внешней памяти данных.

T1

Р3.5

Вход таймера – счетчика 1 или тест – вход.

T0

Р3.4

Вход таймера – счетчика 0 или тест – вход.

INT1

Р3.3

Вход запроса прерывания 1. воспринимается сигнал низкого уровня или срез.

INT0

Р3.2

Вход запроса прерывания 1. воспринимается сигнал низкого уровня или срез.

TXD

Р3.1

Выход синхроимпульсов последовательного порта.

RXD

Р3.0

Ввод – вывод данных последовательного порта.

Альтернативные функции порта Р3 включаются путем записи единицы в соответствующие биты регистра – защелки Р3.0 – Р3.7.

Каждая линия портов Р0 – Р2 может быть независимо использована для ввода или для вывода информации. Для ввода информации необходимо ввести в соответствующий бит регистра – защелки порта единицу. По сигналу "Сброс" СБР в регистры – защелки всех портов автоматически записываются единицы, настраивая тем самым порты на ввод информации. Обращение к портам возможно при помощи команд, оперирующих с байтами, битами или комбинациями битов. В режиме "чтение – модификация – запись" чтение информации производится из регистра – защелки порта, что обеспечивает раздельный доступ к регистру (входу) и к выходу порта и исключает возможные ошибки.

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

Микропроцессор МК 51         UCC                         Вход внешней микросхемы

Внутренняя шина   DD1                 R1

данных                                            VT1                              R2           VT2

D                               

Запись в                    C

D-триггер                      

D1

Чтение из D-триггера    D2

Чтение из внешнего устройства

Рисунок 3. Схема одной линии порта МК 51 в режиме записи во внешнее устройство.

Выход (ножка) одной линии порта микросхемы МК51 соединена со стоком выходного полевого транзистора VT1,“подтянутого ”к потенциалу питания при помощи внутреннего нагрузочного резистора R. Одновременно с этой же ножкой микросхемы соединен вход буфера ввода D2. Если мы присоединим к этой ножке микросхемы через резистор R2 базу внешнего транзистора VT2, то занося в D-триггер DD1 логические "1" или "0", мы будем открывать или закрывать VT2, реализуя таким образом выбранную линию в качестве линии вывода информации.

Использование линии для ввода информации поясняет схема, приведенная на рисунке 4. Ножка микропроцессора (а, следовательно, и вход буфера D2)соединены с выходом микросхемы DD2, состояние которого мы хотим прочитать. Но перед этим необходимо закрыть транзистор VT1, записав в триггер DD1 этой линии единицу. В самом деле, если VT1 будет открыт, он попросту шунтирует анализируемый выход микросхемы DD2. В лучшем случае этот конфликт на ножке просто исказит вводимую информацию, в худшем же варианте сгорит один из выходных каскадов микросхем. Таким образом для использования линии порта для ввода информации необходимо предварительно записать единицы в соответствующие выходные D-триггеры.