Guida pratica al PIC 16F84
Funzionamento interno, programmazione in assembler e circuiti di esempio



Spinto dalla mia passione per l'informatica e l'elettronica amatoriale ho deciso di realizzare questa piccola guida come punto di partenza per quanti vogliano avvicinarsi al microcontrollore PIC 16F84 ed iniziare a realizzare qualche progetto concreto. Si descrive l'architettura del microcontrollore, il funzionamento interno, il linguaggio assembly e i passi base per creare/compilare ed eseguire i programmi.
A dispetto dei suoi 18 pin, il PIC 16F84 e' un dispositivo solo all'apparenza semplice: in realita' e' un vero e proprio minicomputer dotato di CPU RISC a 8 bit, memoria dati/istruzioni,  porte di I/O e molte altre interessanti caratteristiche. La definizione ufficiale per questo genere di sistemi e' quella di "microcontrollore". Le applicazioni standard dei microcontrollori sono tante: se ne prevede l'uso in tutti quei casi in cui occorre gestire intelligentemente e secondo schemi logici prestabiliti molti sensori e attuatori, come ad esempio nei distributori automatici, nelle macchinette del caffe', stampanti, fotocopiatrici, telefoni pubblici e antifurto; oppure quando occorre interfacciarsi con altri sistemi e scambiare informazioni, come nei terminali POS, nelle serrature a combinazione numerica, telecomandi, mouse, lettori di tessere magnetiche, lettori simcard, tastiere per computer e molto altro. Il PIC 16F84 puo' essere impiegato nella maggior parte dei casi appena descritti ma in giro per la rete si trovano anche altri progetti che sfruttano al limite il dispositivo, come ad esempio un sistema per giocare a tetris o una semplice console dotata di connettori joystick e uscita audio/video.
Il tutorial e' stato pensato per essere letto progressivamente ed in maniera lineare. Si parte dalle caratteristiche di base per poi passare piu' nel dettaglio alla struttura interna. Parallelamente viene introdotto il linguaggio assembly del PIC con esempi di programmazione. Tutto quello che e' necessario sapere per poter comprendere una data sezione del tutorial e' dato dalle sezioni precedenti (almeno secondo le mie intenzioni) percio' non dovrebbe essere necessario saltare avanti e indietro nel tutorial se non per rivedere e rinfrescare concetti precedenti.
Quando necessario saranno introdotti e commentati tutti gli strumenti necessari per poter realizzare una applicazione concreta con il microcontrolle e cioe':
  • L'ambiente di sviluppo MPLAB
L'ambiente di sviluppo per eccellenza per la famiglia dei PIC 16F8X e' MPLAB prodotto e distribuito gratuitamente dalla stessa societa' che produce questi microcontrollori. Permette di scrivere e debuggare da PC i programmi in assembly per il PIC. Inoltre possiede un comodo simulatore che permette di provare e testare i programmi senza necessariamente possedere un PIC 16F84. Piu' avanti si vedra' come installare ed utilizzare MPLAB. 
  • Un programmatore hardware
Il programmatore hardware e' uno scatolotto da collegare al PC in grado di inserire il codice compilato del nostro programma (un file .HEX prodotto da MPLAB) all'interno della memoria del PIC.
Il programmatore puo' essere di tipo seriale, parallelo o USB e di solito anche i modelli appena decenti costano una eresia mentre per pochi euro e' possibile costruirne uno da soli. Nel tutorial ho incluso una sezione con gli schemi del programmatore che ho costruito personalmente ed una descrizione per poterlo assemblare.
  • Un software di controllo per il programmatore hardware
Il programmatore hardware deve essere comandato da uno specifico software. ICPROG e' il software di controllo per eccellenza in ambiente Windows e lo si puo' scaricare gratuitamente a questo indirizzo. In questo tutorial viene descritta la procedura di configurazione opportuna per poterlo usare correttamente con il mio programmatore.


Clicca qui per andare all'indice generale della guida