Home
Accesso / Registrazione
 di 

Corso di programmazione per microcontrollori Zilog Z8. Seconda puntata 3/4

Corso di programmazione per microcontrollori Zilog Z8

Tuttavia, le tre linee possono essere programmate per lavorare come ingressi digitali oppure come ingressi collegati ai due comparatori analogici presenti all’interno del chip. La porta 3 può inoltre funzionare come ingresso di clock esterno (ed anche di trigger) per uno dei due contatori implementati. Proseguiamo nell’analisi dell’architettura del micro Z8 con il blocco denominato Program Counter. Quest’ultimo è un registro atto a memorizzare l’indirizzo dell’istruzione che deve essere eseguita. All’atto della prima accensione, il micro va a leggere la locazione di memoria contente la prima istruzione da eseguire. Successivamente, passa alla seconda locazione contenente la seconda istruzione da eseguire e così via. Durante l’esecuzione da parte della CPU di un’istruzione, indipendentemente dal punto in cui si trova, il program counter tiene in memoria (più correttamente si dice “punta”) il numero della locazione della cella di memoria programma contenente la successiva istruzione.

microcontrollori_z8_schemi_elettrici

Una prerogativa dei micro Z8 è quella di disporre internamente di due contatori denominati T0 e T1 del tutto indipendenti tra loro. Ogni contatore è “pilotato” da un prescaler a 6 bit il cui scopo è di dividere la frequenza in ingresso per un fattore variabile tra 1 e 64. I contatori funzionano in modo tale da decrementare, ad ogni impulso di comando, il valore precaricato nel contatore stesso attraverso un registro. Inoltre, i due contatori T0 e T1 possono essere programmati per fermarsi una volta raggiunto lo zero (decrementati a zero) oppure per ricominciare il ciclo da capo. Pur lavorando nello stesso identico modo, T0 e T1 possono essere controllati diversamente, in quanto T0 viene azionato esclusivamente dalla frequenza di clock del microcontrollore, mentre T1 può anche ricevere il segnale di pilotaggio da una sorgente esterna presente sulla porta 3. Continuiamo la nostra analisi dei microcontrollori Z8 introducendo il concetto di interruzione o interrupt.

Come definizione generale, una interruzione è un segnale trasmesso alla CPU che, proprio a causa di questo segnale, attiva l’esecuzione di un programma prestabilito.

Ad esempio, è attraverso una interruzione al microprocessore che la tastiera di un computer “comunica” alla CPU l’avvenuta pressione di un tasto. In risposta a questo segnale, la CPU va a leggere dal buffer della tastiera il codice del carattere digitato. Lo Z86E08 dispone di sei livelli di interruzione derivanti da diversi ingressi. Quattro richieste di interruzione possono pervenire da segnali esterni all’integrato mentre due interrupt sono generate dai contatori interni. Queste ultime, avvengono durante la transizione a zero dei contatori, ovvero al termine del ciclo di conteggio. I quattro segnali di interruzione, cui sono associate le sigle IRQ0, IRQ1, IRQ2, IRQ3 risultano organizzati in maniera differente. L’IRQ0 proviene dal piedino 2 dell’integrato, l’IRQ1 dal pin 3, l’IRQ2 dal pin 1 e l’IRQ3 dal piedino 2. Le prime tre interruzioni vengono attivate dal fronte di discesa del segnale, mentre la quarta interruzione è sensibile al fronte di salita. A questo punto, molti di voi si domanderanno in che modo il microcontrollore risponda ad una richiesta di interruzione?

Semplicemente “abbandonando” il programma che stava svolgendo ed andando ad eseguire una particolare routine: a ciascuna interrupt risultano associati due byte che esprimono l’indirizzo o la locazione in cui si trova la relativa routine di interruzione. A questo tipo di interruzioni si fa normalmente riferimento utilizzando il termine di “interruzioni vettorizzate”, mentre il termine “vettore di interruzione” indica semplicemente l’indirizzo di memoria in cui è localizzata la routine di risposta all’interruzione stessa.

Il kit è disponibile da Futura Elettronica

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Ultimi Commenti