Pag. 12

I registri dell' 8051

Nella tabella sono riportati il simbolo, il nome e I'indirizzo di ciascun registro de11' 8051.

Simbolo Nome Indirizzo
ACC Accumulatore (*) OE0H
B Registro B (*) OF0H
PSW Registro di stato (FLAG) (*) OD0H
SP Stack pointer 81H
DPTR Puntatore dati (2 byte)  
DPL parte bassa 82H
DPH parte alta 83H
PO Porta O (*) 80H
P1 Porta 1 (*) 90H
P2 Porta 2 (*) 0A0H
P3 Porta 3 (*) OB0H
IP Registro priorità interrupt (*) OB8H
IE Registro abilitazione interrupt (*) OA8H
TMOD Modo contatore/timer 89H
TCON Controllo contatore/timer (*) 88H
THO Contatore/timer 0 byte alto 8CH
TLO Contatore/timer 0 byte basso 8AH
THI Contatore/timer 1 byte alto 8DH
TL1 Contatore/timer 1 byte basso 8BH
SCON Controllo porta seriale (*) 98H
SBUF Buffer dati porta seriale 99H
PCON Controllo alimentazione 97H

* I bit di questi registri sono indirizzabili singolarmente, vedi istruzioni sui bit.

 ACC: è il registro accumulatore e viene utilizzato nelle operazioni logico-aritmetiche e di trasferimento. Viene indicato semplicemente con A nei codici mnemonici delle istruzioni.

B: viene utilizzato durante le operazioni di moltiplicazione e divisione e come registro generico per contenere dati.

PSW: il registro di stato contiene i seguenti flag:

CY AC F0 RS1 RS0 OV - P

I bit del registro di stato sono indirizzabili separatamente:

CY (PSW.7) : CarrY flag, ossia flag di riporto. Questo bit viene utilizzato come accumulatore dalle istruzioni che operano sui singoli bit. In tal caso il bit suddetto viene indicato con la lettera C.

AC(PSW.6) : Auxiliary Carry ovvero flag di riporto ausiliario; utilizzato nelle operazioni in BCD, rappresenta il riporto che si può verificare tra il 40 e il 5" bit di un dato da 1 byte.

FO (PSW.5) : Flag 0 utilizzabile dall'utente.

RS1 (PSW.4) : Register bank Selector bit 1.

RSO (PSW.3) : Register bank Selector bit 0. Insieme a RS1 seleziona il banco di 8 registri. R0 - R7 nella memoria RAM interna da 128 byte:

Pag. 13

RS1 RS0 REGISTER BANK ADDRESS
0 0 00H-07H
0 1 08H-0FH
1 0 10H-17H
1 18H-1FH

OV(PSW.2) : OVerflow; flag che indica il superamento dei limiti dell 'operando.

- (PSW. 1) : flag definibile dall'utente.

P (PSW.O) : Parity flag flag di parità. I1 suo valore rispecchia direttamente il numero di 1 presenti nell'accumulatore. P = 1 se il numero di bit ad 1 nell'accumulatore è dispari; P = O se il numero di bit ad 1 nell'accumulatore è pari.

SP: è lo stack pointer; è un registro ad 8 bit, dunque può indirizzare uno stack delle dimensioni massime di 256 byte. Benché lo stack pointer possa puntare in qualunque zona di memoria RAM interna il suo valore viene automaticamente impostato a 07H dopo un reset. Lo stack di conseguenza inizia alla locazione 08H. Infatti ne11'8051 lo SP viene incrementato prima dell'operazione di PUSH (o operazioni analoghe sullo stack). Lo stack cresce verso gli indirizzi alti della memoria RAM interna.

DPTR: è il cosiddetto Data PoinTeR. Consiste di due registri ad 8 bit (DPH e DPL). La sua funzione è quella di contenere indirizzi a16 bit negli accessi a dati residenti nella memoria RAM esterna (fino a 64 k indirizzabili).

PO, P1, P2, P3: costituiscono i latch di uscita delle porte 0, 1, 2 e 3. Non sono invece presenti latch per i dati in ingresso alle quattro porte.

I bit delle porte PO - P3 sono indirizzabili individualmente (ad esempio il bit 3 della porta PO viene indicato con P0.3).
Dopo un reset i bit delle porte PO-P3 sono tutti a 1

IP, IE: registri di controllo interruzioni.

TMOD , TCON : registri di controllo contatori/timers.

SCON: registro di controllo porta seriale.

PCON: registro di controllo risparmio energetico.

THO, TLO e TH1, TL1: sono i registri di conteggio a 16 bit (coppie a 8 bit) dei contatori/timer interni.

SBUF: è costituito da due registri separati, un registro buffer di trasmissione ed un registro buffer di ricezione. Quando un dato viene trasferito in SBUF, va nel buffer di trasmissione e vi viene mantenuto per la trasmissione seriale (la scrittura in SBUF fa anche iniziare la trasmissione). Quando un dato viene letto da SBUF proviene dal buffer di ricezione.