SI
VUOLE COSTRUIRE UN LETTORE DI TENSIONE DA 0 A 5V, UTILIZZANDO UN
CONVERTITORE
A/D TIPO ADC0800, ED UN MICRO-PROFESSOR.
DESCRIZIONE DEL SISTEMA:
Il seguente sistema emula un tester digitale, infatti rileva un valore di tensione da 0V a 5V, e lo visualizza in due modi: 1- attraverso otto LED ; 2- tramite i display di un micro-professor.
Vediamo lo schema a blocchi:

Il convertitore A/D utilizzato, è del tipo ADC0800, che converte un segnale analogico continuo in un segnale digitale ad 8 bit. Il valore massimo di tensione ammesso in ingresso è 5V, quindi l’uscita avrà valore zero (0000 0000BIN) quando la tensione di ingresso VIN = 0V, mentre avrà valore 225 (1111 1111BIN) quando VIN = 5V.
L’ADC0800, è un convertitore che utilizza la tecnica dell’approssimazione successiva, dove il segnale sorgente viene comparato con dei livelli digitali interni predefiniti da dei microinteruttori. Quando il segnale sorgente è uguale ad uno dei livelli interni, la conversione è terminata, ed all’uscita del convertitore verrà fornito il valore digitale corrispondente, ma complementato
Per funzionare il convertitore
A/D ha bisogno di un treno di impulsi (clock) con frequenza massima di 800 KHz,
mentre al reoforo di Start Convertion (SC) deve giungere un impulso la cui
durata t1 deve essere
minore 3.5 volte il periodo del clock:
t1 < 3.5 TCK
Il Micro-Professor, è un micro computer formato da vari integrati, vediamo lo schema a blocchi:

Ogni blocco può essere composto da uno o più integrati, che comunicano con lo Z80 attraverso i BUS DATI, BUS CONTROLLI e BUS INDIRIZZI. Il PIO costituisce le porte di comunicazione dello Z80, infatti attraverso di esse lo Z80 acquisisce ed invia dati.
Attraverso la tastiera viene digitato un programma in linguaggio Assembler che si occuperà di predisporre le porte del PIO, di inviare il segnale di Start-Convertion al convertitore A/D, di leggere il dato convertito ed infine di visualizzarlo sui Display del Micro-Professor, utilizzando delle sub routine interne del Micro-Professor.
Vediamo il diagramma di flusso
del software:
Vediamo ora il listato commentato del programma in linguaggio Assembler:
|
LOCAZIONE DI MEMORIA |
LINGUAGGIO MEMONICO |
LING. ASSEMBL |
COMMENTO |
|
1800 |
LD
C,82H |
0E |
L’82H
è il byte di controllo della porta A |
|
1801 |
|
82 |
|
|
1802 |
LD
A,4FH |
3E |
Il
4FH è il byte selettore di entrata |
|
1803 |
|
4F |
|
|
1804 |
OUT
(C),A |
ED |
Definisce
la porta A come ingresso |
|
1805 |
|
79 |
|
|
1806 |
LD
C,83H |
0E |
L’83H
è il byte di controllo della porta B |
|
1807 |
|
83 |
|
|
1808 |
LD
A,0FH |
3E |
Lo
0FH è il byte selettore di uscita |
|
1809 |
|
0F |
|
|
180A |
OUT
(C),A |
ED |
Definisce
la porta B come uscita |
|
180B |
|
79 |
|
|
180C |
LD
C,81H |
0E |
L’81H
è l’indirizzo della porta B |
|
180D |
|
81 |
|
|
180E |
LD
A,01H |
3E |
| Viene
generato |
|
180F |
|
01 |
| un impulso |
|
1810 |
OUT
(C),A |
ED |
| al pin B0 |
|
1811 |
|
79 |
| della porta
B |
|
1812 |
LD
A,00H |
3E |
| che
equivale |
|
1813 |
|
00 |
| allo |
|
1814 |
OUT
(C),A |
ED |
| Start
Convertion (SC) |
|
1815 |
|
79 |
| del
convertitore AD |
|
1816 |
LD
E,FF |
1E |
Viene
effettuato un ciclo |
|
1817 |
|
FF |
di
ritardo |
|
1818 |
DEC
E |
1D |
per
permettere |
|
1819 |
JPNZ,1818 |
C2 |
al
convertitore A/D |
|
181A |
|
18 |
di
effettuare |
|
181B |
|
18 |
la
conversione |
|
181C |
LD
C,80H |
0E |
L’80H
è l’indirizzo della porta A |
|
181D |
|
80 |
|
|
181E |
IN
B,(C) |
ED |
Carica
nel registro B il valore letto |
|
181F |
|
40 |
nella
porta A |
|
1820 |
LD
A,B |
78 |
Sposta
in A il valore di B |
|
1821 |
LD
HL,1891 |
21 |
Carica
nel doppio registro HL il valore 1891 |
|
1822 |
|
91 |
|
|
1823 |
|
18 |
|
|
1824 |
CALL
0678 |
CD |
Converte
il valore esadecimale del registro A nello stesso |
|
1824 |
|
78 |
valore
ma visualizzabile in un display a 7 segmenti, e lo |
|
1826 |
|
06 |
scrive
nella locazione di memoria indicata dal registro HL |
|
1827 |
LD
IX,1890 |
DD |
Carica
nel registro IX il dato 1891 |
|
1828 |
|
21 |
|
|
1829 |
|
90 |
|
|
182A |
|
18 |
|
|
182B |
CALL
0624 |
CD |
Legge
i 6 dati contenuti nelle 6 locazioni |
|
182C |
|
24 |
di
memoria successive a quella indicata dal |
|
182D |
|
06 |
registro
IX, e li visualizza sul display da destra verso sinistra |
|
182E |
JP
1800 |
C3 |
Salta
alla locazione iniziale 1800 |
|
182F |
|
00 |
|
|
1830 |
|
18 |
|
|
|
|
|
|
|
1890 |
|
37 |
Lettera
H |
|
1891 |
|
00 |
vuoto |
|
1892 |
|
00 |
vuoto |
|
1893 |
|
00 |
vuoto |
|
1894 |
|
00 |
vuoto |
|
1895 |
|
00 |
vuoto |
Il convertitore ADC0800, viene montato su una scheda millefori, dove trovano posto anche un generatore di onda quadra, ottenuto con una porta logica NOT (integrato 74HC14) inserita in un circuito RC; una resistenza variabile da 0 a 10 KW che simula la variazione di tensione all’ingresso del convertitore A/D; uno stabilizzatore di tensione tipo LM7905 che stabilizza la tensione negativa, fornita esternamente, di cui abbisogna il convertitore A/D, e 8 LED che visualizzano l’uscita digitale del segnale convertito dal convertitore A/D.
Vediamo il Lay-out dei componenti:

In pratica: il micro-professor invia l’impulso di SC al ADC0800, il quale inizia la conversione del segnale analogico fornito da Rvar. Al termine della conversione, ai reofori OUT del ADC0800 è presente il valore digitale (binario) del segnale analogico, visualizzato dagli 8 LED. Il micro-professor, tramite il software visto sopra, preleva il dato digitale e lo visualizza in forma esadecimale sui suoi display.
Essendo il programma un loop, è possibile avere la visualizzazione in tempo reale della variazione di Rvar.
Vediamo infine lo schema elettrico del circuito:
