Микропроцессор МК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-триггеры.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.