(per sapere come collegare il PIC a dispositivi esterni, potete fare
riferimento alla guida "Corso PIC by Exemple" sul sito:
http://www.tanzilli.com )
A
cosa serve un circuito che fa soltanto accendere e spegnere delle lucette
secondo una sequenza prestabilita, o secondo una combinazione di tasti
premuta?
A parte l'albero di Natale, se ci ragionate un po', è possibile destinare un
circuito di questo tipo a tante applicazioni interessanti; ad esempio potete
sostituire i led con opportuni relè, ed ecco che il circuito è in grado di
pilotare l'accensione di qualunque dispositivo elettrico; manovrare i
vagoncini del plastico ferroviario, far accendere le luci d i casa, gestire
i cicli di lavaggio di una lavabiancheria, o anche tradurre in numeri
un'informazione (un display 7 segmenti altro non è che un insieme di lucette
accostate)
Note importanti:
Collegate sempre tra l'alimentazione del PIC e massa un
condensatore di 100KpF il più vicino possibile al piedino del PIC.
Il condensatore può essere poliestere o ceramico, ma non
elettrolitico.
All'ingresso e all'uscita del regolatore di tensione, sono
disposti dei condensatori di diverse decine di microfarad
elettrolitici. Ponete in parallelo ad essi dei condensatori non
elettrolitici di 100KpF
Collegate tutti i piedini non utilizzati del PIC e degli altri
componenti a massa o a +V a seconda dei casi; piedini lasciati aperti
possono dare origine a comportamenti anomali imprevedibili. Se ai
piedini sono connessi degli interruttori, per evitare che ad
interruttore aperto il piedino rimanga anch'esso libero, prevedete
delle resistenze di pull-up o pull-down a seconda dei casi, di valori
prossimi 100Kohm (evitate di scendere sotto i 10Kohm)
Che cosa fa?L'accensione di un led avviene tutte le volte che viene premuto e
rilasciato il tasto.
Ogni pressione del tasto spegne il led precedente e accende il
successivo A cosa serve?È simile al circuito che tramite relè
accende con un unico tasto le luci di una stanza con una certa sequenza. Nota: occorrerebbe modificarlo in modo da consentire anche l'accensione
simultanea di più luci Elenco progetti
Rotazione di 8 led alla pressione di un tasto con controllo antiblocco CPU
VARIANTE
Come il progetto precedente, con in più un controllo di blocco della CPU, che resetta il PIC automaticamente
Che cosa fa?Conta a ritroso da 9 a 0 facendo apparire la cifra sul display LCD.
Ogni pressione del tasto RA0 decrementa la cifra sullo schermo; il conteggio si arresta arrivati a 0.
Il tasto RB0 gestisce un reset asincrono Elenco progetti
Contatore di impulsi a ritroso con display LCD 7 segmenti e autospegnimento
VARIANTE
Come il programma precedente, ha in più la funzione di autospegnimento a fine conteggio, e un led lampeggiante che avverte dell'accensione o dell'imminente spegnimento del dispositivo.
Che cosa fa?Conta i secondi da 0 a 9 usando il quarzo interno
e il prescaler, facendo apparire la cifra sul display LCD. Nota: non è un contasecondi di precisione; leggere i commenti
all'inizio del listato Elenco progetti
Convertitore BCD
8421 -> decimale, con display LCD 7 segmenti
Che cosa fa?Confronta il dato "BCD 8421" immesso tramite
i tasti con una tabella inserita nella EEPROM interna e visualizza il
corrispondente numero decimale su display 7 segmenti a 2 cifre Nota: Il PIC elabora i dati di ingresso molto velocemente,
pertanto durante l'immissione della sequenza binaria potrebbe
visualizzare cifre inattendibili. Per evitare questo inconveniente si
potrebbe modificare il programma in modo da sfruttare l'ultimo ingresso disponibile sul PIC16F84
(RA4), o uno qualunque degli altri ingressi sul PIC16F876, come abilitazione alla lettura Nota: La tabella su EEPROM viene in questo caso creata ad ogni
avvio del programma, ma potrebbe essere inserita permanentemente
assieme al codice hex. Elenco progetti
Convertitore BCD 8421 -> decimale, con
display e tasto conferma immissione
VARIANTE
Come il programma precedente, ha in più un tasto per
confermare l'immissione dei dati
Che cosa fa?Memorizza un ingresso BCD8421 in uno stack creato
nei registri per uso generico, in modalità FIFO o LIFO. Permette di
estrarre i dati in ordine e riportarli in uscita Elenco progetti
Gestione di uno stack a 5 bit FIFO / LIFO sui registri GPRs
VARIANTE
Come il programma precedente, lavora con 5 bit
anzicchè 4 (codice BCD + bit di stato)
Considerazioni sulla bidirezionalità delle porte del PIC
La direzionalità delle porte del PIC non deve essere necessariamente definita all'inizio del programma
ma può essere cambiata anche all'interno del programma stesso Ecco un piccolo esempio da testare al simulatore
Che cosa fa?Gestisce il protocollo di comunicazione seriale I2C, sfruttando i registri di supporto del PIC Nota!: Limitazioni nel funzionamento dei simulatori; leggere
intestazione del listato Elenco progetti
Considerazioni sulla paginazione della flash memory
Quando il numero di righe di codice diventa elevato è
necessario suddividerlo in "pagine", per consentire alle istruzioni CALL
e GOTO di essere correttamente indirizzate.
Da testare al simulatore