|

Corso ET |
titolo:
Centralina meteo 2003/04 |
data.:
16 novenbre 2001 |
file.:
/corso/labsitel/provelab/
sw_ct_meteo_2003_04/
index.htm |
descr.:
Definizione funzionalità software
gestione centralina |
|
Obiettivo del progetto:
- Realizzazione di un programma in linguaggio
assembler 8051 per la scheda a microcontrollore 8051 della centralina che
svolga le seguenti funzioni:
- Inizializzazione e ciclo principale del
programma
-
Inizializzazione hardware a bordo della centralina.
-
Ciclo principale di funzionamento.
-
Acquisizione e memorizzazione della
temperatura esterna ad intervalli di tempo determinati.
- Lettura ADC seriale
-
Generazione base dei tempi per produrre
l'intervallo di acquisizione
-
Memorizzazione delle temperature nella
RAM da 32K a bordo della scheda a microcontrollore.
- Possibilità di trasferimento dei dati
acquisiti in memoria tramite porta seriale RS232 della scheda verso PC per
archiviazione ed eventuale pubblicazione su Internet.
- Modulo software in grado interpretare
comandi con eventuali parametri provenienti da seriale
- Modulo software che in base al comando
interpretato invii su seriale i dati richiesti
- Realizzazione di un programma in linguaggio C
per PC DOS che svolga le seguenti funzioni:
-
Monitoraggio funzionamento centralina
- Trasferimento dati acquisiti dalla centralina
Tale modulo software assolve il compito di preparazione all'avvio dei
dispositivi periferici a bordo del microcontrollore e dell'hardware
interfacciato:
- ADC seriale in condizioni di riposo:
CS=1, CLK=0, DATA=1
- Inizializzazione timer base dei tempi
- Inizializzazione porta seriale
Ciclo senza fine che richiama continuamente le subroutines dei moduli
software sviluppati.

Subroutine per lettura ultimo valore
convertito dall'ADC seriale.

L'intervallo di acquisizione può essere
effettuato in due modi: tramite cicli di conteggio nidificati, o preferibilmente
sfruttando l' interruzione generata da un timer del controllore
opportunatamente programmato .
|
Conteggio a cicli
nidificati
 |
Conteggio con timer

|
La memorizzazione dei dati acquisiti dall' ADC
deve essere effettuata nella RAM esterna della scheda a microcontrollore secondo
le seguenti indicazioni:
- La dimensione il buffer di acquisizione si
potrebbe allocare a partire dall'indirizzo 9000h fino all'indirizzo 0FFFFh
- Deve esistere un puntatore che contiene
l'indirizzo della prossima cella che dovrà incamerare il dato letto dall'ADC e
che viene incrementato dopo quest'ultima operazione. Una volta raggiunta la
fine buffer tale puntatore dovrà essere reinizializzato con l'indirizzo di
partenza del buffer (questa è la tecnica di memorizzazione a buffer circolare,
una volta riempito il buffer inizia a cancellare le acquisizioni più vecchie).
