PIC

 I PIC sono dei circuiti integrati prodotti dalla Microchip Technology Inc., che appartengono alla categoria dei microcontroller, ovvero quei componenti che integrano in un unico dispositivo tutti i circuiti necessari a realizzare un completo sistema digitale programmabile.

Come si può vedere in figura,

 

I PIC (in questo caso un PIC16C84) si presentano esternamente come dei normali circuiti integrati TTL o CMOS, ma internamente dispongono di tutti dispositivi tipici di un sistema a microprocessore, ovvero:

La presenza di tutti questi dispositivi in uno spazio estremamente contenuto, consente al progettista di avvalersi degli enormi vantaggi derivanti dall'uso di un sistema a microprocessore, anche in quei circuiti che fino a poco tempo fa erano destinati ad essere realizzati con circuiterie tradizionali.

I PIC sono disponibili in un'ampia gamma di modelli per meglio adattarsi alle esigenze di progetto specifiche, differenziandosi per numero di linee di I/O e per dotazione di dispositivi. Si parte dai modelli più piccoli identificati dalla sigla PIC12C5xx dotati di soli 8 pin, fino ad arrivare ai modelli più grandi con sigla PIC17Cxx dotati di 40 pin.

 

Il PIC che noi abbiamo utilizzato è il  PIC16F84. Esso è dotato di 18 pin di cui ben 13 disponibili per l'I/O ovvero per i collegamenti al resto del nostro circuito.

In particolare il PIC16F84 dispone di una memoria per contenere il programma di tipo EEPROM ovvero Electrical Erasable Programmable Read Only Memory, che può essere riscritta quante volte vogliamo.                                                          

   

 

PIC16F84

 

 

Il PIC16F84 è dotato di un totale di 18 pin disposti su due file parallele da 9 pin ciascuna. I pin contrassegnati in BLU rappresentano le linee di I/O disponibili per le nostre applicazioni, i pin in ROSSO e NERO sono i pin di alimentazione, i pin in VERDE sono riservati al funzionamento del PIC (MCLR per il reset e OSC1-2 per il clock).

   

Nella figura seguente viene riprodotto lo schema a blocchi semplificato dell'architettura interna del PIC16F84

 

 

Descrizione dei componenti:

 

·        EEPROM - Electrical Erasable Programmable Read Only Memory (memoria a sola lettura programmabile, cancellabile elettricamente) è una memoria EPROM che può essere cancellata elettricamente senza l'ausilio di lampade UV. La sua capacità di memorizzazione è di 1024 locazioni ognuna in grado di contenere un opcode a 14 bit ovvero una istruzione base del PIC. Gli indirizzi riservati alla EEPROM vanno da 0000H a 03FFH. Il PIC può solamente eseguire le istruzioni memorizzate in queste locazioni. Non può in alcun modo leggere, scrivere o cancellare quanto in esse contenuto.

 

·        Il REGISTER FILE è un'insieme di locazioni di memoria RAM denominate REGISTRI.

 

·        La ALU (acronimo di Arithmetic and Logic Unit ovvero unità aritmentica e logica) è la componente più complessa del PIC in quanto contiene tutta la circuiteria delegata a svolgere le funzioni di calcolo e manipolazione dei dati durante l'esecuzione di un programma. La ALU è una componente presente in tutti i microprocessori e da essa dipende direttamente la potenza di calcolo del microprocessore stesso. La ALU del PIC16F84 è in grado di operare su valori ad 8 bit, ovvero valori numerici non più grandi di 255.

 

·        Il registro W denominato anche accumulatore è una semplice locazione di memoria in grado di contenere un solo valore a 8 bit.

 

·        PROGRAM COUNTER (dall'inglese contatore di programma) ha  la funzione di mantenere traccia dell'indirizzo che contiene la prossima istruzione da eseguire.

 

·        STACK è un registro speciale nel quale il PIC memorizza l'indirizzo di quella istruzione che sarebbe dovuta essere la successiva  istruzione da eseguire se non si fosse incontrata la CALL.

 

·        Il PIC16F84 dispone di un totale di 13 linee di I/O organizzate in due porte denominate PORTA A e PORTA B. La PORTA A dispone di 5 linee configurabili sia in ingresso che in uscita identificate dalle sigle RA0, RA1, RA2, RA3 ed RA4. La PORTA B dispone di 8 linee anch'esse configurabili sia in ingresso che in uscita identificate dalle sigle RB0, RB1, RB2, RB3, RB4, RB5, RB6 ed RB7.

 

Il registro TMR0 è un contatore, ovvero un particolare tipo di registro il cui contenuto viene incrementato con cadenza regolare e programmabile direttamente dall'hardware del PIC. In pratica, a differenza di altri registri, il TMR0 non mantiene inalterato il valore che gli viene memorizzato, ma lo incrementa continuamente.