Контакты на 8051 не могут быть переключены на вход или выход. Нет направления управления. Каждый вывод имеет сильный драйвер для GND и слабый драйвер для VCC. На переднем фронте (изменение уровня от 0 [GND] до 1 [VCC]) вывод будет подведен к VCC немного сильнее в течение двух тактов; это для лучшего края.
Чтобы использовать вывод в качестве входа , необходимо установить его в 1 и оставить там. Источник возбуждения за пределами 8051 теперь может выводить вывод на GND, давая 0 при чтении. Если внешний источник выводит вывод на VCC или позволяет ему плавать, вывод будет читаться как 1.
Чтобы использовать вывод в качестве выхода , вы установите его на 0 и 1, как вам нужно. Убедитесь, что ведомая нагрузка имеет достаточно высокое полное сопротивление.