Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Mencarelli Simone
V B Elettonica e Telecomunicazioni
_________________________________________________________________________________
Relazione di sistemi
Oggetto:
Schema pic16F887
_________________________________________________________________________________
-1-
23 gennaio 2014
Mencarelli Simone
V B Elettonica e Telecomunicazioni
_________________________________________________________________________________
Nella tabella in figura (dal datasheet) sono riportati tutti i registri interessati nellutilizzo del
pic in modalit polling o interrupt.
Sono infatti riportati anche i registri di configurazione delle porte e degli interrupt.
I registri direttamente interessati nella configurazione e la lettura dellADC sono, invece
ADCON0, ADCON1, ANSEL, ANSELH, ADRESH e ADRESL.
Qui di seguito vengono presi in considerazione i vari registri singolarmente:
ADCON0:
Il registro in questione serve ad abilitare lADC, a settare il canale di ingresso e a impostare
il divisore di clock per avere un TAD adeguato.Tutti i bit del registro ADCON0 sono
normalente (al reset di power-on) posti a 0. Partendo dal Bit 0 sono:
B2, B3, B4, B5: Sono denominati rispettivamente CHS0, CHS1, CHS2 e
CHS3 servono per selezionare la porta che deve essere collegata allADC al momento
della conversione. se per esempio voglio utilizzare il convertitore sul pin RA0 i bit in
questione dovranno essere posti tutti a 0. Come gia detto il convertitore analogico
digitale multiplexato su 14 ingressi scrivendo un numero tra 0 e 13 in forma binaria sui
registri in questione si potr utilizzare la porta corrispondente indicata nello schema
(AN0, AN1, . AN13)
23 gennaio 2014
Mencarelli Simone
V B Elettonica e Telecomunicazioni
_________________________________________________________________________________
impostare il fattore di divisione del clock per determinare il TAD: il tempo che impiega il
convertitore per fare unapprossimazione. Dato che il convertitore a 10 bit dovr fare
10 approssimazioni (successive) pi un tempo per il sample-hold che pu variare a
seconda dellimpedenza della fonte del segnale analogico ed altri parametri. In ogni
caso il settaggio dei registri in questione per scegliere il TAD pi appropriato pu essere
fatto semplicemente seguendo le indicazioni della tabella in figura (i riquadri in grigio
sono da considerarsi non appropriati).
Tabella presa dal datasheet della Microchip
ADCON1:
Il regisro ADCON1 contiene 3 bit di configurazione dellADC:
23 gennaio 2014
Mencarelli Simone
V B Elettonica e Telecomunicazioni
_________________________________________________________________________________
Esempi di acquisizione
Qui di seguito verr mostrata la configurazione e lutilizzo dei registri sopra spiegati in
MicroC:
//CONFIGURAZIONE DEI REGISTRI
ANSEL=0x00;
ANSELH=0x00; //Tutte le porte sono impostate come digitali
ANSEL.B0 = 1; // solo AN0 impostata come analogica
TRISA.B0 = 1; // Porta AN0 settata come Input
ADCON0.B0=1;
// LADC attivato
ADCON0.B2=0;
ADCON0.B3=0;
ADCON0.B4=0;
ADCON0.B5=0;
ADCON0.B6=0;
ADCON0.B7=1;
ADCON1.B7=1;
ADCON1.B5=1;
ADCON1.B4=1;
_________________________________________________________________________________
-4-
23 gennaio 2014
Mencarelli Simone
V B Elettonica e Telecomunicazioni
_________________________________________________________________________________
}
}
conversione=(ADRESH<<8)+ADRESL;
/*Quando
il
while
finito
la
conversione viene inserita nella variabile conversione facendo la somma
tra ADRESL e ADRESH shiftato di 8 posizioni */
//MODALITA INTERRUPT
/*Allinterno della routine di Interrupt pu essere richiamata
subroutine quando la conversione finita, in questo modo: */
// presumendo che il convertitore ha gia iniziato la conversione
if(PIR1.ADIF==1)
// se convertitore finito
{
conversione=(ADRESH<<8)+ADRESL; // vedi sopra
PIR1.ADIF=0; //si resetta il registro per future interruzioni
}
una
_________________________________________________________________________________
-5-