Při komunikaci s externí pamětí
programu se využívá řídící signál mikroprocesoru PSEN (program store enable) pro čtení, při komunikaci s
externí pamětí dat se využívá dvou řídících signálů - RD (čtení) a WR (zápis).
Pro přístup do paměti programu se vždy používá 16-bitová adresa. Pro přístup do externí
paměti dat se může používat buď 16-bitová adresa (MOVX @DPTR,A) nebo 8-bitová
adresa (MOVX A,@Rr). Pokud se používá 16-bitové adresace (pro paměť dat),
vyšší byte adresy se vysílá na port 2, kde zůstává po celou dobu cyklu čtení
nebo zápisu. Výstupní budiče portu 2 v tomto případě využívají velké zvyšovací
odpory po celou dobu, kdy se portem vysílají log.1, které jsou obsaženy v
adrese. Tak je tomu tedy během vykonávání instrukce MOVX @DPTR,A. Během této
doby KO portu 2 (v SFR) nemusí obsahovat jedničky a obsah KO není ani nijak
modifikován. Pokud po cyklu externí paměti okamžitě nenásleduje další cyklus
externí paměti, nezměněný obsah KO portu 2 se vysílá znovu v dalším cyklu. Pokud
se používá 8-bitové adresace (MOVX A,@Rr), obsah KO portu 2 (tedy příslušné SFR)
zůstanou na pinech portu 2 po celou dobu cyklu externí paměti. To usnadňuje
stránkování.
V jiném případě je na portu 0 časově přepínán (multiplexován) nižší
byte adresy s datovým bytem. Vnitřní signál CPU Adresa/Data ovládá oba FET
tranzistory ve výstupních budičích portu 0 a pak tedy piny portu nejsou obvodem
s otevřeným kolektorem a nevyžadují tím pádem externí zvyšovací rezistory.
Signál ALE (Adress Latch Enable) by měl být použit k zachycení adresového byte
do externího KO. Adresový byte je platný při sestupné hraně signálu ALE. Potom,
v cyklu zápisu, datový byte který má být zapsán se vyšle na port 0 přesně před
aktivací WR a zůstane zde, dokud není WR deaktivován. Během každého přístupu k externí paměti
CPU zapíše FFH do KO portu 0, potom tedy mazání jakékoliv informace v KO portu 0
může být pozdrženo. Pokud uživatel zapisuje do portu 0 během vybavování dat v
externí paměti (činnosti paměti), příchozí datový byte bude znehodnocen. Proto
nezapisujte data do portu 0, pokud se používá externí paměť programu. Přístup k
externí paměti programu je umožněn, pokud jsou splněna některá z následujících
podmínek: 1) signál EA je aktivní 2) čítač instrukcí
PC (Program Counter) obsahuje číslo větší než FFFH. Verze mikroprocesoru 8051,
které nemají integrovánu žádnou paměť programu (ROM, FLASH EPROM) musejí mít
signál EA trvale aktivován (pin EA připojen na zem). Program je pak celý načítán z externí
paměti (max.64kB u standardní verze). Když CPU vykoná program v externí paměti,
všechny piny portu 2 jsou nastaveny jako výstupní, a nemohou být používány pro
normální v/v použití. Během vybavováni dat externího programu port 2 vysílá
vyšší byte čítače instrukce (PC). Během tohoto vysíláni výstupní budiče portu 2
využívají velkého zvyšovacího odporu a to v případě, kdy bity čítače instrukcí
(PC) jsou jedničkové.