clive87 di clive87
Ominide 50 punti

MICROCONTROLLORI

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.
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. Ciascuna 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

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.

REGISTRI SPECIALI

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..

Scrittura del programma

- 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

Registrati via email