Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ossiamo affermare che il PIC 1 6FB4 è un re un PIC che contenga un convertttore, ad esemplo
microcontroller povero ma essenziale, perché uno della gamma dei PIC 16FB7x.
nonostante le scarse risorse di cui dispone al
suo interno, permette la realizzazione di 3t rr4ff#LJLS effifl/Set
un'infìnità di applicazioni molto utili. ll convertitore che utilizzeremo ha come sigla PCF8591
Comunque, che cosa succede quando le risorse di cui e si collega al PIC tramite le linee del bus l2C, SCL e
abbiamo bìsogno non ci sono nel PIC? Anche se la filo- SDA.
sofia dei microcontroller è funzionare come sistemi Nella figura possiamo osservarne l'aspetto.
chiusi. dipendendo cioè, unicamente dalle risorse inter- tindirizzo a cui dovrà fare riferrmento il master è deter-
ne e senza connessione ad altri dispositivi, esiste la pos- minato dal codice 1001, stabilito in fabbrica, ha tre bit
sibilità di comunicare con periferiche che apportino che dipendono dai valori assegnati alle linee A0, A1 e
quello che i PIC non hanno. 42, che nella figura sono collegati a massa.
Proviamo a fare uso di queste caratteristiche, per ll bit meno sìgnificativo degli indirizzi indica se si va
disporre di un convertitore che si incarichi di trasforma- a leggere (1)o se si va a scrivere (0) sul dispositìvo'
re valori analogici ìn valori digitali che possano essere ll circuito si comporterà come un convertitore analo-
processati dal PlCl 6F84. gico/digitale a B bit, convertendo i valori che arrivano
In ogni caso, la scelta più sensata sarebbe seleziona- tramite le linee ANO, ANl, AN2 e AN3. e passando il
wfr|l&ùliÌtrl@s@Wsflfr1f]W]i@1ù[Wl#,à@wN'd]slùùuÌ
nx#x*,xm,m*ffix*
risultato come valore binario al PlC. Inoltre può funzio-
nare come un convertitore digitale/analogico, conver-
tendo ilvalore binario che fornisce il PlC, in una tensio-
ne che esce tramite AOUT. I segnali di massa e di riferi-
mento si collegano ai pin AGND e VREF.
A seconda delle caratteristiche della tensione di rife-
rimento si otterrà maggiore o minore precisione.
$3ffi##ffiÀ*,4 ffiA
Dopo la definizione delle
variabili dovremo includere
un file con le routines di
gestione per il bus l2C che
sdrdÍrÍlo ,,+ili---+^
uI'|tzzale ptu
^i,', avan-
ti. Configureremo la porta
A come uscita, utilizzando
le quattro linee meno signi-
ficative per acquisire parte
Equazione che da la risolutione di un convertjtore e ld relaLivà tabellò.
del valore convertito, cioè i
e p *qg
ry fi $ccw ry €__ffi.trtrR# ffi ff
LIST P=f6F84A ; Tipo di processore
INCLUDE "P16F84A.lNC' Definizione dei registri interni
return
clrf PORTB
quattro bit meno significativi del numero. Allo stesso valore convertito dalle porte A e B, nel modo prece-
modo la porta B acquisirà la restante parte del numero, dentemente descrrtto. ll modo di realizzare la comuni-
vale a dire i4 bit più significativi. Inoltre, le linee RB6 e cazrone con il convertitore viene indicata dal fabbrican-
RB7 saranno utilizzate per la comunicazione con il con- te di quest'ultimo
vertitore 12C. Dopo un bit di inizio dobbiamo indirizzarlo, indican-
La routine "A_input" legge il valore binario che arri- do se vogliamo leggere o scrivere, Nel nostro caso stia-
va dal canale 0 dell'ADC contenuto nel disoositivo mo leggendo, dato che stiamo cercando di acquisire la
l2CPCF8591. La subroutine "Visualizzare" prende il conversione di una tensione analoqica a binaria.
l/^^-;^^^
L
A, )Lr
rc ur
up4rur --.1++,,.^
rLLuro p€l' qUeStO
dispositivo consiste nel fargli pro-
Iniziqlizzozione durre la tensione corrispondente
PA uscito al valore binario che introducia-
P3 uscitq
TMR.O mo.
Dato che inviamo solo un byte,
se ne vogliamo conoscere il valo-
Ghiede il volore re, e leggere rl valore convertito,
dello conversione
possiamo fermare il seguito della
sequenza.
Tutte nrreste roiltines sono
Vqlore = X? Sl raccolte nel file "12CLOW.lNC".
Invece di utilizzare le porte A e B
per acquisire il valore della con-
versione in un modo così ricerca-
to, si potrebbe optare per l'uti-
lizzo di un altro dispositivo,
Vqlore >X? Spegnere il ventilotore
anch'esso l2C, a cui passare il
dato con due soli f ili, e que-
Spegnere Spegnere st'ultimo visualizzerebbe il dato
il riscqldcmento il riscaldqmento
su dei LED.
-s-4 ,r-l;:l
1...É{ cifiche di questo dispositivo indiche-
',4lJ+-@;ì
4:
4, ' l.gE
|4-+4 ranno il modo con cui si realizzerà la
+-L'.'+:: r ...ì comunicazione fra essi e il PlC.
543óil t'
PROGRAMMA
ll programma principale è molto simi-
ll SAA| 064 collegato a quattro display a 7 segmenti
ìe a quello del convertitore che abbia-
taa:aaaaaatLaaa:aaaaaaaaa,aaatltt\j111::11:::a:;;::;lll\l::ìlì{lflHiPr:r.ir::r:-ìììihÀ*11r!ì3!rì111!ì!ìì:
$cffware
o3
lniziolizzozione
ll progrommo legge il volore onologico presenf,e PB uscite
sul conole 0, lo converte in BCD e lo moslro lromi$e TMRO
quoitro disploy o 7 segmenti. 5i utilizzo il bus l2C
per mettere in comunicozione íl PIC con il dispositivo
convertitore e con il conhollore di disploy.
€hiedere vqlore
Fnunc Ìa to del I' eserciz io propos Lo dello conversione
verteinBCD,chetornaaconvertirsiqUeStavo|tain
codice a 7 segmenti, per rappresentarlo sui display. Si
utilizzano come linee di l/O solo le due corrispondenti al .
í;-,+.É+=-:'1rSaE:::.=
:,
ììì:
movwf DataByle
call Txt_Byte ; Trasmette I'indirizzo del dispositivo {scittura)
drf DataByte
call Txt_Byte ; Trasmette il byte di istruzione
movlw b'010001 1 1'
movwf DataByte
call lxt Byte ; Trasmette byte di controllo
movf Digit_1,W
movwf DataByte
call Txt_Byte ; Trasmette Digit 1
movf Digit_2,W
movwf DataByte
call Txt-Byte ; Trasmelte Digit 2
movf Digit_3,W
movw{ DataByte
call Txt_Byte ;Trasmette Digit 3
movf DigiL4,W
movwf DataByte
call Txt_Byte ; Trasmette Digit 4
call Txt_5lop_Bit ; Trasmette la sequenza di 5T0P
return
NUOVA PROPOSTA
Pensate a una nuova possibilità: ad esempio, che ve ne
pare di disporre di diversi sensori, uno per ogni canale
del convertitore, e scegliere quale convertire a seconda
del valore dei due interruttori? ll risultato puo essere
mostrato tramite dei LED, o con l'aiuto del nuovo dispo-
Organigramma della nuova proposta
sitivo che abbiamo aooena conosciuto.
Soflwsre
AP 05
Appticazione pratica:
comunrcazlOne con
o o
it computer
.'''' e l'utilizzo della tastiera e
dell'lCD come neriferiche
1...-'.
di un PIC vi sono sembrate
una grande invenzione,
î-^^++a+^'-.li',^'J^"^
d5peLLdre ur veuere cosa
abbiamo preparato in questa occa-
sione: niente più e niente meno che
la comunicazione del PIC con il com-
nltter Per ouesto lrtilizzeremo un
canale RS-232 che comunrca rn
modo se'iale con la porta del PC
Vcc
Orrest'rrltimo orazie al software
HyperTerminal (Hypertrm) fornito da
ll piedino RB4 del PIC sarà la lìnea di trasmissione dei dati, e il piedino RB5 la
Windows, si comporterà come un linea di ricezìone. Nel connettore DB9 del (ompurcr saranno i pin 3 e 2 rispettivamente.
Lerminale di comunicazione. ll cavo seriale che unisce il computer con il PIC tramite rl MAX232 deve avere le linee
di trasmisstone e di ricezione tncrociate, dato che quello inviato dal PIC tramite la hnea di
trasmissione deve arrivare alla periferica sulla linea di rìceztone e vrceversa.
USCITA ALTARME
RBO pericolo incendio
RBl N0 perkolo incendio
RB2 pericolo intrusi
R83 N0 pericolo intrusi
ll PIC oltre a mostrare le informazioni tramite i LED fornirà il tipo di situazione al terminale perché sia
mostrata in video.
)^,,^ ^,,^-^ t-
ttt1 (dvo -^-:-1^
--,.^ sel Hte OeVe àVete le
linee di trasmtssione e riceztane tncroctale Lnunciato dell esercrzio proposrc.
i
RBO HS Un
Spegnere
RAI microrobot per realizzare un lavoro. o
Actendere
RBI E'O? un sistema di riscaldamento che si
Spegrere
RBO
attiverà o drsattiverà a seconda degli
ActendeÉ ordini dell'utente o delle ore del gior-
RB2
Spegnae o no.
RE3
Lo schema, in questo caso, non si
Aceendere
RBit È"r limita agli elementi da collegare al
Spggnere
nB2 PlC, ma si estende sino alla connes-
Atcendere sinnp rnn il rnmnrrter ll modulo che
R8O, RBI,
rB2, Rg3 appare nella figura come canale RS-
232 è mostrato in dettaglio in una
finrrra nrarodonta
ìÌi
,rll
Mess_6
DT
EQU
"lncendio/lntrusi ",0x0d,0x00
Q*,*"'***
-_
NO_INTRU$
;È
;Si
,P'?
sffi .4rt&. .l