Convertitore analogico/digitale

Gli ST possiedono un convertitore analogico digitale a 8 bit che può misurare la tensione da uno qualsiasi dei pin abilitabili come Ain. La precisione del convertitore è di +/-2 LSB, e degrada nel caso in cui l'ST sia alimentato con un clock inferiore a 1,2Mhz.

Il range di tensione misurabile  va da 0 a Vcc, se il microcontroller è alimentato a 5V il range va da 0 a 5V a passi di 5/255=0,0196V (In pratica si ha una risoluzione di 20mV).

I registri che riguardano l'ADC sono l'ADR (ADC Data Register) e l'ADCR (ADC Control Register). Il primo è il registro dati da cui leggere il risultato della conversione, il secondo è il registro di controllo:

ADCR

EAI se questo bit è a 1 gli interrupt dell'ADC sono abilitati e vengono generati al termine della conversione.
EOC quando questo bit assume il valore 1 la conversione è terminata.
STA quando questo bit viene portato a 1 si avvia la conversione.
PDS uno 0 in questo bit spegne la periferica (idle mode).

Esempio:

           LD ADCR,00110000B
ATTENDI:   JRR 6,ADCR,ATTENDI
           LD A,ADR

In questo esempio non si usano gli interrupt, si avvia la conversione scrivendo il valore 30H nell'ADCR e si attende che il bit 6 (EOC) diventi 1, quindi si legge il valore misurato dal registro ADR.


Pagina realizzata da Claudio Fin  -  Ultimo aggiornamento 5-11-1999