Цитата
Я так понял, что регистр-защёлка порта Pn и регистр Pn - это не одно и то же?
Для аналогии приведу регистр SBUF0. Один адрес для чтения и записи, но физически регистры разные. Чтение производится из одного регистра, запись в другой.
Примерно то же самое с портами ввода-вывода. Регистр-защелка только для записи (в качестве буфера порта ввода-вывода). Чтение осуществяется непосредственно с пина (он же выход регистра-защелки)
Такая схемотехника была заложена в классический MCS-51 Intel-ом. Только не спрашивайте зачем именно так.
Все остальные производители поддерживают это для совместимости. Некоторые добавляют свои навороты (как Силабс например).
Цитата
Задаю вопрос, потому что пока нигде не нашёл простого и толкового описания. Везде пишут так, будто это всё само собой разумеется, без подробностей.
DataShit на C8051F32X v1.4 стр.132 П 14.3
Цитата
When writing to a Port, the value written to the SFR is
latched to maintain the output data value at each pin. When reading, the logic levels of the Port's input pins
are returned regardless of the XBRn settings (i.e., even when the pin is assigned to another signal by the
Crossbar, the Port register can always read its corresponding Port I/O pin). The exception to this is the
execution of the read-modify-write instructions.
Ну и схема порта на стр.127 дает представление о внутренней организации (линии port-input, port-output)