Corso di programmazione per microcontrollori ST626X. Settima parte 5/5

microcontrollori ST626X programmazione

Poiché le definizioni dei registri sono sempre le stesse, indipendentemente dal programma che intendiamo sviluppare, è anche possibile scriverle all’interno di un secondo file, per esempio ST6DEF.ASM, e successivamente richiamarle nel programma applicativo con la direttiva “.input”, digitando: .input “ST6DEF.ASM”. Terminate le definizioni, scriviamo la prima istruzione da impartire al nostro micro. Allo scopo, utilizziamo dapprima la direttiva “.ORG” per selezionare la prima locazione di memoria programma e una etichetta (ad esempio RESET:) per collegare la locazione al vettore di Reset. Rammentiamo di digitare poi l’istruzione RETI per indicare al micro che la routine di interruzione del Reset è conclusa. Proseguiamo nella stesura del programma e dopo aver inizializzato le linee di I/O come già descritto digitiamo le istruzioni del programma principale. Nel nostro caso due “CALL” alle subroutine “LEGADC” e “VISUA”.

convertitore_analogico_digitale_schema_blocchi

Nella prima subroutine attiviamo il convertitore analogico/ digitale agendo sul relativo registro di controllo: l’ADCR e allo scopo settiamo sia il bit PDS che il bit STA. Quindi, “accendiamo” il convertitore che si trovava nello stato a basso consumo denominato “Idle Mode” e attiviamo la conversione. Attendiamo poi che la conversione risulti terminata testando il bit EOC (End of Conversion) e, in seguito, trasferiamo il valore letto nella cella RAM chiamata “LETADC”.

A questo punto non ci resta che visualizzare il contenuto di tale cella e allo scopo realizziamo la subroutine “VISUA”. Qui confrontiamo la lettura con il contenuto del registro X, attraverso l’istruzione: CP A,#X. In X trasferiamo tutti i possibili numeri da 0 a 255 in cinque diverse fasi in modo da poter distinguere cinque diversi campi di valori di appartenenza. Infine, accendiamo il LED corrispondente al campo di valori a cui appartiene la lettura. Il programma è così terminato, resta inteso che questo demo può essere espanso a piacere per altre applicazioni pratiche.

convertitore_analogico_digitale_specifiche_tecniche

Ad esempio, si può ripetere la lettura per altri ingressi analogici oppure visualizzare il risultato in altre forme. Procediamo e assembliamo il file sorgente digitando “AST6 MF56.ASM”, l’assemblatore creerà così altri due file denominati MF56.HEX (file oggetto) e MF56.DSD (file di debugger del simulatore). Procuriamoci ora un micro ST62E65 opportunamente cancellato, inseriamolo nel text-tool dello Starter Kit rispettandone la polarità e diamo alimentazione.

LA PROGRAMMAZIONE

Come al solito, invochiamo il software di programmazione, trasferiamo il file oggetto nel buffer del PC e poi programmiamo il chip. Togliamo alimentazione alla scheda, spostiamo il jumper W1 in posizione “USER” e diamo nuovamente alimentazione. Posizioniamo il cursore RV1 a fondo corsa e se tutto è OK il solo LED LD5 deve risultare acceso. Ruotiamo ora il trimmer, la barra a LED deve a poco a poco illuminarsi fino a risultare tutta accesa quando raggiungiamo l’altro fondo corsa del trimmer. Ruotando il trimmer nell’altro senso avremo l’effetto contrario, la barra a LED si spegnerà in sequenza. Bene, anche questa puntata può ritenersi conclusa. Per approfondire gli argomenti trattati oggi è anche possibile leggere gli esempi riportati sotto le directory “EXAMPLES\ RS232” e “EXAMPLEX\SERIAL” per quanto riguarda la periferica SPI oppure quelli disponibili sotto “EXAMPLEX\KEYBOARD” per la periferica ADC.

Il kit è disponibile da Futura Elettronica

STAMPA     Tags:

Leave a Reply

Vuoi leggere un articolo Premium GRATIS?

RFID: un acronimo mille possibilità