Concetti Chiave

  • I microcontrollori come il PIC 16F84A integrano CPU, memoria FLASH non volatile, RAM volatile, unità di I/O e timer in un unico chip.
  • Il PIC 16F84A utilizza una memoria di programma di tipo FLASH con 1024 locazioni da 14 bit, garantendo flessibilità e aggiornamenti facili.
  • Dispone di 68 registri di uso generale per operazioni di elaborazione dati, organizzati in due banchi per una gestione efficiente.
  • Le porte di ingresso-uscita (portA e portB) possono essere configurate individualmente come ingressi o uscite tramite i registri Tris A e Tris B.
  • Il registro TMR0 può funzionare sia come timer che come contatore di impulsi esterni, offrendo versatilità nelle applicazioni.

I microcontrollori sono circuiti integrati digitali che contengono in un unico chip un microprocessore (CPU), una memoria di programma di tipo non volatile (ROM) e di una volatile ( RAM), un unità di ingresso – uscita (I/O) e un timer.

Caratteristiche del PIC 16F84A

Il PIC 16F84A è un microcontrollore a 8 bit di medie prestazioni.

Realizzato in tecnologia CMOS , è caratterizzato da una memoria di programma non volatile di tipo FLASH. È dotato inoltre di una memoria dati RAM.
L’architettura del PIC 16F84A è caratterizzata da:

- Memoria di programma: Di tipo FLASH cancellabile elettricamente, è costituita da 1024 locazioni di 14 bit.

- Memoria dati RAM: di tipo volatile con locazioni da 8 bit (1 byte), questa memoria dati comprende 68 registri di uso generale.

- Porte ingresso-uscita: sono disponibili 2 porte di I/O, il portA con 5 linee RA0-RA4, e il portB con 8 linee RB0-RB7. Guida completa al microcontrollore PIC 16F84A e alle sue funzionalità articoloCiascuna di queste linee può essere configurata individualmente come ingresso o come uscita e può essere scritta o letta sia individualmente sia insieme con le altre della porta.

- Timer: è presente un registro TMR0 che opportunamente caricato, può fungere da timer oppure può essere utilizzato come contatore di impulsi provenienti dall’esterno attraverso la linea RA4, configurata come ingresso.

- Contatore di programma: è organizzato con 13 bit su 2 registri, il registro basso PCL a 8 bit e il registro alto PCH con 5 bit. In realtà questo PIC potendo indirizzare al massimo fino alla locazione 3FF, utilizzerà solo i 2 bit meno significativi del PCH. Il PCL può essere scritto e letto direttamente come un normale registro, consentendo così di effettuare salti di programma.

- Accumulatore o registro di lavoro W: riveste particolare importanza perché la maggior parte delle istruzioni di spostamento fra i registri lo interessano direttamente.

- Stack: il 16F84A consente una programmazione con ricorso a subroutine . Lo stack o pila, in cui vengono depositati gli indirizzi di ritorno della subroutine , è organizzato su 8 livelli di memoria, cosicché è possibile utilizzare fino a 8 subroutine subordinate o nidificate.

Registri di uso generale

L’area di memoria per i dati è strutturata in registri a 8 bit, alcuni di tipo speciale e altri di uso generale.

- Registri di uso generale: Sono 68 registri che possono essere usati per ogni tipo di elaborazione dati, per generare ritardi, per eseguire operazioni aritmetiche o logiche. È una caratteristica del PIC che i caricamenti o i trasferimenti fra registri avvengano attraverso il registro di lavoro W.

Sono disposti su 2 banchi, il bank 0 e il bank 1. i registri sono:

-Tris A e Tris B : consentono di configurare le linee del port A e del port B come ingressi o come uscite scrivento 1 è imput e 0 è output.

-Port A e port B : i bit scritti in questi registri vengono trasferiti in uscita sulle linee corrispondenti purche le linee prima erano state configurate come uscite, se invece sono ingressi la lettura dei registri fornisce lo stato logico presente su di esse.

-Status : è il registro di stato

-TMR0 :il timer è un contatore a 8 bit che può essere inizialmente caricato al valore desiderato mediate istruzione e quindi fatto avanzare sia un segnale interno con il clock o esternamente inviato dal RA4.

-intcon :questo registro contiene i bit di controllo degli interrupt e contiene sottoprogrammi come toif toie gie ecc..

- movlw : carica nel registro W la costante k, estesa 1 byte. Movlw k

- goto: produce un salto incondizionato portando l’esecuzione del programma alla locazione di indirizzo k. Goto k

- call: fa eseguire un salto alla subrutine di indirizzo k che normalmente è una label. Call k

- movwf: sposta il contenuto di W nel registro f. movwf f

- nop non fa niente

- bcf: azzera il bit b del registro f. bcf f,b

- bsf: pone a 1 il bit b del registro f. bsf f,b

- btfsc: testa il bit b del registro f, se è 0 salta l’istruzione successiva e passa a quella dopo ancora btfsc f,b

Domande da interrogazione

  1. Quali sono le principali caratteristiche del microcontrollore PIC 16F84A?
  2. Il PIC 16F84A è un microcontrollore a 8 bit con memoria di programma FLASH di 1024 locazioni, memoria RAM volatile con 68 registri, 2 porte di I/O e un timer TMR0, come descritto nel testo.

  3. Come è organizzata la memoria dati nel PIC 16F84A?
  4. La memoria dati è composta da 68 registri a 8 bit, suddivisi in due banchi (bank 0 e bank 1), utilizzabili per elaborazioni, generazione di ritardi e operazioni aritmetiche o logiche.

  5. Qual è la funzione del registro TMR0 nel PIC 16F84A?
  6. Il registro TMR0 funge da timer o contatore di impulsi esterni, ed è un contatore a 8 bit che può essere caricato con un valore iniziale e avanzato tramite un segnale interno o esterno.

  7. Come si configurano le porte di I/O nel PIC 16F84A?
  8. Le porte di I/O, portA e portB, possono essere configurate come ingressi o uscite tramite i registri Tris A e Tris B, dove scrivere 1 configura come ingresso e 0 come uscita.

  9. Qual è il ruolo del registro di lavoro W nel PIC 16F84A?
  10. Il registro di lavoro W è fondamentale per le operazioni di spostamento tra i registri, poiché la maggior parte delle istruzioni di trasferimento dati coinvolgono direttamente questo registro.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community