Последовательный порт микроконтроллеров семейства 8051 работает в
дуплексном режиме. Прием и передача могут осуществлятся одновременно. Узел
приемника порта автоматически обнаруживает на входе RXD признак начала
передачи, преобразует последовательность битов, поступающих на этот вход
в байт данных и размещает его в буфере приемника. После приема каждого
байта устанавливается бит окончания приема RI ( SCON.0), являющийся
сигналом запроса прерываний.
После программной загрузки данных в выходной буфер автоматически
начинается передача байта. Окончание передачи сигнализируется установкой в
единичное состояния флага ТI (SCON.1), что также является сигналом запроса
на прерывания. Флаги запросов, чтобы разрешить очередной обмен через
порт, должна программно сбрасываться в программе обслуживания.
Буферы приемники и передатчики имеют одинаковый физический адрес и
логоческое имя SBUF. Но в командах ввода под этим адресом подрезумеваеися
входной буфер порта, а в команандах вывода -выходной. Запросы от
приемника и передатчика используют общую линию запроса (по сушеству
выходы RI и TI объединены по логике "ИЛИ"). Для определения конкретной
причины прерывания программа обслуживания прерываний от порта должна
анализировать RI и TI.
Формат передачи по последовательному каналу, а значит и способ обнаружения
начала и конца посылки зависят от настройки, выполняемой путем загрузки
кода режима в регистр управления и статуса приемо-передатчика SCON.