Sei sulla pagina 1di 2

CORSO PROGRAMMAZIONE AVR

CORSO DI
PROGRAMMAZIONE
MICROCONTROLLORI
-- ATMEL AVR --
Lo scopo di questo Corso è quello
di presentare i microcontrollori
Flash della famiglia ATMEL
AVR. Utilizzando una semplice
demoboard completa di
programmatore in-circuit
impareremo ad utilizzare
periferiche come display a 7
segmenti, pulsanti, linee seriali,
buzzer e display LCD.
I listati dimostrativi che andremo
via via ad illustrare saranno
redatti dapprima nel classico
linguaggio Assembler e poi nel
più semplice ed intuitivo Basic.

Seconda puntata.

a cura di Matteo Destro

ella prima puntata abbiamo elen-


cato a grandi linee le prestazioni e
le risorse dei dispositivi che compongo-
no la famiglia Atmel AVR 8 bit; deci-
dendo poi di soffermare la nostra atten-
zione sull’AT90S8515. Questo micro-
controllore dispone di una grande quan-
tità di memoria programma: ben 8
Kbyte di Memoria Flash. Oltre alla
memoria programma ritroviamo i 32
registri per uso generale che vanno dal-
l’indirizzo di memoria $0000 a $001F, i
64 registri di I/O che vanno dall’indiriz-
zo $0020 a $005F, la memoria SRAM
interna (512 Byte) che va dall’indirizzo
$0060 all’indirizzo $025F e, infine,
abbiamo spazio per indirizzare una

Elettronica In - luglio/agosto 2001 73


CORSO PROGRAMMAZIONE AVR
Schema a blocchi
del microcontrollore
AT90S8515.

memoria SRAM esterna per un totale di 64 Kbyte memoria programma. Con una descrizione elemen-
(indirizzi da $0260 a $FFFF). tare possiamo dire che la CPU legge l’opcode della
Nel box riportato in questa pagina è illustrato lo prima istruzione in memoria, lo interpreta trasfor-
schema a blocchi interno dell’AT90S8515. Al cen- mandolo in un comando e lo esegue; quindi ripete
tro dello schema troviamo l’unità logico aritmetica lo stesso processo sull’opcode disponibile nel byte
l’ALU (Aritmetic Logic Unit) che unitamente al successivo di memoria programma e così via. In
blocco dei registri forma il “core” del micro. Il core realtà questa sequenzialità è affidata al Program
mediante un Data Bus ad 8 bit comunica con tutte Counter che per definizione contiene l’indirizzo
le risorse implementate: innanzitutto con i registri del byte di memoria programma che contiene l’op-
di controllo che, visti apparentemente coma una code della prossima istruzione che la CPU deve
particolare area di memoria, formano in realtà delle processare. Una macchina a stati così congegnata
interfacce tra il programma e le periferiche imple- non consente però di gestire eventi in tempo reale
mentate. e, per questo motivo, sono stati “inventati” gli
Proseguendo nell’analisi troviamo la Interrupt Unit interrupt. In pratica le periferiche interne sulla
ovvero un dispositivo che provvede a gestire ed a base di particolari eventi interni od esterni possono
smistare le varie comunicazioni di interruzione che generare un’interruzione al normale ciclo di pro-
le periferiche possono inviare alla CPU. gramma. Nella pratica ciò consiste nel forzare nel
Program Counter l’indirizzo di una zona di memo-
CONCETTO DI INTERRUPT ria definita (vettore di interrupt). Quindi ad esem-
pio, abilitando l’interrupt della periferica UART,
Vedremo in seguito che la CPU altro non fa che otterremo che in corrispondenza con il termine
leggere ed eseguire in sequenza, rigorosamente della ricezione dei dati il micro andrà ad eseguire
una dopo l’altra, le istruzioni contenute nella l’istruzione contenuta nella locazione $009 (vetto-

74 luglio/agosto 2001 - Elettronica In