Anteprima
Vedrai una selezione di 1 pagina su 5
Microcontrollore PIC Pag. 1
1 su 5
Disdici quando vuoi 162x117
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Cosa sono i PIC?

Un microcontrollore è un dispositivo elettronico che opportunamente programmato è

in grado di svolgere diverse funzioni in modo autonomo. Essenzialmente gestisce delle

linee di input e di output in relazione al programma in esso implementato. Esistono

diverse famiglie di dispositivi in grado di svolgere queste funzioni come ad esempio lo

Z80, ST6 e il più evoluto 8088; in questa sezione ci occuperemo dei più semplici

dispositivi oggi in commercio, i PIC prodotti e distribuiti dalla Microchip.

Questi dispositivi implementano al loro interno un vero e proprio microprocessore

completo di CPU, RAM, Timer e numerose linee di IN/OUT. A differenza dei

microprocessori più evoluti nei PIC il programma è contenuto all'interno in un'apposita

area di memoria (non volatile) e viene eseguito ciclicamente, anche la RAM per i dati

volatili è all'interno dello stesso dispositivo, alcuni dispongono di aree dati non volatili

e riscrivibili (EPROM). Lo stadio di IN/OUT è già implementato all'interno ed alcuni

dispongono già di interfacce per segnali analogici, per comparatori o per

comunicazioni seriali.

I microcontrollori PIC dispongono di un numero ridotto di istruzioni e quindi sono dei

dispositivi di tipo RISC e si programmano in assembly ovvero in codice macchina.

In commercio si trovano diversi modelli di PIC a seconda della complessità e delle

funzioni implementate, alcuni dispositivi si differenziano anche per la quantità di

memoria disponibile e per la quantità di Timer a disposizione. Per le nostre applicazioni

è sufficiente un modello base come ad esempio il PIC 16F84A ma va benissimo anche

un 16F84 oppure un 16C84. Le versioni con memoria Flash sono programmabili più

volte (e quindi idonei alla sperimentazione) mentre le versioni OTP (One Time

Programmable) si programmano una sola volta. Le versioni UV sono riprogrammabili

dopo la cancellatura con raggi ultravioletti.

Cosa serve per iniziare?

Fondamentalmente il modo di procedere è uguale per tutti i PIC e si suddivide in una

parte di programmazione e in una parte di utilizzo all'interno del circuito elettronico

scelto come di seguito descritto:

1) Stesura del programma tramite un editor di testo qualsiasi anche se io consiglio il

banalissimo WordPad di Windows in quanto il file deve contenere solo testo e nessuna

formattazione e si avrà cura quindi di salvarlo in modalità "solo testo".

2) Compilazione tramite un compilatore che ha il compito di trasformare le istruzioni

mnemoniche (cioè fatte di parole) in codice direttamente eseguibile dalla CPU del

microcontrollore. Lavorando con i prodotti sul sito è possibile scaricare il

Microchip

compilatore distribuito gratuitamente. Questo programma permette solo di

MPASM

compilare il vostro programma ma non permette la simulazione per verificare se

effettivamente funziona. In questo caso è necessario scrivere prima il programma con

un editor di test (anche wordPad di windows va benissimo) quindi rinominarlo con

estensione .ASM e poi compilarlo tramite MPASM per ottenere il file di estensione .HEX.

Sempre sul sito della microchip è possibile scaricare che è un ambiente

MPLAB-IDE

integrato e permette l'editing del file ASM, la compilazione, la simulazione e

(disponendo del programmatore Microchip!) anche la programmazione del dispositivo .

- 2 -

A cura di Vito Giachetti Esame di Stato 2007

3) La programmazione del PIC avviene tramite un apposito circuito elettronico

(programmatore) sul quale viene inserito il microcontrollore e che viene interfacciato

al PC tramite porta seriale o parallela. Nel mio sito è disponibile tutta la

documentazione necessaria per realizzare un semplicissimo I PIC

programmatore.

sopportano la programmazione InCircuit ovvero la programmazione direttamente sul

circuito elettronico di funzionamento. In questo modo si evita di dover ogni volta

togliere il PIC dal circuito di lavoro per inserirlo nel programmatore.

4) Per poter inviare il programma al PIC (tramite il programmatore) occorre un

apposito software in grado di gestire i segnali di comunicazione tra PC e

programmatore leggendo il file generato dal compilatore. Il programma idoneo a

questo scopo è di pubblico dominio e si chiama ICPROG.

5) A questo punto vi serve un microcontrollore PIC, per iniziare va benissimo un

ma va bene anche un 16F84 oppure un 16C84 che con una spesa ci circa 6

16F84A,

Euro rappresenta l'entry level della produzione microchip.

Un programma passo-passo

Per poter scrivere un programma, abbiamo bisogno del software MPASM della

Microchip per la compilazione e un normale editor di testo per scrivere il programma.

Si scrive il programma con un editor di testo come WordPad, supponiamo di voler

realizzare un programma che attivi dei led in corrispondenza a dei pulsanti premuti.

Per la precisione il led si accende se il corrispondente pulsante è stato premuto.

Il nostro primo programma:

;led.asm

;attiva un led corrispondente all'attivazione di un pulsante

Dopo il ";" è possibile inserire dei commenti a piacimento.

LIST P=16F84A

Questa istruzione specifica al compilatore quale PIC verrà usato.

ORG 0

Questa istruzione specifica la locazione di memoria dalla quale inizierà l'elaborazione

del programma, nel nostro caso la prima "0".

MOVLW 0FFH

Questa istruzione pone il valore FF (in binario 11111111) esadecimale

nell'accumulatore.

TRIS 06H

Questa istruzione pone il valore dell'accumulatore nel registro di configurazione delle

porte, nel nostro caso il valore FFH (cioè tutti uno) viene posto all'indirizzo 6 quello

della porta A (da RA0 a RA4) definendola come porta di ingresso.

MOVLW 00H - 3 -

A cura di Vito Giachetti Esame di Stato 2007

Questa istruzione pone il valore 00 (in binario 00000000) esadecimale

nell'accumulatore.

TRIS 05H

Questa istruzione pone il valore dell'accumulatore nel registro di configurazione delle

porte, nel nostro caso il valore 00H (cioè tutti zero) viene posto all'indirizzo 5 quello

della porta B (da RB0 a RB7) definendola come porta di uscita.

RIPETI

MOVF 06H,0

Questa istruzione pone il valore letto all'indirizzo 6 (corrispondente a PORTB)

sull'accumulatore (W).

MOVWF 05H

Questa istruzione pone il valore dell'accumulatore all'indirizzo 5 corrispondente alle

uscite (PORTA).

GOTO RIPETI

Questa istruzione chiude il ciclo ovvero fa riprendere l'istruzione RIPETI in modo che il

programma elabori ciclicamente queste ultime tre istruzioni.

END

Istruzione di fine programma.

A questo punto si salva il file chiamandolo led, esso sarà salvato come led.txt che poi

andrà rinominato in led.asm; per poter modificare l'estensione di un file occorre

visualizzare correttamente la sua estensione agendo sul menu di visualizzazione della

cartella in cui si trova (procedura diversa a seconda del sistema operativo usato).

La compilazione

A questo punto si avvia il software MPASM e con il comando Apri File possiamo aprire

proprio led.asm.

Cliccate su assembla e verranno generati sulla stessa directory del file led.asm alcuni

file di cui led.err è un file con l'elenco degli errori riscontrati in compilazione e il file

led.hex è il file in codice macchina necessario per programmare il PIC.

Struttura Hardware del PIC 16F84 - 4 -

A cura di Vito Giachetti Esame di Stato 2007

Dettagli
Publisher
5 pagine
1525 download