MOV
Р1, #01110011Ь ;Выдать на все восемь выводов Р1 число 01110011MOV
РЗ, А ;Выдать на все восемь выводов РЗ содержимое АСС2. ANL
(логическое «И»), например:ANL
Р1, #11110011b ;выдать низкий потенциал на выводах Р1.2 и Р1.33. XRL
(исключающее «ИЛИ»), например:XRL
РЗ, #01000100Ь ;инвертировать состояние выводов РЗ.2 и Р3.64. ORL
(логическое «ИЛИ»), например:ORL
Р1, #00001100b ;выдать высокий потенциал на выводах Р1.2 и Р1.3Эти команды изменяют потенциал сразу на нескольких выводах порта.
Для изменения потенциалов только на одном выводе микросхемы можно воспользоваться следующими командами с битовой адресацией:
1. MOV
(пересылка), например:MOV
P1.2, С ;выдать содержимое бита переноса через вывод 2 порта Р22. CPL
(инверсия), например:CPL
Р1.2 ; проинвертировать 2-й бит порта Р23. SETB
(установить бит), например:SETB
Р2.3 ; выдать высокий потенциал на вывод 3 порта Р24. CLR
(сбросить бит), например:CLR
Р2. 3 ; выдать низкий потенциал на вывод 3 порта Р2При записи в разряд порта логического 0 выходной транзистор открывается и на выводе микросхемы появляется низкий потенциал, изменить который извне невозможно. Поэтому при опросе этого вывода порта микросхемы входная информация в этом случае всегда будет восприниматься как логический 0 независимо от состояния выходов внешних устройств. Если в указанный разряд записать логическую 1, то выходной транзистор закрывается и на выводе микросхемы за счет генератора тока появляется высокий потенциал. Он может быть изменен извне на нулевой потенциал замыканием соответствующего вывода микросхемы на общий провод. В этом случае считываемое микроконтроллером значение бита будет соответствовать сигналу на выходе внешнего устройства. Поэтому перед тем как осуществить ввод информации по какому-либо выводу порта, соответствующий разряд необходимо настроить на ввод
— записать в него логическую единицу.По той же причине при настройке выводов порта на выполнение альтернативных функций
в соответствующие разряды параллельного порта должны быть записаны логические I.Кроме работы в качестве обычных портов ввода-вывода внешние выводы портов Р0-Р3 могут выполнять ряд дополнительных (альтернативных) функций.
Порт Р0
может быть использован для организации части шины адреса и шины данных при работе микроконтроллера с внешней памятью данных или программ. При этом через него из микроконтроллера выводится младший байт адреса А0-А7, а также принимается в микроконтроллер или выдается из него байт данных. Во время чтения содержимого внешней памяти во все триггеры-защелки порта Р0 аппаратно записываются 1 (т. е. содержимое порта теряется). Кроме того, через порт Р0 передаются данные при программировании внутреннего ППЗУ, и читается содержимое внутренней памяти программ при работе с программатором.При сбросе микросхемы во все разряды порта Р0 записываются 1.
У схемы Р0, в отличие от схем всех других портов, отсутствует внутренний генератор тока. Поэтому при работе с этим портом приходится подключать внешние резисторы к плюсу источника питания.Формат и адрес порта Р0 приведены на рис. 6.5. На этом же рисунке приведены адреса отдельных битов порта Р0 в битовом пространстве. На рис. 6.6 приведена схема использования выводов портов Р0 и Р2 для подключения внешней памяти программ и внешней памяти данных.
Рис. 6.5.
Рис. 6.6
.Порт Р1 может быть использован для чтения внутренней памяти программ или для передачи младшего байта адреса при программировании внутреннего РПЗУ. В младших моделях микроконтроллера семейства других альтернативных функций у порта Р1 нет. При сбросе микросхемы во все разряды порта записываются 1.
Формат и адрес порта Р1 приведены на рис. 6.7. На этом же рисунке приведены адреса отдельных битов порта Р1 в битовом пространстве.
Рис. 6.7.