В командах, которые изменяют значения в защелках, образующих регистры портов Р0..Р3, новые данные фиксируются на фазе S6P2 последнего машинного цикла. На выводе эти данные появляются на фазе S1P1 следующего цикла, поскольку выходной буфер на фазе Р2 текущего состояния удерживает значение, имевшееся на фазе Р1 (рис. 3.11).
Рис. 3.11 - Временные параметры обновления данных в портах
Если при такой операции на линии портов Р1, 2 или 3 имеет место переход «0»-«1», то в такте S1 включается элемент «pull-up», обеспечивающий ток, приблизительно в сто раз превышающий обычный рабочий ток. Это ускоряет перезарядку емкостей нагрузки и сокращает время переключения.
Операции типа «чтение-модификация-запись»
При обращении к портам Р0..Р3 одни команды читают состояние регистра порта (или отдельной защелки), а другие читают значение сигнала на выводе. Команды, читающие состояние регистра, затем выполняют некоторую операцию, результат которой вновь записывается в регистр. Они называются командами типа «чтение-модификация-запись». Если приемником является порт или бит порта, следующие команды обращаются к регистру (защелке) порта:
ANL <port>, <source>
ORL <port>, <source>
XRL <port>, <source>
JBC <port.bit>, <addr>
CPL <port.bit>
INC <port>
DEC <port>
DJNZ <port>, <addr>
CLR <port.bit>
SETB <port.bit>
MOV <port.bit>, <source>
Эти команды дают возможность изнутри правильно прочитать значение порта, когда он высоким значением открывает транзисторный вентиль и на линий потенциал падает до логического «0».