Pag. 14

Struttura delle porte I/O dell' 8051

Porta P0

La porta P0 può funzionare in tre modi diversi :


Porta P1

P1 è l'unica porta che svolge solo la funzione I/O .
L'uscita della porta dipende dallo stato del latch che viene pilotato dalla CPU tramite Int.Bus (Bit D0..D7 del bus dati della CPU) e Write to Latch (segnale di controllo che diventa attivo quando la CPU esegue un operazione di scrittura su P1).
La Cpu può effettuare due di tipi di lettura diversi dello stato della porta : stato dell'uscita del latch (abilitando Read Latch) e stato del piedino (abilitando Read Pin). I due tipi di lettura dipendono dal tipo di istruzione che si utilizza per leggere P1 (Vedi Nota 1).
Se si intende far funzionare la porta come input occorre settare il latch in modo da portare in interdizione il Mosfet e quindi liberare l'escursione 0..1 del Pin.


Pag. 15

Porta P2

La porta P2 può funzionare in due modi diversi :


Porta P3

La porta P3 può funzionare in due modi diversi :


Nota 1:

Diverse istruzioni che sfruttano come operandi il contenuto delle porte I/O effettuano la lettura dello stato del latch anziché quello del Pin

La ragione di questa scelta si può spiegare con un esempio:

Supponendo di aver collegato un transistor con l'emettitore a massa e la base al Pin della porta e che stato dell'uscita sia 1, un istruzione che legga direttamente lo stato del pin della porta confonderebbe stato 1 dell'uscita con uno 0 (Vbe =0.7), mentre le istruzioni che leggono lo stato del latch annullano la possibilità di questo errore.

Pag. 16

Tabella delle istruzioni che leggono stato del latch:

Istruzione Funzione Esempio
ANL AND logico ANL P1,A
ORL OR logico ORL P2,A
XRL EX-OR logico XRL P3,A
JBC Salto se il bit = 1 e cancella il bit JBC P1.1,LABEL
CPL complementa il bit CPL P3.0
INC incrementa INC P2
DEC decrementa DEC P2
DJNZ decrementa e salta finché non è zero DJNZ P3,LABEL
MOV PX.Y,C mette il carry nel bit Y della porta X  
CLR PX.Y azzera il bit Y della Porta X  
SET PX.Y setta il bit Y della Porta X  

Le istruzione elencate sono classificate come "Read-Modify-Write" : Leggi-Modifica-Scrivi.

Leggono il contenuto della porta, eseguono le operazioni, e scrivono il risultato sulla porta.