Sei sulla pagina 1di 100

IWCROCONTROLTER

lnterrupt per fine scriilurei nellcr EEPROITI

La delicata operazione
di scrittura netla EEPROM
a EEPROM dei dati del PIC 1 6F84 ha una capa- completata. non è possibile ripetere I'operazione stessa,
cità di soli 64 byte, ma il suo pregio sta nella ìnoltre conviene verrficare che non siano stati prodotti
non volatrlità dei dati. Scollegando l'alimenta- errori durante la sua realizzaztone, per questo test esi-
zione, l'informazione memorizzata nelle sue stp rn fl,an dpdirato npl rpnicfrn di rnntrgllo della
celle viene nantenuta; ouesta caratteristica EEPROM.
rondp nrroqta momoliS indi-
spensabile in molte applicazioni i1
commerciali. t:
tt
l-nmo ni: dotfn in nraee- ll
sv, |,! y,q 1:
denza. ogni indirizzo di questa ::
)l
mpmoria nlro esqprc scritto ìn
modo indipendente, anche se GIE e EEIE devono essere é 1 per permettere un interrupt
I bit di permesso dell'interrupt
la grande quantità di tempo quando termina la scrittura della EEPROM e il flag EEIF passa a 1 .

(relativo) che richiede questa


operazione, a volte rappresenta un problema. Scrivere Per poter conoscere immediatamente la fine delle
un byte nella EEPROM puo richiedere sino a 10 ms. operazioni, è raccomandabile attivare un interrupt in
Questo tempo è enorme, se comparato con la veìocttà cur il processore verifichi che le procedure siano termi-
di lavoro del microcontroller; per dare un'idea bastr nate correttamente e possa scrivere gli eventuali byte
pensare che un PlC16FB4 funzionante con quarzo da SUCCESSIVI,

4 MHz può eseguìre 10.000 istruzioni normali nel I bit GIE e EEIE sono ubicati nel registro INTCON,
tempo in cui si scrive un byte nella EEPROM. mentre il flag EEIF si trova nel bit 4 del registro
ll tempo di scrittura di una cella della EEPROVI non EECONl; questo flag viene messo automaticamente a
è costante, dipende dalla temperatura, dalla frequenza 1 quando termina la scrittura.
di campionamento, e da altri parametri; pero questo Dobbiamo considerare che quando si utilrzza un
tempo è critico, perche se non si compie non si riesce a interrupt per fine scrittura nella EEPROM, all'interno
scrivere in modo corretto ìl byte nella memoria, e il della routine dedicata, prima dell'istruzione di ritorno
sistema resta degradato e inservibile. Pertanto è assolu- dobbiamo porre il bit EEIF = 0, perche in caso contrario
tamente necessario verificare con certezza che l'opera- appena ritornati al programma principale si ripetereb-
zione di scrittura terminì correttamente. be la chiamata alla routine di interrupt. Nella figura e
riportata la situazione dei bit che gestiscono l'interrupt
per fine scrittura.
Così come ner le altre tre cause di interrr rnt nel Quando GIE = EEIE = 1, e termina Ia scrittura nella
PIC 16F84, l'interrupt per frne della scrittura nella EEPROM, il bit EEIF si pone a 1 e si genera un interrupt.
FFPROIV psinp la oestione di tre bit: La routine dedicata deve esaminare se vi sono stati
- GIE: Permesso Globale di Interrupt. eventuali errori, testando il bit che lo segnala, e suc-
- EEIE: Abilitazione dell'interruot oer fine scrittura cessivamente porre EEIF = 0 prima del rìtorno al pro-
nella EEPROM. gramma principale.
- EEIF: Flag di fine scrittura della EEPROM Una buona tecnica e verificare che sia stato scritto
Quando termina l'operazione dì scrittura di un byte nell'indirizzo voluto il valore corretto. Nello schema
nella EEPROM, il flag EEIF viene messo a 1 automatica- logico della figura si mostra il modo in cui si genera un
mente. Sino a che l'operazione di scrittura non e stata interruot oer fine scrittura nella EEPROM.
ill ICROCONTROLLER
nellcr EEPROilI

zìone che sta controllando, come ad esempio un sen-


INTERRUPI
EEIF
sore optoelettronico che rileva il passaggio di un ogget-
SCRITruRA
EEPROM EEIE to, si puo collegare direttamente l'uscita del sensore al
piedino RB0 in modo che generi un interrupt. Quando
il parametro è analogico, puo essere necessaria la sua
conversione in digitale, mediante un ADC (Analog to
Digital Converter), oppure l'utllizzo di un comparatore
che cambi lo stato della sua uscita se il valore analogi-
co supera una soglia determinata. Per chiarire al lettore
la gestione degli interrupt sia nell'aspetto fisico che in
quello logico descriveremo un progetto basato sul
Schema logico che mostra il controllo
Ptc 16F84.
della generazione di interrupt per fine scrittura nella EEPROM

. ,, ', ,'t." 't.'.:1,

Prendiamo in considerazione il progetto dì un allarme


. t': l':.,.,:,..,i:'i]." I
antifurto per un'automobile. Per controllare l'apertura
ll microcontroller è in continua esecuzione del oro- delle quattro porte principali della macchina si utilizza-
gramma a cui è stato dedicato, il quale controlla molti no quattro sensori a contatto che saranno collegati alle
elementi esterni che fanno oarte dell'ambiente di lavo- quattro linee più significative della Porta B (RB4-RB7).
ro. Questi dispositivi sono influenzati dalle caratteristi- Quando si attiva I'allarme, l'apertura di una qualsiasi
che e dai parametri di molti fattori, sia interni che delle porte genera un cambio di stato in uno dei pin
ambientali. Se ad esempio stiamo controllando un RB4-R87, che saranno programmati in modo interrupt,
motore, la velocità di giro dell'asse è un fattore fonda- originando il medesimo. La routine di interrupt ha il
mentale per lo sviluppo delle sue operazioni, pertanto compito di attivare due sirene o altoparlanti di grande
dobbiamo verificare continuamente che rimanga all'in- potenza, controllati dai piedini RAO e RA'l della Porta A
terno'di margini adeguati, un altro fattore fondamen- del PlC16FB4. Ouesti elementi acusticì resteranno in
tale potrebbe essere la temperatura. Sia la velocità di funzione sino a che un sensore ad infrarossi riceverà il
giro che la temperatura sono valori di cui deve tener comando adeguato originato da un telecomando a
conto il microcontroller, e reagire immedìatamente in distanza. Questo sensore sarà collegato al piedino
caso vengano superati i limiti stabiliti. Per poter rispon- RB0/|NI, come mostrato dalla figura.
dere in modo immediato alle condizioni esterne, il Lo schema elettrico corrispondente all'allarme anti-
microcontroller dispone degli interrupt. Nel caso del furto, è riportato nella figura alla pagina seguente, in
PIC 1 6F84 sono state descritte quattro cause che posso- cui sono stati aggìunti i circuiti ausiliari dr alimentazio-
no oenerare interruot: ne, clock e reset.

2'. Che vada in overflow il fMR0 al termine di un periodo di tempo.

41 Che sia terminata la scrittura di un byte in una cella della EEPR0M.

Quando si progetta un'applicazione si deve adatta-


re una di queste possibili cause di interrupt alla gran-
dezza esterna che si intende controllare, per intervenire
su di essa immediatamente. Nel caso di un sensore digi-
Schema generale del sstema di allarme antifur-to.
tale, che cambia rl suo stato logico alvariare della situa-
P50

Nelì'allarme per l'automobile abbia-


mo un programma principale che si
SIRENAI
occupa di configurare le porte per
SIRENA2
adattarle alle periferiche, dopo di che
frqA A,- entra in un ciclo dr attesa da cui non
esce se non si attiva l'allarme per l'a-
Itlv\Ar
27pF pertura di una porta, o si scollega
l'allarme. Queste piccole operazioni,
i+PoRrA4 si riflettono nell'organìgramma della
'#PORTA3 figura.
t+PORTA2 L'implementazione, con le istruzio-
1'+POnrAt ni del PlC, dei blocchi che compon-
SENSORE AD gono I'organigramma, si realizza con
INFRAROSSI
i <onrrpnti n:<<i'
Per chiarire la programmazìone del
Schema elettrico semplificato dell'allarme antifurfo
regrstro INTCON per l'abilitazione

Un buon programmatore ha la capacità di ordinare ìl 2". Definizione di inizio del programma principale e inizio del ptogramma di
lavoro di sviluppo in parti, o moduli, di piccole dimen-
sioni. In questo modo al momento di scrìvere le istru-
zioni farà nferimento a piccoli moduli, facili da eseguire
e da capire, e rapidi da editare. 4". Configurare la pora B (ome ingresso.
Por rennrpqpnlartr comodamente la divisione deì
problema da risolvere è fortemente consigliabile utiliz-
zare gli organigrammi.
6". Attivare i bit di permesso dell'intenupt, il bit di permesso globale, quello
di intenupt esterno tramite RBO e quello per il cambio di stato nelle linee
RB+RBi,

degli interrupt, riportiamo nella figura Ia struttura inter-


na del medesimo.
€onfiguro
porle Nella pagina a lato svilupperemo il programma di
allarme, con i gruppi di istruzioni divisi nelle parti prìn-
cipali di cui è composto.
Ciclo

!ip' Allorme?

Rouline
di interrupt

Organigramma del programma principale Struttura interna del registro di controllo degli interrupt INTCON.
TWCROCONTROttER
Interrupt per fine gcrlftura nellei EEPROilI

PROGNAITTffIA PRIIICIPA1E DI AII.ARThE

Definizione delle caratteristiche e dei registri del PIC

LIST P=16F84
RADIX HIX
W EQU 0
F EQU 1
STATO EQU 0x03
PORTAA EQU 0x05
PORTAB EQU 0x06
INTCON EQU 0x0B

Definizione degli indirizzi di inizio del programma principale e della routine di interrupt

ORG 0
goto inizio
ORG 4
9oto inter
ORG 5

Configurazione delle porte di ingresso e uscita

tntzto bsf STATO,5


movlw b'0000 0000'
movwf PORTAA
movlw b'1111 1111'
movwf PORTAB
clrf PORTAA
clrf PORTAB

Bit di abilitazione dell'interrupt

movlw b'r001 1000'


movwf INTCON
ciclo goto ciclo ;Ciclo infinito in attesa di interupt
Programma principale

inter btfss INTCON,O


goto fermare
goto allarme

allarme clÉ PORTAB


movlw b'l001 1000'
movwf INTCON

sirena bsf PORTAA,O


NOP
bcf PORTAA,O
bsf PORTAA,l
NOP
bcf PORTAA,l
goto sirena

fermare clrf PORTAA


bcf PORTAB,O
movlw b'1001 1000'
movwf INTCON
goto ciclo

end
,;.

5r

fimportanza
del consumo
bbiamo un distributore di bibite in mezzo
alla spiaggia. Ha avuto una buona acco-

cesso. Pero lr non abbiamo una presa di


corrente, e il distributore deve funzionare
con una batteria, o delle pile ricaricabilr.
Evidentemente è fondamentale che il consumo della
macchina sia molto basso, per evitare le continue sosti-
tuzioni delle batterie, e periodi con mancanza di servi-
zio. Inoltre funziona realmente da mezzogiorno fino a
sera, fuori da questo periodo si awicina solo qualche
cliente occasionale.
Non c'è attività nemmeno nei giorni in cui manca il
sole, quindi ci sono lunghi periodi in cui la macchina
non funziona.
Per ridurre il consumo sarebbe auspicabile che la cir-
cuiteria elettronica consumasse energia solamente
quando deve fornire il servizio. ll caso del cellulare, è
simile a quello appena esposto, trascorre lunghi periodi
di tempo in cui non è utilizzato, in attesa di ricevere
v^,,-l-h^
-l-i-*-+-
uorLr rE Lr ild I I to Ld.
Nella maggioranza delle attrezzature portatili ali-
mentate con pile, e che non dispongono di energia
elettrica, conviene ridurre il consumo al minimo nei
periodi in cui sono in attesa di realizzare un'operaztone.

ll nostro microcontroller puo rimanere molto tempo in


uno stato in cui consuma una quantità ìnsiqnificante di
^^^"^;^
qr ^l^++.;--
rEruro crctLt tLd.
Questo modo si chiama di riposo o di basso consu-
mo, e la corrente di alimentazione tipica, che e circa 2
milliampere, passa ad essere inferiore a 10 microampe-
re; questo significa che è possibile alimentarlo con una
piccola pila, che può durare sino a due anni.
Questa caratteristica lo rende molto adatto a quelle
applicazioni in cui ci siano lunghi periodi di inattivrtà in
attesa che succeda qualche evento esterno, come l'at-
tivazione di un pulsante. Durante questa condizione si
ll telefono cellulare resta molto tempo in stato di attesa
dice che il microcontroller sta dormendo.
MODO RIPOSO
STATO RISORSA CONSEGUENZA

Non si eseguono istruzioni


Oscillotore principole fermo Non funziono il TMRO
{RAM/TOCKI collegoto o VDD}

- Si resetto però conlinuo


WDT o funzionore

linee l/O congelote - Montengono lo stoto precedente

- Posso dq 2mA
Consumo minimo
o meno di IOpA

Tabella che raccoglie le principali conseguenze degli ingressi nel modo riposo.

Per addormentarsi al microcontroller basta eseguire :'


l'istruzione SLEEP, di conseguenza il primo elemento l

che si ferma è l'oscillatore principale, lasciando il com- Il microcontrollore si addormenta eseguendo l'istruzio-
pito di produrre gli ìmpulsi di lavoro alla frequenza ne SLEEP nel programma e si sveglia, riprendendo il suo
Fosc/4. funzionamento normale, per le seguenti cause:
ln questa condizione il processore non esegue alcu-
na istruzione, né tantomeno funziona ilTMR0 dato che
non riceve impulsi interni.
2', Per l'ovedlow del
Per fare in modo che il TMR0 non funzìoni con gli
impulsi esterni, si porta il piedino RA4/TOCLKl aì positi-
vo. In questo stato dobbiamo evidenziare che il
Watchdog che rimane in funzione, entrando in modo Quando si attiva ìl piedino MCLR# e ìl PlC16F84 è
riposo viene resettato, o reinizializzato, però continua a stand-by, si sveglia e inizia ad eseguire la prima istru-
funzionare, dato che dispone di un oscillatore proprio zione del programma, che risiede nel Vector Reset. Lo
e indipendente. In questo caso i flag del registro STA- stesso succede quando va in overflow il WDT: se il
TUS resteranno TO# = '1 e PD# = 0. microcontroller stava dormendo, si sveqlia e si reini-
Le linee di ingresso e uscita mantengono lo stato zializza.
precedente all'ingresso in modo riposo, e quelle che Per determrnare quale delle due cause ha origina-
non sono collegate a delle periferiche e che assumono to il Reset, sì testano iflag TO# e PD# del registro
lo stato di alta impedenza si raccomanda di colìegarle STATUS, seguendo i valori indicati dalla tabella della
al positivo o a terra, per evìtare possibili fughe di cor- f igura.
rente. Vedere la tabella della fiqura. Quando si sveglia il PIC si sviluppa la sequenza del
VALORE DET FLAG INDICAZIONE

PD#=0 - Esecuzione SIEEP. Modo riposo

PD#= | - Si è sveglioto

TO#=0 - È ondoto in overflow il WDT

TO#= | - Non è ondoto in overflow il WDT

Stato e significato dei flag PD# e TO#.

Iemoorizzalore OST rhe ritarda di 'l024.Tosc l'inizio del interrupt che ammette il PlC16t84, quella relativa al
funzionamento normale, con l'obiettivo di dare il TN/R0 non e possibile, dato che mancano gli impulsi,
tempo alla frequenza di funzionamento di stabilizzarsi. quindi sono valide soÍo le altre tre opzioni (vedi tavola
in alto alla pagina seguente).
. ':.. 1.., 'l'
Quando venne eseguita l'istruzione SLEEP, il PC si
La terza causa che puo fare risvegliare il PIC avviene fermò caricato con I'indinzzo dell'istruzione successiva
quando si verifica un interrupt. Dei quattro possìbili (PC+1).

RISVEGLIO CON INTERRUPT


I

STATO DEI BIT ISTRUZIONI SUCCESSIVE :

GIE- 0 (tnibizione) PC + | (Successivo o sleep)

RBIE= INTE- EEIE-- I PC + 2 (Successivo)

GIE= I (Abilitozione) PC + t (Successivo o sleep)


RBIE- INTE= EEIE= | 0004 {Vector di lnterrupt)

lstruzioni che esegue il PlCl6FB4 quando si sveglia tramite un interrupt a seconda del valore del bit GIE
P52 MTCROCONTROttER
ll modo riposo

partire dall'istruzione successiva a SLEEP come


mostrato nella tabella della figura.
2'. Cambio di stato in uno dei piedini RB7:R84,
Quando GIE = 0 e si attiva il flag di un interrupt
che ha 1 sul bit di abilitazione individuale, può veri-
ficarsi una delle seguentì condizioni:
Per accettare uno dei tre interrupt e necessario che i 1") Se l'interrupt avviene prima dell'istruzione
relativi bit di abilitazione (lNTE, RBIE, e EEIE) siano a 1. SLEEP, questa si completera come se si trattasse di
ln questo caso quando si attiva uno deiflag di interrupt un'istruzione NOP. Non si cancella né il WDT né il
si testa il valore del bit GlE, che è il bit di abilitazione suo Divisore di frequenza. ll bit TO# non viene
nlnhrlo donli intorrr rnt messo a 1 e il bit PD# non si cancella.
"-v" "
Se GIE= 1 e quindi gli interrupt sono abilitati, il PIC 2") 5e l'interrupt avviene durante o dopo l'istru-
si sveglia ed esegue l'istruzione (PC+1) successiva a zione SLEEP, il microcontroller si sveglierà immedia-
SLEEP, e infine si carica nel PC l'ìndirrzzo 0004 H, sal- îamente dono aver esporrito l'istruzione SLEEP Si
tando alla routine di interrupt. cancella il WDT e il suo Divisore di frequenza, il bit
Dato che a volte non sì desidera eseguire nessu- TO# passa a 1 e il PD# passa a 0.
na istruzione prima di saltare alla routine di inter- Per assicurare la cancellazione del WDT quando
rupt, dopo SLEEP si inserisce un'istruzione NOP. si esegue l'istruzione SLEEP, si raccomanda di met-
Se si genera un interrupt abilitato a livello indivi- tere davanti ad essa l'istruzione CLRWDT.
duale ma non a quello globale, cioe con GIE = 0 Nella figura è presentato un cronogramma che
(lnibizione Globale), il PIC si sveglia dallo stato di illustra la forma di risveqlio del PIC tramite inter-
riposo, e continua l'esecuzione del programma a ru pt.

or 02 03 04 al a2 03 a4 Qr or 02 a3 04 0l 02 a3 04 Qr 02 a3 a4 ar a2 a3 a4
t I l l I f 'g ,' ;,r$ 1,,|'|,,1'l f::1 1 I,,i,I,[.]-']

PIEDINO INT

INTF flos
(|NTCON <t>)

GIE bit
{tNTCON <7>) < PROCESSORE > ':. ::::'..:..:'.t,'
ir.iirìHi-si

-
PC

srEEP
; '"tlfitooìf Insr (PC)= Inst {PC+l}

hsi(PC-r) lnsi (PC+l) Ciclo Dummy Ciclo Dummy


'tTJ,fl!ilf
i NoTE i;
, 1. XT, HS, osono i modi possibili per
LP l'oscillotore. I
', 2. Tost = 1024 lost. Queslo ritrordo non c'è nel modo RC. t
3. Se si suppone che GIE = I ol suo risveglio il processore solto ollo routine di interrupt.
Se GIE = 0 l'esecuzione conlinuo con le istruzioni successive ollo sleep. i,
4. CTKOUT non è necessorio in questo modo, però si uso come riferimento. j
Cronogramma del risveglio del PIC al prodursi di un interrupt.
MICROCONTROLLER

II Micro PIC Programmer:


uno scrittore di PIC
cessiva compilazione, sono fatti su di un personal com-
puter, utilizzando i programmi necessari forniti dal fab-
Un microcontroller è un piccolo computer, che esegue il bricante del microcontroller o da una ditta esterna. Una
programma che si trova scritto nella sua memoria, per volta ottenuto il codice binario, o esadecimale, che
assolvere al compito a cui è stato destinato. La memo- deve essere memorizzato nel PlC, si passa alla fase di
ria dove risiede il programma non deve essere volatile, scrittura, tramite l'hardware esterno, collegato ad una
le istruzionr devono rimanere inalterate anche se viene porta del PC, da cui si scarica il programma in questio-
tolta l'alimentazione. ne, con l'ausilio di un software di comunicazione fra il
Quando il programma risiede nella memoria ROM o PC e lo scrittore.
in un modello OTP (One Time Programmable), non si
puo né cancellare né modificare; mentre se la memoria
di programma è di tipo EPROM, EEPROM oppure
FLASH, si puo scrivere, cancellare, e riscrivere un nume- Per scrivere i PlC, oltre ai dispositivi forniti dal fabbri-
ro di volte molto grande. cante, ve ne sono moltr altri sviluppati da ditte esterne.
La scrittura del programma sorgente. e la sua suc- Per questa spiegazione abbiamo scelto il programmato-

rwic. (l.ì)
\È systa,t's
Frrdirroertn

ll kit dello scrittore MICRO PIC PROGRAMMER


è composto da una scheda elettronica, un dischetto con il programma, il cavo per il collegamento al PC e il manuale d'uso in italiano.

{wattaaaaaaaatltjjtlllll:11::iìrìììììilri.ffi Birrrrllllr,
ONTROLTER

: . '::.

''
I l

Fotografia del Micro PIC Programmer collegato alla porta parallela del PC

re dr PIC N/ICRO PIC PRO-


GRAMMER della ditta "MSE
Microsystem Engrneering ".
Si tratta di uno scrittore
di PIC di gamma media,
caratterizzato dalle sue ri-
dotte dimensioni, dal basso
prezzo e dalla semplicità
di utilizzo. Fra i PIC che
nro scrivere troviamo il
Y""
PlC16F84, e i moderni
PIC'l 6FB7x.
E basato su una scneoa
in cui si trova tutta la circui-
teria elettronica, compresi
gli zoccoli su cui inserire il
PIC che si desidera program-
mare.
ll
sistema comprende
anche un cavo a 25 fili da Fotografia della scheda elettronica del Micro PIC Programmer. Anche se dispone
solo di due zoccoli liberi, esrtono molti adattatori per gli altri tipi di contenitori del PIC
collegare alla porta parallela
MICROCONTR,OLLER
Uno scriltore di PIC

del computer. Uimpiego di questa porta permette una durante la fase di scrittura, in cui bisogna inserire e
maggiore velocità di scrittura e una maggiore protezio- togliere il circuito integrato dallo zoccolo del program-
ne del PC, dato che la scheda dispone di alimentazione matore, si possono uttlizzare zoccoli a "forza di inser-
zinnorE ruro
nr rll: " , lvrrs
rnmo 61 lnlln Ànllr
uEllo {n+nnrrfir
autonoma. 4rvr vucllu luLU9lollo.
lnoltre è incluso anche un dischetto con il oro-
gramma di comunicazione e controllo PICME-PR, e le '
. . ' jt ,
"

informazioni tecniche sull'utilizzo e sul funziona- tinizializzazione del funzionamento del MICRO PIC
mento. PROGRAMMER e molto semplice e rapida, e consta di
Questo programmatore dispone di un circuito per la quattro passi:
stabilizzazione delle tensroni di alimentazione, quindi 1" Passo: Cooiare il software PICME-PR del dischet-
può funzionare sia con due pile da 9 VDC che con un to, in una subdirectory sull'hard disk del PC.
trasformatore da 220/15 VAC e una corrente uquale o 2" Passo: Collegare il cavo da 25 fili fornito insieme
superiore a 0.5 A. al programmatore alla porta parallela del PC.
3" Passo: Fornire la tensione di alimentazione
allo scrittore, o con due pile da 9 VDC o con un tra-
Anche se sulla scheda del MICRO PIC PROGRAMMER ci sformatore da 220/15 VAC e una corrente superio-
sono soìamente due zoccoli da 1B e da 40 piedini per re a 0,5 A.
inserire i PIC da programmare, esistono diversi adatta- 4" Passo: Eseguire dal PC il programma PICME-PR
tori che supportano i modelli a 2B piedini, con conteni- con il quale si possono realizzare le funzioni di lettura,
tori di differente larghezza, permettendo l'uso del pro- scrittura, verifica, cancellazione, ecc. del microcontrol-
grammatore con la maggior parte dei PIC della gamma ler. Dovrà aooarire neì monitor del PC la finestra di lavo-
media. Per proteggere i piedini del microcontroller ro rioortata in fiqura.

Fotografia dello zoccolo a forza di inserzrone nulla, e un adattatore per un PIC con contenitore diverso.
I'IICROCONfROttER

VERIFICA
DI CANCELLAZIONE
Quando si attiva questa
+. .++- l-
opzrone,
^^-i^^^ IUIIa ta memona
--
del circuito integrato, prima
della fase di scrittura, e sot-
toposta a una verifica di can-
cellazione.
ID/CHECK
Mediante questa frnestra, si
puo scnvere un numero dr
identificazione che verra
scritto nella memoria del PIC
(parola di identif icazione) In
egual modo verra visualizza-
to il "Check-sum" delconte-
nuto attuale della memoria.
APRI FILE
Questo pulsante permette di
leooere ilcontpnrrto di un
file eseguibile in formato
Videata di lavoro del aroqramma PICME-PR.
INTEL.HEX e depositarlo nel
buffer della memoria.
PROGRAMMA TUTTO
Trasferisce il contenuto del buffer di memoria e la

Quando si esegue il programma PICME-PR, sul monitor Parola di Configurazione attuale nella memoria interna
appaiono una serie di finestre e dì pulsanti di comando, del microcontroller.
-^^ iI quarì
con sr arrvano
^,,-li -; -++i,,1^^ tt ttté lo fr rnzinni,. del nr
--, tr,ogramma- PROGRAMMA PAROLA
tore, che descriviamo di seguito: Scrive unicamente la parola di configurazione attuale
BUFFER DELLA MEMORIA DI PROGRAMMA sul microcontroller, lasciando inalterato il contenuto
È la finestra più grande della videata, e in essa appare il della sua memoria interna.
contenuto che arriva da, o che deve essere trasferito a, VERIFICA
la memoria del codice interno del microcontroller. Verifica il contenuto della memoria interna del PIC con il
Mediante i pulsanti adeguati si puo visualizzare tutto il contenuto del buffer di memoria. Se viene rilevata qual-
conten uto. che differenza appare il corrispondente messaggio. Si uti-
SELEZIONE DEL MODELLO ltzza per verificare la corretta programmazione del PlC.
ln nrocf: finpctr,a qi cronlip il Pll- rho
rL Jr dociÀo'. PIU-
<i uLrluEIo ^'^ LEGGI PIC
Ofammafe. F vtYutt'LLara in a' ,a++rn gruPpt
Of OaniZZ=+: ilrquqLLrv ^r, ^^i di modellt
I
Legge il contenuto della memoria interna del PIC e lo
16C6X, 16C62X, 16C7X, 16C84 (16F84). Selezionando denosita nel hrrffer dolla memoria.
uno di questi gruppi appare un menu a tendina, con i CANCELLA PIC
diversi modelli disponibili. Dopo aver selezionato quello Cancella il contenuto della memoria ìnterna del PlC.
che si desrdera, nella parte inferiore della f inestra si pos- Questa icona risulta attiva solo quando la memoria e di
sono leggere le caratteristiche piu importanti del tioo FLASH e ouo essere cancellata.
modello scelto, VERIFICA DI CANCELLAZIONE
PAROLA DI CONFIGURAZIONE Verifica che la memoria interna del PIC sia totalmente
Tramite olestà finestra si scenlie ,a conf iarrrazione di cancellata.
lavoro del PIC: protezione del codice, attìvazione del ESCI
Watchdog, Brown-Out, Power Timer e tipo di clock Chiude il programma PICME-PR e restituisce il control-
(XT). lo del PC al sistema operativo.
NilICROCONTR L[ER
Concetli e utilifer del di sviluppo

It MICRO PIC TRAINER:


un sistema di sviluppo
n sistema di sviluppo è un insieme di stru- I'alimentazione e un pacchetto software contenente
menti hardware e software, che permettono l'editor per scrivere il programma, rl compilatore, l'as-
dt realizzare tutte le operazioni necessarie semblatore, il simulatore e il proqramma di comunlca-
per porre in essere un progetto basato su di zione e controllo.
un microcontroller. Per questa descrizione ci siamo basati su un sistema
Mediante un sistema di sviluppo si puo editare il disviluppo economicamente accessibile, efficace e sem-
programma, memorizzarlo, cancellarlo se la memoria lo plice da ultlizzare, denominato MICRO PIC TRAINER
permette, compilarlo, assemblarlo, eseguirlo in tempo della ditta "MSE: Microsystem Engineering".
reale e farne il "debug", owero la messa a punto. Èdestinato ai PIC della gamma media, con un mas-
Per poter eseguire queste operazioni e necessario simo di 28 piedini, fra cui troviamo anche il PlC16FB4.
uno scrittore/cancellatore, un insìeme di periferiche tipi- Nella figura si puo vedere l'insieme dei materiali che
che, da collegare ai piedini di l/O del microcontroller, compongono il MICRO PIC TRAINER.

;
$

lnsieme dei materidi che formano il sistema di sviluppo MICRO PIC TRAINER
. .'., "r,,' | .',.,i',.,,'.
.,t,,.1,,....,,',
Nella tabella seguente sono riportate le caratteristiche e
i componenti principali di cui è composto il MICRO PIC
TRAINER.

2. - Frequenza di lavoro standard da 4 MHz, che può essere cambiata


sostituendo il cristallo di quarzo.

4, - Cinque ingressi digitali implementati con cinque


commutatori,

Scheda MICRO PIC TRAINER

questo connettore si puo espandere verso l'esterno il


6, - Otto uscite digitali collegate a otto diodi LED o ad un display
N/ICRO PIC TRAINER, permettendo la connessione di
numerose schede di espansione, sviluppate dal fabbri-
cante stesso, oppure con le schede sviluppate dall'uti-
ltzzaTjre.
8. - Possibilità di collegare e scollegare le periferiche mediante
lumpers.

Quando si lavora ad un progetto basato su di un


microcontroller, uno dei compiti piu comuni è la ste-
sura deì programma, e la verifica della sua efficienza.
10. - Circuito scrittore "in circuit". Permette di scrivere un PIC montato su
uno qualsiasi degli zotcoli a disposizione, ll PIC'!6F84
ll progetto si divide in moduli, e la stesura del softwa-
si può scrivere, cancellare e riscrivere tutte le volte che si desidera, re che controlla ognuno di loro, propizierà ìl risultato
senza toglierlo dallo zoccolo.
f ina le.
Per verificare l'idoneita delle istruzioni di ognì
modulo, dobbiamo provarle ed eseguirle in tempo
reale sulle periferiche o sui dispositivi da gestire. ll
12. - Connettore DB25 a 25 fili per il collegamento con la porta parallela sistema di sviluppo MICRO PIC TRAINER, collega e
del PC.
scollega ai piedini di l/O del PIC le periferiche di cui
dispone: commutatori, pulsanti, potenziometri, diodi
LED, display a 7 segmenti, e anche un display LCD.
Inoltre tramite il connettore PICBUS, è possibile
aggiungere qualsiasi componente esterno.
14. - Tutti icomponenti che compongono il MICR0 PIC TMINER sono Dato che ìl dispositivo e collegato alla porta paral-
montati su di un circuito stampato professionale, a doppia faccía, con fori
lela del PC, quest'ultimo è utilizzato per editare, com-
metallizzati, ampiamente serigrafato, di dimensioni EUROCARD da
100 x 160 mm. lJinsieme può anrhe essere acquistato in kit, da montare. pilare, assemblare e simulare i programmi.
Dopodiché il programma oggetto si scarica nella
memoria del PlC. Infine si esegue questo programma
il controllo del sistema di sviluppo si realizza per sul sistema di sviluppo, e si analizzano i risultati otte-
mezzo del PC, al quale si collega tramite la porta paral- nuti sui dìspositivi del mondo reale, che sono le peri-
lela. Dispone inoltre di un connettore chiamato PIC- feriche che abbramo collegato ai piedini di l/O. Alla
BUS, tramite ìl quale sono portati aìl'esterno tutti i vista diquesti risultatisi può valutare se ilsoftware che
segnalì di l/O e l'alrmentazione del mrcrocontroller. Con abbìamo scritto funziona o meno, passando alla suc-
;

cessiva fase di messa a punto e


alla ripetizione del processo.

'l: : :t: ".1,'i: l. ::,'i:::, i :': :


:l y
:;.:,.1: :
:: t: :!i!: ;''i:';.';;1,'ii,. 1;

Anche se sulla scheda del MICRO


PIC TRAINER ci sono solo due zoc-
coli da 1B e 28 piedini, esistono
diversi adattatori che permettono
di lavorare con i differenti modelli
di PIC e di piedinature. Come rife-
rimento ricordiamo che l'adattato-
re "2OC0603" adatta i PIC a 28
piedini con drmensione 0.6" alla
dimensione 0,3"; invece lo
"7OC8lx" è un kit di adattamen-
to ner I'tiiltzzo dei PlC16t87x.
Raccomandiamo l'uso degli
zoccoli "a forza di inserzione
nulla ", che dispongono di una
r^,,- -r-^
|EVC Lt IE -^.^ iI {^.i
OPtE ^ 'acilita
tUI I C l,in_ Collegamento del sistema di sviluppo alla porta parallela del PC.
serzione e l'estrazione dei PlC.
Grazie al connettore di espansione
PlCBUS, è possibile collegare al MICRO PIC TRAINER po e che contiene sezioni sul montaggio, messa in mar-
una serie di schede, alcune delle quali sono descrrtte di cia, installazione del software, funzionamento, modulo
Seguito, e che offrono molteplici possibilità di sviluppo. LCD e tutorial per realizzare i primi progetti, si possono
trovare su Internet gli aggiornamenti del software e le
MICRO PIC TRAINER PLUS ultime novità consultando il sito: www.microcontrol-
Basata sul collegamento con il bus l2C permette l'im- ler.com.
piego di nuove periferiche, come le tastiere matriciali, Per fornire a professori e ad autodidatti un metodo
un visualizzatore da 4 display a 7 segmenti, convertito- pratico e chiaro per gestire il N/ICRO PIC TRAINER, la
n AD, clock in tempo reale, espansione della memoria ditta costruttrice ha sviluppato un "corso di progetto
RAM non volatile, nuove porte di l/O, ecc. p.atico con il PlC", in cui la prima parte e dedicata al
PIC'1 6FB4 con esercizi semp ici, e la seconda parte pro-
MlcRo Plc ro nnnA Irn: cnllaz -,
ana,, di ennlir:.inniìt FJtu
-, dpfJilLd4uf .',---
^i,' dvdtìtaIe realtz-
Meî'te a d snos'z,onp do'l'r,rilizz,'tnro norifori6le indu- zate con il PIC 16F873.
stnalr come motorì DC, microrelé, cicalini p ezoelettrict, Anche l'opera edita da N/c Graw-Hill "Microcon-
sensor ottici, controlli di illuminaz one, ecc troladores PlC. Drseno Préctico de Apiicaciones" e scrit-
ta da Jose Vl" Anguìo, Susana Romero e lgnacto
lVì5x84 Angulo, tltlizza ll MICRO PIC TRAINER come strurnen-
Scheda control a'ta da un PIC 1 6FB4 e adatÌabrle tramite to base pe' l'esecuzione d, turri g1 ese.c z e g i esemp
I connettore PICBUS, orientata a control o di motori che contiene La prima parte di quest'opera gurda I let-
DC c PAPeadre's a'tri senso'r. F ascneda n"r.rinale +^"^
Lwrq o- Pr
^"i*^ -^^.^--t) con il plC16FB4
r w oPPruLLrr
del microrobot PICBOT-2. ll secondo ibro è più avanzato, ed è dedicato alla
presentazione teorica e pratica dei moderni mic'ocon-
:i ;i Í:i f . í ii # ÉÌi:l +: ;i r--, i4,i {; ii: s. j;Tix troller PIC 16FBlx e all'insieme di schede che ruotano
.:' i- i'.il,i{!t i.! ii;{{." i'fi;":,iri,,! g fi attorno al MICRO PIC TRAINER
Oltre al manuale dell'utilizzatore, realizzato in rtaliano, Inoltre e anche consigliabrle il libro " Micro-
per i -ostrr lettori, che accompagna il sistema d svilup- controladores PlC. La solucion en un chip" edito da ITP

l,iil+r.ee;+:É{,t$ ari+'1#*++}#: #+nÈ +,€e*+$È.ÈÉ.+ #SÈ Ée+r-. *È:sr$s,$,É*#


',T+
Paraninfo e scritto da José
M" Angulo, Eugenio Martín e
lgnacio Angulo.
Nella parte dedicata alle
applicazioni pratiche, sono
descritti sia il MICRO PIC
TRAINER che le altre sche-
de.

:;i- l,r i- íi".-;


;.:i- i ii:j i i i!:,
1r a,:Ì'i

La scheda dei prototipi,


come si può osservare nelìa
fotograf ia, dispone di una
zona libera con fori presta-
^^-+; -i+,,-+i
gnalt stTua| a - 0r5r.dnza
^lia+rn- nor-
malizzala, dove si possono
montare i dispositivi da pìlo-
tare con rl PlC. Nella zona
premontata,
r'- - è situato zoc- ._L--t
- ----- lo --, t prototipi
colo che conterrà il PlC, e la
: -- --:-
--- dei
Scheda
:
- con alcuni componenti di un'applicazione.

sua circuiteria fissa, formata


dal cristallo diquarzo con isuoidue condensatori, ilcir- ni che si chiama MPIC-18M, e un'altra destinata ai PIC
cuito di Reset e lo stabìlizzatore di tensione. da 28 e 40 piedini, denominata MPIC-28/40M.
Esiste una scheda dei prototipi per iPlC da 18 piedi- Dopo che il programma è stato messo a punto sul
sistema di svilunoo MICRO
; PIC TRAINER ed è stato scrrt-
to nel PlC, quest'ultimo viene
, montato sulla scheda dei
nroîoîini
|\,IvLv||H|,
clove îramite i suoi
piedini di l/O, pilotera i dispo-
, sitivi periferici definitivi. In
questo modo si disporrà di
un prototipo del progetto
con prestazioni professionali,
h:<<n
uoJJv nrozz6
ylL44v
p
L 6rniÀi+:
I OUìUltO
rli
Ul

r montaqqio.
In modo complementare,
' lngeniería de Microsistemas
Proora.nados Sl fornisce
, due kit di componenti e un
manuale con eserczr per svr-
Irrnnare una serie di progetti
con il MICRO PIC TRAINER e
le schecle clei orototipi. ll kit
di inizio si chiama "KlT DE
IPROYECTOS BASICOS" C
:;,....,..
nrello avan.zato " KlT DE
Scheda dei prototipi per progetti basati sui PIC della gamma media
PROYECTOS TíPICOS".

:: ti:a !r''t,'t:
II proto PIC 2, scrittore di PIC

nche se le basi fondamentali dell'elettroni- sulla programmazione, che ha semplificato la parte


: ca attuale sono le stesse che la accompa- relativa all'hardware introducendo e sviluppando un
gnano dalla nascita, 50 anni fa, il suo stu- nuovo componente: il software.
- ,1 ':
Comunque esistono numerosi prodotti elettronici
notevoli cambiamenti. che non sono programmabili, perché anche se i micro-
I semiconduttori e in particolare ì transistors, che controller lo sono, devono poi essere collegati a dispo-
sono i più caratteristici tra i componenti microelettroni- sitivi semplici per sviluppare le applicazioni commer-
ci, hanno ridotto moltissimo le Ioro dimensioni. e ora ne ciali.
possramo disporre a milioni sulla piccola superficie di un Per facilitare lo studio della moderna microelettroni-
chip di un circuito integrato. ll loro utilizzo e basato ca in modo progressivo, pratìco e modulare, descrivere-
mo uno strumento didattico
professionale che, oltre a
supportare un programma
proprio di autoinsegnamento
sperimentale nelle principali
aree dell'elettronica e deì
microcontroller, serve come
laboratorio e banco di prova
per montare, modif icare,
moftoro A nrntn c noffe in
marcia qualunque tipo di
progetto commerciale o
industriale in modo rapido,
economico e srcuro.

Sotto la denominazione UNI-


VERSAL TRAINER della MSE:
Microsystems Engineering, si
presenta un laboratorio di
sperimentazione contenuto
in una valigetta leggera e
facilmente trasportabile che
contiene tutti i dìspositivi e i

circuiti princìpali che richie-


dono il montaggio ed il fun-
Laboratorio di microelettronica e microcontroller UNIVERSAL TRAI NER
zionamento di qualsiasi pro-
getto basato sulla microelettronica o sui microcontrol-
ler. Come si può vedere nella fotografia, dispone di una
zona con una scheda protoboard per il montaggio dei
circuiti senza saldatura e, attorno. vi sono raggruppate
la maggior parte delle periferiche e dei circuitì funzìo-
nali comuni a queste applicazioni, accessibili anche loro
mediante cablaggio a pressione.
I sistemi e r blocchi oiù imoortanti dell'UNIVERSAL
TRAINER sono descritti nella tabella sequente.

. Alimentatore ad uscita variabile positiva


e negativa

. Generatore di funzioni

. Potenziometro regolabile
Dettag I io del col leg a mento
dei componenty util zzati in un esperimento

elettronica. Per raggiungere questo obiettivo formativo,


. Sezione da 2 pulsanti
"lngegnieria di Microsistemi Programmabili S.1." ha
creato sette moduli specializzatì nell'insegnamento di
altrettante sezioni che coprono l'elettronica moderna e
. Cicalino piezoelettrico che sono elencate nella tabella.

. Valigetta trasportabile
MODUL0 2: SEMICOi,IDUTTOR|

MODULO 4: MICR0CONTROLLER I (PlCf6F84)

Utilizzando la tensione che fornisce l'alimentatore


del laboratorio, i segnali dei generatori di funzronr e
del generatore logico, le periferiche disponibili e la M0DUt0 6r AMPilFICATORI 0PERAZIONALI

zona per il montaggìo senza saldatura, si possono


costruire e provare rapidamente schemi elettronici
comolessi.
Ognuno di questi sette moduli è composto da:
I :niiiÈ:.rLi ini,irij"iti.if : . Una serie dr schede estraibili a colori contenenti gli
ij i j ij :ii *, {-., fj irt !; i-'E i: Í, ::,!,i1 5
s':r _l- e. ;., esercizi e i progetti proposti per I'insegnamento del
f UNIVERSAL TRAINER non serve solo da supporto per corrispondente tema trattato nel modulo.
i montaggi e i progetti dell'utilrzzatore. ma costituisce . Scatola di plastica contenente i componentì elet-
anche un eccellente banco di prova per inizrare a fami- tronici necessari per il montaggio degli esercizi dell'o-
liarizzare con le aree più rappresentative della micro- pera sull'UNIVERSAL TRAINER.

i:,,'igt.,ri+++Ì,ur:l*Ée*+ae;+lii# #;'tÈ,t'+É+t+È!-f:É:-.;.Èg'íitj;i!, F?;lnF':é+lt'Íi:r+


NilICROCONfROttER P58
L'insegnqmento dell'eleltronico moderna

collega il PlCl6FB4 ai cir-


cuiti funzionali e alle peri-
feriche presenti sul labo-
ratorio, e si sviluppano 17
progetti di applicazioni
Nel Modulo 5, basato sul
P|C16F873, sono conte-
nuti dei progetti di diffi-
coltà maggiore, compre-
sa la gestione delle peri-
feriche più comuni, come
le tastiere matriciali e i

dìsnlav ICD Cnmp tutti


gli altri moduli, anche
questi contengono una
Scric rli srherlc ron oli cscrcizi e imatertali necessarl npr il mnntennin serie di schede a colori
degli esperimenti proposti sull'LJNIVERSAL TRAINER, facenti parte del modulo 1, dove sono nresentatl I

úe tratLa di eleLtronica digitale. progetti, una scatola con


i materiali necessari per
. Dischetti con programma per quei moduli che lo montarli sull'UNIVERSAL TRAINER e un dischetto conte-
richiedono. nente i programmì sorgente per tutti gli esercizi.
ll programma parte con I'insegnamento, nel Modu- Sul sito lnternet: www.mìcrocontrolladores.com tro-
lo 1, dell'elettronica digitale. Nel Modulo 2 si sperimen- viamo costantemente nuovi esercizi, modrfiche a quelli
tano e studiano i semiconduttori, diversi tipi di diodi, la proposti, aggiornamenti dei software e programmi, e
rettifìcazione e gli alimentatori.
. ll Modulo 3, f ocalizzalo sull'elet-
tronica analogica, fornrsce numerosi
esercizi e montaggi con i transistor.
Nel Modulo 4 si inizia lo studio dei
microcontroller, concentrandosi sul le
applicazroni con il PlC16F84.
ll Modulo 5 approfondisce la
gestione dei microcontroller, con
esperimenti più avanzati, basatr sul
PIC 16F873 ll Modulo 6 copre le
funzioni e le applrcazioni degli
amplificatori operazionali e, infine, il
Modulo 7 si dedica alla manipolazio-
ne e ai progetti con circuiti logici
programmabili, come quelli del tipo
PAUGAL.

I Moduli 4 e 5 che completano


I'UNIVERSAL TRAINER insegnano il

progetto e la programmazione dei Montaggio di un progetto


basato su di un PIC ne\|'UNIVERSAL TRAINER, utilizzando il PROTO PIC 2
microcontroller PlC. Nel Modulo 4 si
novità che possono essere liberamente visionate.
All'interno della scatola con il materiale per il montag-
gio degli esercizi dei Moduli 4 e 5, deve esserci uno Tramite un connettore D825 la scheda PROfO PIC 2 si
scrittore di PlC. Per coprire questa esigenza di scrittura collega alla porta parallela del PC, che ne gestisce il
dei programmì nella memoria dei codici del PlC16F84 funzionamento. Con ouesta scheda si oossono scrivere
e del P1C16F873, sono disponibili due opzioni. iprogrammi che sono stati editati, compilati e assem-
Per gli utenti che dispongono dello scrittore del PIC blati sul computer. Per questa operazione esiste un pro-
esistente sul MICRO'PlC PROGRAMMER o il MICRO' gramma di comunìcazione tra il PC e il PROTO'PIC 2
PIC TRAINER, descritto in precedenza, si offre una con il quale si scarica il programma oggetto residente
scheda di adattamento a ouesti tramite il connettore nel PC nella memoria di programma del PIC che si trova
PIC BUS. sulla scheda. I piedini del PROTO'PlC 2 si inseriscono
Questa scheda, che si adatta ai menzionati scritto- nei fori della scheda protoboard e tramite questi,
ri esterni e si inserisce nella scheda protoboard del mediante fili inseriti a pressione, si collegano con le
laboratorio, viene chiamata PROTO'PlC. Per gli utiliz- periferiche dell'UNIVERSAL TRAINER o con quelle mon-
zatori che non dispongono di scrittore di PIC viene tate sulla propria scheda. Senza bisogno di modifìcare
fornita un'altra versione che comprende la scheda l'hardware, né muovere il PIC dallo zoccolo del PRO-
PROTO' PlC2, la quale contiene su di essa uno scrit- TO'PlC 2, si puo riscrivere un nuovo programma e veri-
tore di PlC. ficarne il funzionamento immediatamente e sur dispo-
Questa scheda si collega alla porta parallela del sitivi reali che possiamo gestire. La scheda PROfO'PlC2
PC, il quale controlla il suo funzionamento e il pro- serve come scrittore di PIC della gamma media, da 18
cesso di scrittura e, dall'altra parte, viene inserita sui a 28 piedini, e come elemento di interfaccia rapido per
fnri
rvr I doll:
vLilu <rhad:
rLrrLvu 6p6rinhn:rÀ À:l nrrll^ -^ll^^- collegare componenti montati su una scheda proto-
VrUtUUUdlU, Udl qUdltr LUllCVd
i
I

dispositivi presenti sull'UNIVERSAL TRAINER a quelli board, e collegati mediante fili inseriti a pressione nei
esterni che sì possono aggiungere. fori della protoboard stessa.

,.

!
........,. ;

Scheda PROTa PIC 2, che coytille il OroOryo s:rittor: di Oer realizzare i proget! dei Modult 4 5
llc 1

i:-'n1:i...,:'!;i'4::],:.lt+t,:!];4Ì].í..;i'.'t:t.'u!.r:i!;lrli"'i;.lu,'.li.;-:i11;;':i',1,';,;.l1.;|,
MICROCONTROTLER
Un pioniere in microroboticei

Altri microcontroller per microrobot:


il 68HC77 di Motorola
I microcontroller MC68HC11 è stato uno dei fia, contiene il circuito incaricato della gestione dei
preferiti dai progettisti di microrobot. Le sue motori e dei restanti sensori e attuatori.
nrestazioni e le sue eccellenti caratteristiche
Yr!J!vL'v'" L
'

tecniche lo rendono molto adatto per questa


tecnologia. Un esempio è rl microrobot TRITT.
mostrato nella fotografia in basso, progettato e com- La struttura interna di questo microcontroller è di
mercializzato a partire dal 1997 dalla ditta MICRO- 16 bit, pero il bus dei dati esterno, utilizzato per
ROBOTICA S.L. collegarlo al resto dei componenti del sistema, è di
La struttura del TRITT è modulare, Ia sua parte sole 8 linee, per potersi adattare ai dispositivi che
elettronica è configurata sulla base di varie schede utilizzano questa dimensione del byte, così comune
sovrapponibili, e la scheda che occupa la posrzione ed economica. L'architettura è di tipo Princeton,
superiore è quella che contiene il 68HCl1 e la cir- nella quale la memoria dei dati e quella del pro-
cuiteria ausiliaria. La scheda inferiore della fotoqra- qramma sono unite. Nella tabella sottostante sono

Memoila di proEamma: 512 x 8 bit EEPR0M

Alimentazione: da 3 a 6 V nominale 5 V

Temporizatore da 8 e da 16 bit

Porta di comunicazione sincrona SPl

Interrupt in tempo reale

Software in ROM per caricare nella RAM


Microrobot TRITT costruito attorno al microcontroller 6BHC| 1 di MOTOROLA. un programma esterno.
riportate le principali MODA MODB rRa

ffircffi
XTAT EXTAL E XIR-a RESET
caratteristiche del
modello 6BHC 1 1A1 .

,, ; :, i ,i. :,t .,,. ,

ll MCGBHC11 è di, '

sponibile in commer-
cìo in contenitore l

ruffi
l)l( ( .lr \,/
J- nrn ó
r rn
V"' ",
DIP da 48 pin Questi
nier-lini clovnnn qrrn-
."f,
n^rtrró qR {r rnzinni
Pv, rq,L
dif{oranti
ur rErcru, nar
PEr rrri
Lur l:rc
maggior parte di essi
at,,^--^
t,

@I
asS0tve
^--^t,,^ dile
-il^ 0tver5e
{,,^-i^^i
lulf zlut|
silio di un multiplexer
interno.
9taz
-ll,-,,du-
^"-,i^ rc dil

:
-r--==
NONONO
É------f É------É H------H
ÈÉ
-IE-
boNo
dd

Nl^ll^
l\elld +i^,,.^ i^
I 19Urd lrì r' .,

basso e riportata la Struttura interna del 6BHC | 1 con i blocchi che lo configurano e i relativi piedíni
nionlinrtrrrr nar il rnn-
tenitore PLCC montato sul TRITT. ll fatto che ogni pie- I pin del microcontroller sono raggr,uppati in insiemi
dino svolga drverse funzioni, obbliga a fare molta atten- che realizzano le stesse funzioni. come si ouo vedere
zione al progetto dell'hardware, perche qualunque dalla tabella.
errore. potrebbe causare ìa rottura del chip. Molti dei
:'
segnali di uscita sono a "collettore aperto", e in questi GRUPPI FUHZIONAII DI PIEDTNI
casi si raccomanda di mettere una resistenza di "oull- I Alimentozione: VDD e VSS :

up" da 4K7. 2 Clock: EXTAL, XTAL e E


. 3 Resel: RESET I

4 , Comunicozione seriole osincrono (SCl): TxD e RxD :

5 , Interrupt hordwqre: lRQ, XIRO, ICQ-3, PAI e STRA . :


ì-. ;^1: ' *-
zzzz" , ó, Selezione del modo di lovoro: MODA e MODB ì

1e q<< <
7 Comporotori: OCI-5
< ó < !! )
:i-;ii's'"ì[ii 8 lmput Copture: lcl -3, PAI :
,
'

.PE5/AN5 9 , Comunicozione seriole sincrono {SPl): SCt, MISO, MOSI e SS l

PCO,/ADDRO,/DATAO
XTAL
PE] /ANI
:' 10 , pou" di l/o: PA0-7, PBo-7, Pco-7, PD0-3 e PE0-3 :

PC ] /ADDR ],/DATAI PE4lAN4 , AN0-7


I I : Conoli del convertiiore AD: ) :

PC2 / ADDR2 /DAI A2 ] PEO/ANO ', 12: Piedini dei bus esterni: AD0-7, A8-Al 5, AS eR/W 1 |
PC3/ADDR3,/DATA3 I PS0/ADDR8 :l
:

PC4/ ADDRA/Dl\1A4 PB] /ADDR9

PC5,/ADDR5,/DATA5 ] PB2lADDR] O

PCólADDRó/DATAó ] PB3lADDRI I
Nello schema della figura in alto è riportata l'archi-
PC7 / ADDRT /DAfA7 PB4IADDRI 2
r PB5/ADDRl3 tettura interna del 68HC11, con i diversi blocchi che lo
.xtRa^ PBólADDRI 4
PPE

Ò PBZIADDR] 5
compongono e i relativi pin.
PD0/RxD PAO/ C3 Nella fotografia della pagina seguente, vediamo la
,'ZÒ41;!?vvvgvv scheda di controllo del TRITT, nella quale possiamo
\< <:
Fsr-òE
"ÒÒdùxxxY_ <ìilflff notare il microcontroller nella versione con contenitore
N-VVYà
< d d r (l PLCC, circondato dalla circuiteria ausiliarìa e dai con-
d<<<ó
dÀÀ<
nettori dr adattamento.
farchitettura del 68HC11 mostrata nello schema
Piedinatura del 6BHC1 1 precedente, e utilizzata in molti modelli di questo
nella versione con il contenitore PLCC da 52 pin
microcontroller, i quali si differenziano fra di loro prin-
IT'IICROCONTROLLER
Un pioniere in microroboticer

ryryr mre @t's""


E!$ffi.ir;*"
ro
- ro ffi*t*
- ffi
ffi**t*"
ffi '$,î."
ffi Effiffi
",::î' l*"l*:f,'

Configurazione della mappa di memoria


per i differenti modi di funzionamento del 68 HCI 1

Scheda di controllo del TRITT in cui si può vedere rl 6BHCI 1

(512), dai registri di controllo e da una ROM dove risie-


de un programma che si esegue alla partenza.
RAM ROM EPROM EEPROI\,I 2', Circuito espanso, o "expanded" (N/ODA =
E**0
t't,
0 0 MODB = 'l).
ryèo '0
o srz
?5+ 8k o
o 512

tl;.:.j
:|: .: :
O 0 0
,l:,4k 0 0
, -..,.O 4k 0
o 0 0

ì:.:O. 0 0
a. 0 512
F:::izt
.0 0
i-*,]i?h 0 5t2
l2k 512

..,, 0 2k

.t,,t.ó 5t2
::'.....*U 512
è:ìrlììrì:,:-,...
o 512
i:i:Ét-'

Tabella con i diversi modelli del 6BHCI 1,


che si differenziano per le diverse capacita della loro memoria

cipalmente dalla capacità della loro memoria, come


puo vedere dalle relazioni della tabella in figura.

::,
A seconda dei livelli logici che sono applicati ai piedini
MODA e MODB, il 68HC'11 puo lavorare in 4 modi dif-
f erenti:
1". Circuito unico o "single chip" (MODA = 0 e
MODB = 1).
Come si puo vedere dalla figura, la mappa della Schema semplifícato dei collegamenti
del 6BHCI 1 per il funzionamento in modo circuito unico
memoria è formata dalla RAM (256), dalla EEPROM

:
MICROCONTROTLER
Un pioniere in microrobolicei

In questo modo oltre ad avere accesso alla


mappa del circuito unico si puo anche accedere
agli induizzi di un'eventuale memoria esterna.
Le porte B e C supportano i bus di espansione.
Si puo disabilitare la memoria interna e lavorare
solo con la memoria esterna, che dovrà conte-
nere i vector di interrupt.
3'. Circuito speciale di Bootstrap (MODA =
MODB = 0).
A drfferenza deì circuito unico i vector di
interrupt risiedono in una ROM speciale, chia-
mata "ROM di avvio". Alla partenza viene ese-
guito questo programma che rimane in attesa
di ricevere informazioni tramite la porta seriale;
nrró<ta nrnrodrrr:
- --,ve per scflvere un
<or' pro-
gramma nella RAM dall'indirizzo 00 a FF.
4". Circuito speciale di Test (MODA =1 e
Questa versione espansa del microrobot TRITT puo ptlotare
MODB = O) molti sensori e attuatori, grazte alle numerose linee di l/O del 6BHC1 1.
Funziona come nel modo bootstrap, in piu
si puo accedere alla memoria esterna e anche
ad alcuni registri protetti. E utilizzato nelle prove di fab- comparatori, gli Input Capture e gli accumulatori di
brrca. impulsi.
Nello schema della pagina precedente è riportato il - ^^-+-
|LO ^--"^- t'indirizzo esadecimale 'l 000 della
PUr LO n^ VLLUPO I

collegamento semplif icato deì piedinì principali del zona dei registri; se si scrive in questo induizzo il valore
6BHC11 quando funziona in modo circuito unìco sr rifletterà sulle corrispondenti lìnee uscita. di
loncrondn nrpqt: nosizione riceviamo l'informazione
,'
dai tre pin che funzionano come ingressi. Di conse-
Sia il funzìonamento che la gestione e la programma- ynt?n7à
uu "-q, drrrante nrrpqta fr rnzinno i disnositivi interni
zione del 68HC11 sono molto diversi del microcontrol- associati a questi piedini sono scollegati. Nella fotogra-
ler PlC. La porta A del 6BHCl'l ha 8linee, delle quali 3 fia si mostra una variante del microrobot TRITT che sup-
funzionano come ingressi e 4 come uscite, la restante è porta moìtissìmì sensori e attuatori, i quali sono con-
configurabile sia come ingresso sia come uscita. Inoltre trollati perfettamente dal 68HC11, grazie alle sue
queste linee sono condivise da altre risorse, come i numerose linee di l/O.
Un esempio della programmazione delle linee della
nar+rtd A
A .hirr;rì
Ll lldrrd rl In++^.^
dr rcLturc lr
rd cnmnliri+r
)cll vllLlLo Ài nrrocin
ul 9uE)Lw nrn-
iJUl Plu-
ce5so.
Programma per accendere un diodo LED montato
sulla linea PA6:

ORG $0000 ;ll simbolo $ rapprerenta il valore esadetimale

LDA #40 ;ll regifro è caricato con il valore 40

STAA $1000 ;5i scrive sull'indirizo $1000 ehe corrisponde

;alla Porta A, con PA6 = 1

clcL0 BRA CICLO ;Generiamo un "salto su se stesso" provocando

;un cklo infinito.

END
Fotografia della scheda di controllo del motore e
sensori del mrcrorobot TRITT diseqnati per MICROROBOTICA S.L
NilICROCONTROLLER P óI
Micro'PlG froiner Plus

Micro'PIC Trainer Ptus

a scheda MICRO'PICTRAINER PLUS è un nel sistema di sviluppo MICRO'PlC TRAINER i seguenti


modulo opzionale di espansione del sistema dispositivi:
di sviluppo MICRO'PlC TRAINER descritto in 1. Canale di comunicazione seriale RS-232.
precedenza. Entrambi i prodotti sono stati 2. Tastiera matriciale 4x4.
progettati dalla ditta Ingeniería de 3. Barra di diodi per visualizzare lo stato logico dei
Microsistemas Programados S.1., che li commercializza segnali più significativi
in tutto il mondo. 4. Rete di periferrche comunicanti tramite il bus l2C.
Lo scopo di questa scheda e permettere l'espansio- 5. Vrsualizzatore da 4 display a 7 segmenti pilotato
ne di diverse periferiche, molto comuni nelle appltca- dal SAA1064 02Ò.
zioni basate sui microcontroller, per poterli controllare 6. Quattro canali di conversione A/D e uno D/A con
tramrte il MICRO'PlC TRAINER, con il quale si accoppia ìl circuito 12C PCFB591
grazie al connettore PICBUS, che ha 26 linee e che sr 7. Porte di l/O digitali supportate dal PCF8574 (l2C).
trova sulla scheda. B. Clock/Calendarìo in temoo reale oiù RAM non
Per facilitare l'utilizzo congiunto di questi due volatile grazie al PCF8583 (l2C).
moduli, è possibile acquistare il MICRO'PlC LAB PLUS,
un drspositivo che su una scheda di metacrilato suppor-
ta il sistema di sviluppo MICRO'PlC TRAINER, la scheda
di esoansione delle oeriferiche MICRO'PlC TRAINER La scheda MICRO'PlC TRAINER PLUS ha una dimensio-
PLUS e un trasformatore professronale che alimenta ne normalizzata da 100 x 160 mm, Eurocard. È alimen-
tutto il sistema a 220 YAC. come si ouò vedere nella tata con +5 VDC che riceve tramite le linee del connet-
fotograf ia. tore PICBUS, Ie quali arrivano dal sistema dr sviluppo su
ll MICRO'PlC TRAINER PLUS, permette di realizzare e cui si trova il microcontroller.
sviluppare progetti basati sui microcontroller PIC della Nella figura è riportato lo schema della scheda, che
gamma media, aggiungendo alle periferrche esistentì viene accompagnata da un Manuale di Utilizzo, il quale

Sistema MICRO'PlC LAB PLUS. Scheda MICRO'PlC TRAINER PLUS


N:oo I
| :BAT
J I Ni-cd 3.óv

s*me ECO ló250Oó

:l
5--l

D3 D2

QI
scroT

UT
sAAr oó4
Dir:OlltOltr/w

a:

è"".."$.
sA3ó-l I

Schema generale della scheda MICRO'PlC TRAINER PLUS

descrive tutte le sue parti in modo approfondito, - PCFB574A: Porta da B linee di l/O digitali.
numerosi esercizi, programmi e routines tipiche. Tutti - PCF8583P: Clock/Calendario + RAM non volatile.
i programmi sono contenuti in un dischetto allegato.
La maggior parte delle periferiche contenute in questa
scheda sono controllate tramite il bus l2C, cui si colle- Nella figura sono riportati i collegamenti della tastiera
gano i seguenti circuiti integrati: matriciale 4 x 4 con i piedini del microcontroller, trami-
- SAA1064: Controller per 4 display a 7 segmenti. te le lrnee che arrivano dal connettore PICBUS del siste-
- PCF8591: Convertitore D/A e A/D. ma dr sviluooo MICRO'PìC TRAINER. Osserviamo che la
tastiera è controllata tramite le B linee della porta B
(RB7 - RB0) del microcontroller. ll software di applica-
zione configura le linee RB7 - RB4 come uscite, che
sono attivate in modo sequenziale, applicando un livel-
lo attivo ad ognuna delle file della matrice. Le linee RB3
- RBO sono configurate come ingressi che ricevono
l'informazione delle colonne della matrice, e vengono
lette per determinare se qualche pulsante è stato pre-
muto.
Quando il mìcrocontroller non dispone del bus 12C
implementato sul chip, come succede nel caso del
PlC16FB4, il software incaricato di gestirlo utilizza i pin
Schema del canale
seriale RS-232 basato sul circuito MAX232
:ntegrato

16 sono riservati, lasciando Iiberi per l'utente 240 byte.


ll PCFB5B3P risponde all'indirizzo di 7 bit del bus
l2C'. 1010000, dato che il pin 3 (A0) è collegato a
massa. ll pin 1 (OSCI) è l'ingresso degli impulsi che si
applicano come frequenza standard al clock, e che
nrrÀ accoro di (fì f.lz C di 32.768 HZ, genefati da Un
cristallo di quarzo montato sui piedini 1 e 2 (OSCO).
ll piedino 7 (lNT) si attiva con un livello basso, nel
caso
---^ sl proouca un arlarme
-i ^"^,1,,--,,^ -ll-.*^ o una +amnari,
^,,^- tempor|zzaztone.
Questo dispositivo si puo alimentare con una
batteria ricaricabile al Ni/Cd, quando c'è una man-
canza nell'alimentazione principale Vcc. In presenza
Schema dei collegamentl della tastiera
della tensione Vcc, l'alimentazione arriva tramite
il diodo D5, e nello stesso tempo si ricarica la batte-
RB6 e RB7 per implementare le linee SDA e SCL. Se iì ria tramite lo stesso D5 e R16. Se manca Vcc la bat-
PIC ha il bus 12C integrato all'interno, i due segnali teria mantlene l'ora nel clock/calendario e i dati
sono supportati dai piedini RC4 e RC3. Per realizzare la nella RAM.
selezione del tipo di implementazione del bus l2C via
software o via hardware, si debbono utilizzare i jum-
pers J1 e J2, che commutano isegnali SCL e SDA.

| :,,' i ,.,.i: .,.i1,,,.',; i j,rf-r.,1;t.,


Nello schema della figura possiamo vedere che e stato
basato sul circuito MAX232 (U5), il quale ha ii compito
di convertire i livelli TTL, presenti sul pin 'l '1 di trasmis-
sione (Tx)a livelli logici RS-232, che siottengono sul pin
14 (TxD) e si applicano al connettore CN2, per il loro PCF8583P
Adr.: IOIOOOOT/w
ulilizzo esterno.

1 i i-];-:f , i.,.ì ;. r" a',,,i i,:;:i i;; 1:,t 1;,, fr.;:. jii
ll dispositivo PCFB583P adattabile al bus l2C, contiene
un clock/calendario in tempo reale, con funzioni ora-
rie tipiche, più allarmi e temporizzazioni. Inoltre inclu- Schema dei collegamenti
del clocklcalendario + RAM contenuto nel PCFB5B3P
de una RAM statica da 256 byte dei quali i primi

È+è È + g+r'i Fll#'È-g=Èl È +É+;,=r


"$.-$a+e:
P62 MICROCONTROTTER
Micro'PIC lloiner Plus

Basato sul circuito integrato l2C SAA'1064, sulla scheda


si controlla un visualizzatore formato da 4 display a 7
segmentr. linduizzo a 7 bit che gli corrisponde, ha i 5
bit più significativi programmati in fabbrica, mentre i 2
restanti prendono un valore che dipende dalla tensione
applicata al piedino 1 (ADR). Se il pin e collegato a
massa, i 2 bit assumono il valore 00; se si colìega al U4
PCF859 r
positivo il valore sarà 1'l; se si collega ad una tensione Adr.:l OO! OOOr/w
n:ri: : J/u
?/9 \/rr
v!L ilil ri:lnr^ crrì A1
u I c^ .^
)tr .i)t Luilcgd :À ,,n:
-^ll^n: du
vatto a vorvrc )drd u|d
tensione di 5/B Vcc sarà 10. _--l
I

GND

lrhama r'lai rallonamanti


del PCFB591 che conttene un convertitore
D/A e un altro A/D.

I
UI
ll dispositivo l2C PCFB57 44 fornisce al siste-
sAAloó4 ma un'ulteriore porta da B linee di l/O digi-
Adn:Ol I lOl lrlw
tali. Risponde all'indirizzo da 7 bit: 0 - 1- 1

- 1 - A2 - 41 - A0, che in questo caso,


DIGI
.:::
essendo collegati a massa i piedini 42, A1 e
rJllili::l
l: ri'
A0, si converte nell'indirizzo0 -'1 -'1 - 1 - 0
, ,l
'rttì;:il:l'

l
-0-0.
I e nerifcrichp da rontrollare tramite le
5436-l t sA3ó- t t
linee di l/O sono pilotate con dei diodi LED
che visualizzano il loro stato, anche se sono
arlve -^^ l^^i--
-++i,,^ con ^^^-+
rogrca negdLVa,
\ehoma dpi rnllonamanfi
del modulo visualizzatore tramite tl circuito tntegrato SAA1 064.

L'informazione da visualizzare è multiplexata sui


digìt del visualizzatore. ln primo luogo sulle linee P1-PB
appare il dato per il digit 1 e su P9 -P16 per il digit 3.
ln cpnrrito cr rnrrcqtp linpc,arrirr: il d:to npr i rliai ) p L U4
PCF8574A lll*
rispettivamente. ll processo è automatico e sequenzia- Adr.:Ol ì 'l OOOr/w
le, e avviene ad una velocita tale che i4 display sem-
brano attivi tutti insieme, mentre in realtà lo sono sola-
monta alro nor \/nlt2

Questo modulo è basato sul circuito integrato 12C


PCFB591, che è Eià stato descritto in modo
approfondito in precedenza, quindi riportiamo solo
lo schema dei colieoamenti sul MICRO'PlC TRAINER Schema dei collegamenti del dispositivo l2C PCFB574A che
forntsce a/ srsiema una porta di B linee di llO digitali.
PLUS
II nano favoloso

,l .,

i'l l i'i,lr ri i i
All'interno della grande varìetà di modelli di microcon-
troller PIC esiste una "casta" soeciale che riceve il
soprannome di "nano". Sono chip portentosi che con-
tengono un computer completo, anche se misurano
poco piu di mezzo centimetro di lunghezza per ancor
meno di larghezza, ed hanno solo B pin, quattro per
lato. Hanno una dimensione mìnuscola, dettaglio che si
può apprezzare nella fotografia, dove si compara ad

Monty dispone di una pinza


su uno dei due bracci, che è controllata da un PIC nano.

, cole dimensioni, anche il numero deìle risorse interne


come la capacita di memoria e minimo. Le sue presta-
' zioni, unite ad un giusto prezzo, rendono ideali i PIC nani
, per governare prodotti semplici. Ecco il motivo per cui è
' stato scelto il nano PlC12C50BA per controllare la pinza
che possiede Monty in uno dei suoi bracci, e con la quale
potrà prendere, trasportare e depositare oggetti.

Un PIC nano confrontato con una comune chiave i' ,1, J:t,:::,,!;) t.,:':lt!.,,t':, i-,.'i:,:';':, l.':'::::, iilii,,\'tt'i!
Per poter inquadrare i nani nella grande famiglia dei PIC
.\ ot l^++^
-l tcLLU- ripassiamo la distribuzione della medesima. La famiglia
una comune chiave. Questa caratteristica da to
re un'idea delle possibilità di questa fami-
nlia' orazie alle srre ridotte dirnensioni
sarà possibile ottenere da questo sempli-
ce oggetto un potente controller, il ftIODEtIO I CARATIERJSTrcHE :

quale, introducendo la chiave nella serra- 33 isfruzioni da 12 bit


FEl,4egXe nC I2C5XX
tura, riceva l'alimentazione necessaria
nor
|!,.'y'"y'
pscnrire il nrooramma scrìtto in :P€tóeXX ellCl2cXU 35 istruzioni do 14 bit
memoria, permettendo così di pilotare
.Pr€lFcxx 58 istruzioní do I ó bit
un insieme di periferiche quali relè,
motori, luci, ecc. Ptctscxx 77 \struzionido Ió bit
Questo piccolo dispositivo dispone di
tutte le risorse e riunisce tutte le caratteri-
i
stiche tipiche dei PIC che abbiamo studia-
Tabella con i quattro grandi gruppi di microcontroller PIC da B bit.
to sino ad ora. Come è logico, viste le pic-

ii,iii,,i:;:t:.:;,;tt:1.ltt:1,,11i!y'ot:itiili,;.i;i'rr'',;ì:;.:i!;i,t:t lit:i:tr,;.,
dei microcontroller PIC
da B bit si divide rn
quattro grandi gruppi,
rhe si diversifir:no ner
porenza e prestazront, e
rho
Lr <nnn
rs
)vr rv rrinnrtrii
rPUr to Lr rnoll.
tgilq
figura a lato.
Analizzando la ta-
bella della fìgura osser-
viamo che nella gamma
A--^
ud5e e
^ Ireild
^^il- *^..J;-
ilreurd Cl
sono due modelli che
rispondono alla no-
menclatura PlCl 2C5XX e PIC'1 2CXXX. risoettivamente. gramma è EPROM, le lettere CR che è RON/ e le lettere
Questi modelli sono pertinenti alla casta dei nani e sono CE significano che si dispone di memoria EEPROM dei
caratlerizzali da un contenitore con soli 8 pin. Oltre a dati non volatile.
oueste due serie il costruttore MICROCHIP Scnrp rn: Questi PIC dispongono di un Watchdog o WDT,
politica di potenziamento di questi piccoli microcontrol- sono alimentati con una tensione compresa fra 2,5 e
ler, sviluppando nuovi modelli dotati di memoria FLASH 5,5 VDC e consumano 2 mA quando lavorano a 5 VDC
ed EEPROM dei dati, come iPlC1BF0l0 e P|C18F020. e 4 MHz. Anche se hanno solo B pin gestiscono 6 linee
di l/O utilizzando la funzione multiplexer su alcune di
esse, così come mostra il disegno della piedinatura, che
I microcontroller PIC da 8 bit sono carattenzzati dal pos- è compatibile con quelli della gamma media.
sedere un repertorio di 33 istruzioni da 12 bit cadauna,
ron rne frpnttpnz: masSima di funziOnamento di 4 !, ,"

MHz.'Ci sono solo due livelli nello stack per memoriz- lPlC "nani" a 8 bit della gamma media sono divisi in
zare gli indirizzi di ritorno al programma principale, il quattro modelli fondamentali; si chiamano P\C12C671,
contatore di programma puo essere da 9 bit oppure da 672, 673 e 674. La loro principale differenza risiede
11 bit e il numero delle risorse interne e delle linee di nella capacità dì memoria e nella disponibilità o meno
l/O è molto limitato. della memoria EEPROM per memorizzare i dati in modo
Nella figura in basso a destra sono presentate le non volatile. Inoltre dispongono di convertrtore A,/D a
principali caratteristiche dei due modelli fondamentali quattro canali e dì interrupt: carenza importante nei
(PlC12C50B e PlC12C509) e delle loro variantr nani della gamma base. I nani della gamma media pos-
PlC12C5XX. La lettera C indica che la memoria di pro- sono funzionare ad una frequenza massima di 10 MHz,

g +* GP2TOCKI/ANz/INT

ffiffi
9-t I
ffiffi 7.g GPl,/ANlAner
g

ilt
tNDtRtzzt GPO/ANO
-<9-l ì Vou eIk 5# Vss

GPs/OScl,/CtKlN * Zb?

ffi
ilffiiffiX
mro "o'" GP4IOSC2/AN3ICrKO|..IT
GP3/MC-IRAPP
+'-F
#
3B
-a
4e

CODICE r a
! z
tsrRuztoNE Ptcr2c508A ir",'iiii, Prcr8F0l0
Plcr2c509A Ptcr2c672 Plcr8F020

ffim
lt o
Plcr2cRso9A
PlcI2CE5lS
Prcr2cE5r9
Ptcr2cEó73
Ptcl2cE674

Controllo della memoila di programma nella gamma base. Piedinatura dei PIC nani, uguale per i modelli di tutte le gamme
:I

o l':ltr: nar iri:ti ln


::
vÉ*v pRdtidiffrÈÉ hto;
-Iti!F$9Rf*.--i
Fr(fJs[ArvlrhArA i 1
j ____^.. iimmiuHmjruoutuzAl
LrNEE 'jFREauENzA
2
TREGIUENZA icAltAUi
:

,nE||.r
MoDEro
, hrr*
hÉ* ; EpRotr,t
EPROfr4
;
I _- *
Rofil
ROÀ,r i EEPRoM
i ,** i::l*9l
EEPROÀ'I
RAMi LINEE
.qn tlo
VO i
brbi,i Io
I!-ryi
br|ti I ltAlc
ltAX. nMERS
CANAU questo modo è pos-
1*-1-"i 1J:,.J sibile accedere
AID

,2Ctí71 *i+
l9n ldl4x14 12;
128 ó -P --i
t0#ù
l$dù | do s
8 lrft I
tit ,
1
simultaneamente
alle due memorie.
t:lod:z rse4 irusxra
3584 ,2048xt4
j tlg
lirt . t..
ó
,
lolitt
l0lùb
r^llrL
bit 1
bit
r l-ol.:.
I 1I f La dimensione dei
Hg/?tr.,Èn do .

byte della memorìa


t2có23 rzc2 rO2a,,ri
*t*" rO2ar,ri lóx8 I ,r, I ó lotrt+h I ds I bit I
lotrt+lz di programma è
ó l0ÀiFh I do I bif 4 EPROM, coincide
l29xz4 Si84 204Sr(14 lóx8 I28 .^n nrroll: dollo

Tabella con le principali caratteristrche dei PIC nani della gamma medja istruzioni, vale a dire

nella tabella della figura sono riassunte le loro caratte- l sog ,u *"ro, u o oronrutt, . o,','rljt r)t: J::tl';
ristiche. ''
bit cadauna e neì 509 è di 1 024 indirizzi da 12 bit. La
I memoria RAM dei dati di questi due modelli è di 25 o
'i i''l '': t,rt ..,.t,t!, ;1;.tti: ;..1I:Ì i::; ;1;,:,.'i'.
't,i'i: ;
41 bytes, a seconda che si tratti del 508 o del 509. I

Ne|lapoliticadipotenziamentodeiprodottidotatidi registri specifici che formano l'area SFR della memoria


memoria FLASH, MICROCHIP ha lanciato sul mercato l dei dati, occupano le prime sette posizioni dalla 00 Hex
una coppia di modelli dotati di questo tipo di memoria alla 06 Hex, i registri di utilizzo generale partono dal-
diprogramma,capacidifunzionareadunafrequenza I'indirizzo 07 Hex. Lo stack ha solo due livelli e non
dì 40 MHz. Nella tabella in basso sono riportate le carat- , dispone di flag di overflow, è quindi compito del pro-
teristiche più importanti. grammatore controllare che non debordi quando si pro-
ducono gli annidamenti ne le subroutines. Sono ammes-
,ri.,'iii';-l il::::i"t ::,':.:, itt:':";i.':)::t:. -;,i: r, l si solo due annidamenti, dato che con il terzo lo stack
Conosrpnr^lo oia il PIC 16F84, che e il cervello di Monty, perde uno degli indirizzi di ritorno e cade iì sistema logi-
è molto semplice analizzare e interpretare l'arch tettura co. L'indirizzamento delle istruzioni arriva sempre dal
:

dei PIC nani, dato che hanno meno risorse e sono dota- l contatore di programma, mentre quello della memoria
ti di memoria di capacità inferiore. Lo schema generale dei dati può essere "diretto" quando I'indrrtzzo è conte-
dell'architettura dei PlC12C5XX sì può scomporre in :
nuto nel codice dell'istruzione, o "indiretto" quando
cinque grandi blocchi: l'indirizzo del'operando e contenuto nel regtstro SFR.
:
Per realtzzare le operazioni logico-aritmetiche, la
'1". Memoria di programma EPROM. ALU riceve due operandi da 8 bit. Uno arriva dal regi-
2' Memoria dei dati RAM. stro W e l'altro è un letterale immediato, o arriva dal
3" ALU. bus dei dati tramite qualche risorsa interna. ll risultato è
4". Clock e risorse associate. caricato nel registro W inoltre il registro di stato si cari-
5". Linee di l/O e funzioni ausiliarie. ca con il valore dei flag che segnalano condiztoni parti-
colari del risultato.
Come tutte le altre, anche la famiglia 12C5XX è Infine è interessante notare che questi PIC nani, con
costruita sull'architettura Harvard, in cut ci sono due un contenitore da soìi 8 pin, mettono a disposizione
memorie indipendenti, una per contenere le istruzioni, dell'utente sino a 6 linee di l/O, denominate GP0:GP5,
.,+;ri---^^r^ ^^" orLurl
ut|tLLot tuu ptrr -r-, ^e f unzioni il
tlEi4(nn :
multiplexaggio.
PRC)GR/AISIAAúI
ìioDEtto Così come succedeva nel
PlC16FB4, i nani dalla gamma base
utiìizzano la tecnica della segmenta-
zione nell'esecuzione delle istruzio-
ni, per cui dividono il compìto del
processore in due stadi. Nel primo si
Tabella che raccoglie le caratteristrche piit importanti dei PIC nani con memoila FLASH
realizza la ricerca dell'istruzione suc-

:;t'i1:i,-,
P64

DrRrzzoru f BUsDAîl

ry*
ffi# ffi ceo
coDrcE
|5TRUZ|ONE |
2 fil ocr

Efonnarc
INDIRIZZAMENTO DIRETIO omzmnzu*
\ INDIRIZZAMÉNIO ffi
|ND|RETTO
5. \8 filerTmz
ffix lrÌl o"s/oscrz.r*,t

g'
ilffix
ó
\
\8
am'
\8
r3

mgrm
MCLR* VDD V55
m
Architettura interna dei P/C12C5XX

cessiva e nel secondo si esegue quella in corso. Questo di uscita dell'oscillatore e collegamento del cr stallo di
parallelismo implicito permette che tutte le istruzioni, attArT^ GPE fr rnzinn: .^mo rrcritr dal -,, nrn
,",, ._rC€SSO[e €
eccetto quelle di salto, si realizzino in un ciclo di istru- connessione del cristallo di quarzo. Inoltre GP0 e GP1
zioni, che equivale a quattro cicli di clock. Quindi se il sono incaricati di ricevere idati in serie e gli impulsi di
microcontroller funziona a 4 MHz, tutte le istruzioni, clock per la sua sincronizzazione nel modo di proqram-
eccetto quelle di salto, impiegano un microsecondo ad mazione seriale del dispositivo.
essere eseguite. Le istruziori di salto impiegano due
microsecondi.

,:,i.;;'t,i:, t',;i,t;. 1:''. j l'ir'ii' i


Voo- |
GP5/OsCl/CrKrN- 2
i' iri i'i :ii rl j!) ll':; 'l:
GP4IOSC2.3
I cinque modelli di PIC nani della gamma base (508A,
GP3/MCLR/VPP* 4#ff,l
509A, CR5094, CE518 e CE519) hanno la piedinarura
rrportata nella figura, nella quale si può vedere che solo
quattro pin hanno una sola funzione, mentre I restantl
quattro ne supportano diverse, multiplexate nel tempo.
I pin 1 e B ricevono l'ingresso della tensione di alimen-
tazione: VDD che è l'alimentazione positiva e VSS che è
la massa. I restanti 6 pin si possono configurare come
Prcr2c508A
Prcr2c509A
ingressi o uscite, ad eccezione di GP3 che funziona solo
Ptcr2cRs09A
come Ingresso. Ptct2cEStS
Questo pin supporta altre due funzioni: la prima Prcr2cESr9
come MCLR# (richiesta esterna del Master Clear Reset)
e la seconda come ingresso della tensione speciale per
Piedinatura corrispondente a tutti i PlC12C|XX
la programmazione, VPP GP4 svolge anche la funzione

t :': i!: t1-', 1,,.' t;'ili l',: :;,ìt'i


It PIC1 2C508A al['i nterno
1;f
i ,

lPlC nani da R nin


Y"', hanno
"" dìverse cose in comune: fra
nr raqto lo
rc nrinrin:li
prilrLrvoil cnnnlu illl rnntonitnro
Jvr LUI lLcl llLUlc 6
c lq
ld 5innlinrr"rr
vuqjLc, Plcullldtuld.
Le differenze sono dovute alla capacita della loro ITMRo+WT i 6 2.5-6,25YDC ) 4MHz : Spin

memoria, alla disponibilità o meno del convertitore A,/D,


alla possibilità digestire interrupt e al repertorio di istru-
zioni a cr ri risnondono secondo l'annartenenza alla
nammr h:ca a moÀi: | À^ll- . h-<e diqn^n-
9d| il |d ud)tr u r rcuro. I rìdr
^.^i il ucilo 9drìrr ro uo)q ur)purr-
gono dr un repertorio di 33 istr;zioni, mentre quelli ria di progranma e ditipo EPROM e puo contenere 512
della gamma media supportano due istruzioni in più. istruzioni da 12 bit ognuna. La memoria dei dati RAN/
disnnnp soln di 75 hvte nor qrririere nnerandi di utilizzo
npnerale e I inclirizzi ner ,i reoistri
,
'y,-. snecifiri di controllo.,

Funziona con una tensione di alimentazione compresa


fra 2,5 e 6,25 VDC, supporta un temporizzatore da B
bit chiamato TN/R0, un Watchdoq (WDT) e puo lavora-
re ad una frequenza massima di 4 MHz. Non dispone di
intcrrr rnt Tr rtto lo r:r:tteristirhe csnostp ,annaiOnO Sin-
tetizzate nella tabella della frgura.
L'architettura dei PIC nani è già stata descritta in
modo generale, e in essa si e messa in rilievo l'indipen-
denza fra la memoria di programma e quella dei dati,
tipica dell'architettura Harvard.

i,; íi i i +,; l,: 1 t;1 ;' !t; i. ì íj :';r ir l:i i- t i, r,i ir'i 1 li1 1.; ! 1 !''l'
i ; : :"il;l-;;:,;';,fi i'.ri +,il
F:t:sraf:: ae! elcr zcllsf ll PIC'l2C50BA con cui si controlla la pinza del braccio
di Monty, possiede una memoria di programma capace
Dato che conosciamo gia il nostro vecchio amico di contenere 512 istruzioni da 12 bit. La dimensione
PIC'16F84 e vista la grande somiglianza, lo studio e la degli indirizzi della memoria coincide con quella delle
programmazione dei PIC nani risulterà un lavoro piu
semnlice Perche e stato scelto il nano PlC12C508A? Ci
.-i
sono due ragioni molto logiche: la prima e che entram- oooonffE{ffi
MEMORIA PROGRAMMA

bi si assomigliano parecchio, oltre ad essere molto dif- ,rmm


tu)t, l'
+"-i

##
ro '^-^^'r- ^^'-^^
)Elvr ruo vgr
^:r^+-.^ r-
/d pEr pilutorc
suoi bracci.
lr rtr è il microcontroller che si utiliz-
ro ^;^--l
Pil 40 Lrrhp
rs rvrvrrLy PUJJTEUq in uno dei
N,4ontv nossiedp I
=re H=
tt
Dalla nostra descrizione generale dei PIC nani, abbiamo
visto che fra i nani della gamma base, il PlCl2C50BA è Struttura interna e tndirtzzamento
della memoria di programma del PlC12C50BA.
ouello che ha meno caoacità di memoria: la sua memo-

i....r. ... ..:: .- .. :;,r1ii +'!iii:i! ?'Í,,l,liX+,i!:+l'l


- -;

istruzioni, per cui il contatore di programma si incre- occupa l'induizzo 00 Hex, non esiste in realtà, perche
menta normalmente, ogni volta che ne viene eseguita non è implementato fisicamente. Si fa riferimento a que-
u na, sto registro quando si punta ad un operando in una istru-
Gli indirizzi di ouesta memoria si estendono da 0000 zione con indirizzamento indiretto, pero in questo caso
Hex sino a 0'lFF Hex, come si può osservare nella figu- I'induizzo dove si trova l'operando si ottiene dal conte-
ra. f altro nano della gamma base, il PlC12C5094, ha il nuto del registro FSR, che occupa l'induizzo 04 Hex.
doppio di capacità, per cui ilsuo range di indirizziva da All'indirizzo 01 Hex c'è il TN/R0, owero il valore che
0000 Hex a 03FF Hex. si carica neì TMR0 per iniziare la temporizzazione. Gli B
bit meno signìficativi del contatore di programma sono
i
i r ,.l , l: . , ! , ." ji; ,;t ,i
:.1
. '1 .1 ,:, ..
contenuti nel registro PCL, all'indirizzo 02 Hex.
'i : ,1 , ,;,, ':,rt, ;i :l',iti l! ,, : t :t . t. ','
;: l1
t :

ll PlC12C50BA dispone di un solo banco di memoria , ', ' ' ' . , ]

RAM (Banco 0) per scrivere i dati. Questo banco ha 32 Uno dei registri piu utilizzati nei programmi, è il registro
tnduizzi da un byte dì lunghezza ognuno. ll suo range diSTATO, che si trova all'indirizzo 03 Hex.
di indtrizzi parte dall'indirizzo 00 Hex sino a 1F Hex.
Dei 32 registri della RAM, i primi 7 sono dedicati ai
registri di controllo del processore, questa zona viene
STATO (lNDlRlzZO 03 Hex)
definita zona dei Registrr Specifici (SFR), mentre i rima-
nenti 25 sono di utilizzo generale (GPR). La distribuzio-
^^ E^ tt---^^^--i^-^
Ilc I o))E9llc4lwllE .lellp nrime
usils Pr il rrE sefie
JsLLs nosiztonl
l.Jv)rz Sono
a

riportate nella figura in basso.

:, ,,; lt: Distibulone dei bit del registro di STATO


;'i;;'1': | '', "..
e nrime sette
I.-Y,.,YvJ|1|v nosizioni della RAM funzionano come
registro di controllo del microcontroller, e i bit di ognuna Degli otto bit di cui è composto, il penultimo non ha
gov€rnano le funzioni piu importanti delle risorse del nessuna funzione. Dei rìmanenti, 5 sono di lettura/scrit-
processore. Abbiamo già conosciuto la maggioranza di tura e due si possono solo leggere (TO# e PD#), secon-
questi bit occupandoci del PIC 16F84.ll registro INDF, che do quanto rrportato nella figura in alto.
Di seguito analizzeremo le funzioni dì ognuno dei
bit del registro di STATO.

-l C: Flag di riporto e resto (carry e borrow)


Nell'istruzione di somma ADDWF, questo flag va a 1
l

sFR (7) quando c'è del riporto nell'ottavo bìt, e nella sottrazio-
ne SUBWF va a zero quando c'e del resto nell'ottavo
__lî brl.

I
Nell'istruzione di rotazione RRF, si carica con il bit
l
meno significativo dell'operando, e nella rotazione RRL
sr carrca con il bit piu significativo dell'operando.
I

GPR (25)
DC: Flag di riporto e resto intermedio
Nell'istruzione di somma ADDWF va a 'l quando c'è
rrporto nel quarto bit (operazione con BCD), mentre
nella sottrazione va a zero quando c'e resto nel quarto
0rt.

7: Flag di risultato zero


Va a 1 automaticamente quando un'operazione logico-
Organizzazione della memoria dei dati RAM del PIC1 2C50BA
aritmetica dà come risuhato zero.
l ',:EIt,.;:;i;i:,:!;:;:1í.:,
iffigfruryirrFììrìì

PD#: Flag di "power-on" carica con il valore di calibrazione di questo oscillatore,


Vale 1 quando sr collega l'alrmentazrone VDD o si ese- che è stato determinato in fabbrica, e che occupa i6 bit
gue l'islruzione CLRWDT. St pone a zero quando st ese- più significatìvi. In ogni caso, per adempiere il suo com-
gue l'istruzione SLEEP pito questo valore deve essere caricato nel registro
OSCCAL, il che suppone di iniziare i programmr spo-
TO#: Flag di "time-out" stando il valore di calibrazione da W a OSCCAL,
Collegando l'alimentazione, eseguendo l'istruzione mediante l'istruzione MOVWF OSCCAL. In ultìmo, il
CLRWDT o la SLEEP, si pone a 1, e quando vale zero registro GPIO è quello incaricato di supportare le linee
significa che il WDT è andato in overflow.

PA0: Selezione della pagina di memoria GPIO (INDIRIZZO 0ó Hex)


La memoria di programma dei PIC 12CXXX si divide in
pagine, ognuna delle quali e composta da 512 indtrizzi
da 12 bit. ll PlC12C50BA dispone solo della pagina 0
dato che ha solo 512 indirizzi, invece il 509A ha 1024 :: ,.

indrizzi ed è composto dalla pagina 0 e dalla pagina '1. Distribuzione dei bit
ll bit PAO deve essere messo a 'l quando si desidera del registro GPIO per gestire le 6 linee di l/O del PlC12C50BA

accedere agli indirizzi della pagina 1, compresi fra 200


e 3FF Hex Va messo a O quando si accede agli indirizzi di l/O digitalì con le quali si adattano le periferiche del
compresi f ra 000 e '1 FF Hex. mondo esterno. GPIO dispone di 6 linee di l/O chiama-
te GP0, GP1, GP2, GP3, GP4, e GP5; tutte queste lìnee
GPWUF: Bit di reset per i pin della porta GPIO possono lavorare come ingressi o uscite, ad eccezione di
Quando il microcontroller entra in stato di riposo dopo GP3 che puo solo essere un ingresso, Come si esporra
ave r eseouito l'istruzione 5LEEB esiste un modo di sve- piu avanti, questo registro è utilrzzato per la configura-
gliarlo producendo un cambio di stato logico su alcune zione delle linee e per contenere l'informazione digitale
delle linee di l/O della porta GPIO. Questi pin risveglia- da trasferire tramite le linee che lo compongono.
no il PIC apposttamente programmato, generando un
'l ;';:'ìr'1:,,.'t,'.i": :i ',: : t":;:
Reset nel microprocessore. Se GPWUF vale il Reset è
stato provocato da un cambio di stato su uno dei pie- La selezione di un dato o di un operando nel
dini della porta GPIO; se questo bit vale 0, il Reset e PlC12C508A si può realzzarein tre modi, che ricevono
stato provocato da altre cause. il nome di "modo di ndirizzamento" e che sono i

seguenti:
i,;I , ,il,',, ', ,i '. ' : :t , . ,,,t.',,

Negli indirìzzi 05 e 06 Hex si trovano i registri OSCCAL 1'. lmmediato


e GPIO, rispettivamente. Come vedremo più avanti, il 2". Diretto
PIC 12C50BA ha la possibilità di f unzionare con un oscil- 3". lndiretto
latore ìnterno da 4 MHz, con il 5% di tolleranza, fre-
quenza che viene calibrata dalla fabbrica. Nel modo ìmmediato l'operando è incluso nel for-
Reinizialrzzando il microcontroller, il registro W si mato della propria istruzione, generalmente occupa gli

MOVLW FF

OSCCAL (lNDlRlzzO 05 Hex) CODICE DÉL['ISTRUZIONE

OPERANDO (FF)

Distribuzione dei 6 bit Nell'istruzione "MOVLW FF", l'operando FF è un letterale,


che contengono il valore di caltbrazione per l'oscillatore interno. o valore immediato, che è contenuto nell'istruzione sressa.
MOWV OB

CODICE DE[TISTRUZIONT

0
7
.:

\'
INDIRIZZO DATO Distribuzione dei bit
di configurazione delle linee di l/O nel registro TRlS

L' i ndi rizzo dell' opera ndo matrcamente, quando si eseguono le istruzioni TRIS e
si trova nei 5 bit m.eno significativi del codlce dell'istruzione OPTION. ll registro TRIS si ulilizza per configurare come
ingresso o come uscita le linee della porta GPIO; ricor-
B bit meno significativi dei 12 che compongono il for- date che la linea GP3 funziona solo come ingresso. Se
mato. Frequentemente questo valore viene caricato nel quando si carica il registro TRIS uno dei suoi bìt vale 1,
registro w la linea di l/O corrispondente rimane configurata come
Nel l'indirizzamento diretto, l'operando occupa alcu- ingresso, se vale zero invece come uscita.
ne delle posizioni della memoria dei dati RAM che si Ad esempio, se vogliamo configurare come uscita le
selezionano con i 5 bit dr indirizzo compresi nella pro- linee GP2, GP1 e GP0 dobbiamo eseguire le seguenti
pria istruzione, occupando le ultime posizioni. <onronTa di r<f rr rzinnr'
Nel PlCl2C50BA, dato che c'è un solo banco di
memoria dei dati, è sufficiente indicare questi 5 bit, N,IOVLW b',001 1 1000',
pero negli altri nani che hanno più banchi dobbiamo TRIS GPIO

MOVIV INDF
Le tre linee meno significative di GPIO sono confi-
F5R gurate come uscite e le altre tre come ingressi. Se ora
vogliamo portare sulle linee di uscita il valore binario
GP2 = 1, GP1 = 0 e GP0 = 1, si eseguiranno le seguen-
ti istruzioni:

INDIRIZZO DATO
MOVLW b',00000'101'
MOVWF GPIO

L' i nd i rì zzo cl e I l' o pe ra n cl o, n e I l' i n d i rizza me n to in d i retto, lnfine, il registro OPTION, anch'esso senza indirizzi
ri<icrlc nci 5 hir mpno <innificalrvi di FSR.
assegnati nella RAM, e che si carica con il valore di W
eseguendo l'istruzione OPTION, è dedicato principal-
ufilizzare i bit 5 e 6 del registro FSR per selezionare i mente al controllo del temporizzatore TN/R0 e del
banchi stessi, come rappresentato nella figura. Watchdog, che si studierà in modo approfondito piu
Nel caso del modo di indirizzamento indiretto, nello avanti Nella frgura è riportata solo la distribuzione dei
mnemonico dell'istruzione si usa come operando il hit nli nrrocin ranictrn
registro INDF, che non e implementato fisicamente.
Nella realtà si utilizzano i 5 bit meno significativi del
registro FSR per selezionare l'induizzo dell'operando
nella RAM. Se il PIC avesse diversi banchi si utilizzereb- OPTION
bero i bit 5 e 6 di FSR, ma questo non è il caso del
508A, come si può vedere nella figura.

Questi due registri non dispongono di induizzi definiti Distribuzione dei bit
del registro OPTION, incaricato di governare il TMR0 e il WDT.
nella zona SFR della memoria RAN/. Si utilizzano auto-

;,1:y1 ,1' ,:: ;!,;1.1; l


it TMR0 e
L'oscillatore,
le linee di l/O det PIC12C508A
ll PIC'12C5084 ha quattro modi di lavoro, in base al tipo +VDC
di oscillatore che si utilizza per generare la f requenza di
f unzionamento:

1. - EXTRC: Oscillatore esterno basato su RC.


2 * INTRC: Oscillatore interno a 4 MNz.
3. - XT: Oscillatore esterno con cristallo di quarzo da
100 KHz sino a 4 MHz.
4. - LP - Oscillatore esterno con cristallo a basso con-
sumo da 32 KIlz sino a 200 KHz.
Ouando si lavora con oscillatori esterni basati su cri-
stalli di quarzo o risonatori ceramici, ipiedini
GPS/OSC1/CLKIN e GP4/OSC2, supportano i piedini del
quarzo. I valori dei condensatori C1 e C2 mostrati nella
figura, per imodiXTda 1 a4MHz e per il modo LP da
32 KHz, di solito sono da '1 5 pF.
Generatore esterno
Quando è molto importante ridurre al massimo il
con porrc TTI e cristallo di qua,zo rn configuratione parallela.
consumo di energia, si configura l'oscillatore esterno in
modo LP In questo caso, lavorando a 32 KHz, il consu-
mo di corrente e di pochi microampere, invece dei mil- porte TTL e cristalli di quarzo in configurazione paralle-
liamoere necessari oer lavorare in modo XT a 4 MHz. la e seriale. I valori dei componenti passivi sono forniti
Nel modo di lavoro con l'oscillatore esterno, il genera- da MICROCHIP, nelle specifiche tecniche.
tore degli impulsi di clock puo essere un circuito indi- Infine nella fiorrra e rinortato lo schema di un oscil-
pendente, in questo caso si collega al piedino GP5 e la latore R-C.
frequenza può essere prelevata dal piedino GP4. La modalità R-C dell'oscillatore è molto semplice ed
Nelle figure seguenti sono proposti gli schemi di un economica, però non offre eccessiva stabilità nella fre-
oscillatore esterno, basato su circuitr indipendenti con quenza.

Qrhame r'lal rnllansmanta Generatore esterno


del cristallo di quarzo negli oscillatori esterni con porte TTL e cristallo di quarzo in configurazione seriale.

!, .., : t' :,: ',,) t:' !:, ) j':...


t. : ,.,: t',.,.
+Voo lì PlC12C508A dispone di due temporizzatori da B bit.
Uno e di ulilizzo generale e si impiega in tutte le appli-
cazioni che richiedono un controllo preciso del tempo,
, l'altro e il Watchdog, il cui compito e resettare il micro-
contro ler quando il programma si ferma in modo
imprevisto, e cessa il suo periodico aggiornamento.
: Entrambì i temporizzatori funzionano come contatorì
ascendenti che sì caricano con un determinato valore e
i si incrementano ad ogni impulso di clock. Quando
' vanno in overflow, cioe quando passano dal vaìore FF al
valore 00 Hex, generano un avviso, ponendo a uno un
Disposizione di un oscrllatore esrerno di tipo R-C
flag, o resettando il microprocessore, come rappresen-
tato nella figura successiva.
,,;t,.i ',,t" | ,,.i:.',',i;;i
','
:'i.; f':i,, ; , Dato che i temporizzafori da 8 bit hanno un range
Con l'obiettivo di lasciare lberi la maggior parte dei di conteggio ridotto, dispongono di un divisore di fre-
pochi piedinr del PIC 12C50BA per la gestione delle peri-
feriche e le funzioni delle risorse interne, l'oscillatore
che genera la f requenza di lavoro puo essere interno, in
questo modo non dovremo ulilizzare dei pin per il col- A
legamento di componenti esterni. Questa è la forma di
lavoro in modo INTR.
IMPUISO DI
ffi
FLAG DI
Questo oscrllatore interno viene calibrato in fabbrica
CONTEGGIO OVERFLOW
per oscillare ad una frequenza di 4 MHz. con un 5% di
tolleranza, quando è alimentato a 5 VDC, ad una tem-
peratura di 25"C.
Struttura dei temporizzatort del PlCl 2C50BA
Per la corretta operatività di questo oscillatore, dob-
biamo scrivere nel registro OSCCAL (Calibrazione
dell'Oscillatore) un valore di calibrazione di 6 bit, che è quenza che riduce il numero degli impulsi, aumentan-
stabilito dal costruttore del chip. Questo valore si carica do così il conteggio massimo a cui possono arrivare.
automaticamente nel registro W quando si reinizializza Questo divisore divide ìa frequenza degli impulsi appli-
il processore, per questo all'inizìo del programma si uti- cati oer le srrccessive notenze del 2. Nel caso del WDT
lizza l'islruzione MOVWF OSCCAL, per traslare rl valore il range di divisione arriva sino a 128, mentre se si trat-
di calibrazione da W a OSCCAL. Nella figura pubblicata ta del TMR0 arriva sino a 256.ll controllo dei parame-
qui sotto è riportata la distnbuzione dei bit del valore di tri fondamentali dei temporizzatori e fatto tramite il
calibrazione nel registro OSCCAL che occupa l'induizzo registro OPTION.
05 Hex.
;, ': ;','t'i:. I
F l'rrn ro temnorizzatore di ftilizzo nenerale di
r cui
dispone il PIC 12C5084, e puo utilizzare il drvisore di
frequenza quando si scrive uno 0 nel bit PSA del regi-
stro OPTION Quando il PSA vaie 1 il divisore di fre-
INDIRIZZO 05 Hex.
quenza lo utilizza il WDT.
VATOTE DI O{UBflAZIONE Come frequenza di clock, il TN/R0 puo scegliere se
utilizzarne una esterna indipendente, che si collega al
niedinn OC Kl onnr rre nr rella irtprna dell'oscillatore
FosdL. Per funzionare nel primo caso dobbiamo impo-
Distribuzione dei bit che formano stare il bit TOCS a uno mentre per il secondo caso biso-
il valore della calibrazione per l'oscillatore interno
gna porre questo bit a zero. Osservate nello schema

:t,,iit: ti,t1:.,:::.r
Se il bit 0, si assegna il divi-
PSA vale
sore al TN/R0, in questo caso f unzio-
na all'ingresso degli impulsi, cioè

t'ffi:ffiryffimffi
\f-À
come predivisore. Per contro, quando
PSA vale 1 il predivisore si assegna al
WDT, dove f unziona all'uscita del
medesimo, croè come postdivisore.
ll bit TOSE di OPTION sceglie il fronte
attivo dell'impulso di clock: quando
Controllo della frequenza nel TMR0
vale 1 è il fronte di discesa, quando
vele O e nrrello di s,alita TOSC selezio-
della fìgura il funzionamento della linea TOSC, controì- na il tipo di generatore di frequenza Quando vale 0 si

lata dal multiplexer. t iilizza nor il rnntonnin l: f ronr ronz: intarn: npr nrn-
ll segnale T0SE seleziona il fronte attivo dell'impulso cessore. Fosd\. Se TOCS vale 1 iì TMR0 si incrementa
di rlnrk rhc nrodrrrp l'incremento di valore nrrando
!, ,v v, vu ulL Y vs, ,vv

questo proviene da un generatore esterno. Se vale zero


srenlic il fronte di salita e se e uno orrello di discesa.
PREDIVTSORE PREDfVISORÉ
ll valore del registro TMRO che occupa I'induizzo 01 F52'P5I:F5O TMRO wDr
Hex dell'area SFR si puo leggere e scrivere tramite il bus ooo lz2 l:I
dei dati interno. Ouando si desidera contare un nume- ool l:4 l12
ro definito di impulsi, il valore con cui si deve inizializ- oro l:8 l:4
zare ilTMR0 è ilvaìore massimo FF, meno ilvalore desi- oll l:Ió l:8
derato piu una unità, dato che l'overflow si produce too l:32 l:ló
passando dal valore FF a 00 Hex. ror 1264 lt32
tto l:128 t|64
i;i; i j'.iii1l
ll suo compito principale è configurare il comportamen-
to dei temporizzalon. Non occupa un indirizzo reale
Tabella che indica
dell'area SFR, esiste un'istruzione speciale che carica in
i valori di funzionamento del divisore di frequenza
questo registro il valore che contiene il registro W. I bit
di questo registro possono solo essere scritti, e quando
awiene un reset, essi sono inizialtzzati al valore 'l . Nella con gli impulsi di clock prodotti da un generatore ester-
figura si mostra la struttura interna del registro OPTION. no coìlegato al pin GP2ITOCKl.
I tre bit meno significativi di questo registro, PSO - Quando il bit GPPU si carica con uno 0, le linee di
PS'l - PS2, stabiliscono il range di divisione degli impul- l/O GP0, GP1 e GP3 funzionano come ingressi, con una
si di clock, da parte del divisore di frequenza, come si debole polarizzazione dovuta alle resistenze di pull-up;
puÒ vedere nella tabella della figura. Osservate che per se GPPU= 1 queste resistenze di polarizzazione vengo-
il TN/R0 il range è il doppio di quello del WDT. no disabilitate. Il bìt più significativo di OPTION,
GPWU#, ha una funzione particolare, nel repertorio
delle istruzioni dei PIC della gamma base ne esiste una
chiamata SLEEB che manda il microcontroller nel modo
OPTION
dì basso consumo, o di riposo. In questo stato non si
eseguono le istruzioni, sì congela lo stato precedente,
e si spende il mrnimo di energia per mantenere il siste-
ma "addormentato".
Per "risvegliarsi" da questa situazione e riprendere
:
il normale lavoro dobbiamo cambiare lo stato logico
dei piedini di l/O GP0, GPl o GP3. Se GPWU# è a0 i

Struttura interna del registro OPTION


pin menzionati sono abilitati a risvegliare il PlC, quan-

+iil.'tí+:l'.,:..ri: ;lriiir l+f.,Ìrir+,'fri,1r'i, ;;t t,í::.É Éji:,i:'! i+IÉ,-+


do su di essi awiene un cambiamento di stato. ll risve-
glio sr realizza producendo un reset, e se GPUW# ='l si
disabilita ouesta oossibilita.

'tt' lNDlRlZZl 0ó Hex.

E un contatore ascendente, simile al TMRO, che ha la


particolarita di andare in overflow, e al passaggìo dal
valore FF al valore 00 Hex genera un reset. ll suo com-
pito è supervisionare il buon funzionamento del pro-
Struttura del registro GPIO
gramma; si utilizza caricando nel WDT un valore inizia-
le, passando poi all'esecuzione sequenziale delle istru-
zioni del programma. ll programmatore dovrà disporre
nel programma delle istruzioni di riaggiornamento del
WDT, prima che questo vada in overflow, sempre che il
programma si svolga normalmente. Se il programma si
ferma o finisce in un ciclo infinito, l'aggiornamento del
Watchdog non giunge in tempo, e allora quest'ultimo
"morde", cioè genera un reset.
Se il divisore di frequenza e assegnato al WDL fun-
ziona alla sua uscita, come s puo vedere dalla figura.

l,.t'1. :-;,q.r, rt '', ,t:: ,',.1' ::


lPlC nani dedicano sei dei loro otto piedini alle linee di
l/O multifunzionali, per rendere più alta possibile la con-
nottivit: fr,a lp nerifprirhe e le risorse interne.
Schema elettrico
Queste sei linee si chiamano GP0-GP5 e tutte pos- rlal rnllons6pnrn dai nin di llO del PlCt )C50BA.
sono funzionare sia come ingressi sia come uscita, ad
eccezione di GP3 che ouo solo funzionare come inores-
<n Por rnntrnll:ror nrpste
YvrJLr
linee si tiilizza il renistfO GPIO co che si applica a questo pied'no tramite l'esterno,
all'indvizzo 06 Hex della RAM dei dati, la cui struttura è basta leggere direttamente il flip-flop der dati, che e
riportata nella figura. Nello schema della figura vedia- uno dei bit del registro GPIO. Se nel flip-flop TRIS scri-
mo il circuito elettronico associato ad ogni pin GPx. viamo uno 0 la porta si configura come uscita, e per
Quando si scrive un 1 nel flip-flop TRIS, il piedino portare su di essa un livello logico lo dobbiamo prima
GPx associato assume uno stato di alta impedenza, e il scrivere sul flip-flop dei dati che è il bit corrispondente
pin si configura come ingresso. Per leggere lo stato logr- del registro GPIO.
L'istruzione TRIS GPIO carica il valore memorizzalo
in W nel flip-flop TRIS e lo configura come ingresso o
r^mors u)LrLq.
LVrr 1<.it; nu
Ad c)gr
o<omnin
I rPrw <a
)E <i docidor2 Lvr
Jr usjruEro il lvur olE lî
666fi^"rîr^ lo
linea GP0 come uscita e il resto come ingressi e in
IMPULSO PER TMRO
seguito portare su GP0 un livello logico alto, sì dovran-
nn trqpnrriro lp spnrronti istruzioni.

ffi
PSA OVERFLOW
WDT
TRIS GPl0 ; Configuro GPO rome uscita

ll divisore di frequenza funziona all'uscita del WDT. MOVWF GPIO ; Da GPO esce uno 0
It reset e [e istruzioni
det PICl2C508A
.:':,': .,i, '',
',j. t' :.,.
:..': :'i,):t;,",
ll PlC12C50BA, carente di interrupt, dispone solo del La reinizializzazione del PIC si nrrò nrnrinr:ro noi
Reset ner reiniziare rA qeflrrenza rhp def ermina il f lus- seguenti modi:
so delle istruzioni del programma. Resettare il micro- 1
o Collenamento dell'alimentazione.
LUt tLtuiltrt -i^^if
-^^+-^tt^- i-- --îpnnArp
)tvil| tLd d))Egr ur I v:lnrp
rorE rrn vorvrE nntO
rvL a tUtti i

suoi registri di controìlo della zona SFR della RAM dei


STATO
dati Fra questi registri si trova il PCL, che dopo il
Reset rimane caricato con il valore 1111 1111, il che
significa che al successivo impulso di clock, passerà
alla prima istruzione da eseguire, posta all'indirizzo
0000 0000, che è la prima della memoria di pro- I bit GPWUE TO# e PD#
determinano la causa che ha provocalo i/ Rese/
gramma.

2'. Overflow del Watchdog in


modo normale o in modo riposo.
coiiió-a,r,riiìro '**';;;È;J"i'di;-
RESEI PER Reset per offivozione di MCI,R#,
lNDlllÍao REGrsrRo
'ilffo
KA|n nrcsrRo DEUAuMENTAZIoNE combio di stoto su GPlo
,rr'r,: .r.:r.:.ì-9*lilllll&14@:ìrìllllMiir@iÈ!t
3". Attivazione di MCLR# in modo
normale o in modo riposo. Caduta
:*--*d**
oo i rNor ì **rr
xxxx '::'::r::'uuuu
ui ,ùj; 'uuuu della tensione di alimentazione sul pin
Ol i IMRO xxxx
TMRO'l x xxx
xxx x
xxxx:ì uuuu GP3/MCLR# /pp fra 2,1 e '1,5 VDC.
02 ; pC rj "'ì1 111 lllt: l':',i:,',7]îri:.:i: llll 4". Al cambiamento di stato del
03 i ,SfAfO l.1ù OO I I xx i,ì ,. ,Q;':;:i qs u u pin GP0, GPl e GP3. Quando si pro-
04 FSR Illx xxxx ',,:1119.,6;',
lllu uuuu voca un Reset, il microcontroller esce
05 : oscclt i':*,:::aaa oo - - uÈ,ù$,-_4, u - -
dal modo riposo.
Oó : GPIO i t:txx xxx*,;;',,'.;;;::;.;;$.;$.$fr1!il,,iÚuuu
Per conoscere la causa che ha
opagltj Í.Ír I 1.1,1';lt';;':t:.:;;;,:rtìiìit.$1iffi"! t I I
TRIS :, - i:,Ll I I.l tr:,!,,,:,,,r:rlri:,,:ì::rrr''t t II|| orovocato il Reset. si utilizzano tre
w ir4$s qqxi qqqq qquu flag del registro di STATO: GPWUF,
.. i. .:i ]l!:.:-'i?Ti ... TO# o P# rhc snnn nresentati nella
fcolibrozionel

Abbreviozioni / -: Non implementoto; u: Non combio; x: Sconosciuto; figura.


q: Dipende dollo condizione. Nl^ll-
t\cild +-A^ll-
tductìd ,.J^ll.
ucild f;^,,"^
il9utd .^^^
)uilu

I mostratì i valori che assumono i bit


dcl rpnistro di STATO ner le differen-
Valori che assumono i bit dei registri di controllo del PlCl 2C50BA dopo un Reset
ti cause di Reset.

Esistono diverse forme per provocare un Reset, e


non tutte le volte i registri di controllo rimangono cari-
cati in modo r-rguale. Nella tabella della figura sono
riportati i valori che assumono registri SFR del PIC
'12C508A dopo che si è prodotto un Reset, sia per il col-
legamento dell'alimentazione che per l'attivazione del
piedino MCLR#, il debordamento del WDT o i cambio
Valori dei bit del registro di STATO per le differenti cause di Reset
di stato su qualcuno dei pin GPx.
ll circuito per rilevare il
Voo buco di tensione sul pin
OVERFLOW
ffiffi WDT N/CLR# si puo semplifica-
re elìminando il diodo

w
CAMBIO DI STATO
PIN SPX Tener come si nro vedere
STEEP nell.r fiorrra dove e stato
MCLR#
sostiruito dalla coppia di

M resistenze R'l e R2. ln

ffiffi
FtIP-FtOP ouesto caso il îransistor
Q1 si blocca e attiva il
@ RESET
:,

t;,
Reset portando a
basso il pin MCLR# quan-
Iivello

do la tensione di alimen-
,. . i tazione scende al di sotto
Schenl det. cyy.trltlo attivaziolte del Reset,
ltettrolico !1tt' di 0,7 lR1 / (Rl + R2)1.

,.,,t.,;i',,,,!;ti, i; t.;,.i-i :;:,::t;':ti i tti:,

]
Nello schema elettronico della figura, l'attivazione
del Reset interno del processore e provocato in base
al valore Q# del flip-flop R-S. Questo dispositivo si
purc d II L]udruu
^' '-^r^ )r
'i crtf--.iv: il cró innro(<n Set rho p
.

controllato dall'uscita di una porta OR a 4 ingressi,


ognuno dei quali corrisponde ad una delle cause che
cpne rano il Respt | 'attivazione del f ronte attivo del
Reset è ritardata da un oscillatore DTR e da un con-
tàtoro. e R hit npr :qoettare che si siano stabilizzate
sia la tensione di alimentazione che la frequenza di
lavoro.

ilt.'.;,1;; l' i"i,;l:1,':,.i :i, i :: :.i i l' ::,: :',,..,i i ;; ; :,;i


ll Pa<of <i nrndt tra at tanr]a
Si produce un buco di tensione nell'alimentazione
la tensione VDD scende al di sotto di Vz + 0,7 VDC
quando la tensione VDD che riceve il PIC scende sotto
un valore minimo, e poi recupera. In questa situazio-
ne go lvllVElllEllLE
llE aón\/anionto nonor:ro rrn
ur Rocot 61p6 p17it:ra m
lllcl-rl
VEllLrurL VLr LvlLOlE
funzionamenti nel sistema e nei circuiti assocrati.
Questo Master Clear Reset (N/ICLR) si puo program-
mare in modo che si produca internamente, quando
si abilita il segnale N/CLRE dello schema elettronico, e
anche esternamente, nel qual caso questa funzione è
assegnata al pin GP3/MCLR/Vpp che genera un Reset
quando la tensione applicata ad esso scende a valori
f ra 2,1 e 1 ,5 VDC. Esistono due circuiti classici per

implementare questa funzione di rivelazione dell'ab-


bassamento della tensione sul pin menzionato. Nello
schema mostrato nella figura al centro, si produce il
Reset quando la tensione VDD scende al di sotto del
valore della tensione di zener, Vz, più 0,7 Volt corri-
spondenti alla giunzione emettitore-base del transi- ll pin MCLR# genera un Reset
quando la tensione scende al di sotto di 0,7 [Rl I (Rl + R2)]
stor Q'1.
P70

it. l:,,:..i::..,:t:"i ,'t ';; t,,t.i..':';,t;rtt,t,t t re gli impulsi di clock che sincronizzano l'invio del-
In molte applicazioni e frequente che il PIC non abbia l'informazione seriale.
niente da fare per lunghi periodi di tempo. Questo
succede, ad esempio, nelle macchine distributrici,
inoltre è comune nei prodotti piccoli, in cui i PIC nani
sono idonei, alimentati a pile, come ad esempio nei
microrobot. Rrdurre il consumo di energia in queste
VSS+:
situazioni e vitale per mantenere il sistema operativo Voo(+SVoc)+,r
per periodi accettabilr. Se rl sistema sta aspettando Vpp+.,
che l'utente prema un tasto, bisogna fare in modo
che durante questa attesa, a volte molto lunga, il con- DATO SERIALE+|
sumo di energia sia minrmo. Per questo si "addor- IMPULSI >.
Dt ctocK
menta" il PlC.
Per fare ìn modo che il microcontroller entri in
stato di riposo, o di basso consumo, bisogna eseguire Collegamenti base
l'istruzione SLEEP ln questo modo passa dal consu- per la programmazione in modo seriale del PlC.
mare alcuni milliampere ad aver bisogno solamente di
pochi microampere, cosicche una pila puo durare
degli anni. Nel caso del PlC12C5084. il pin GP0 funziona come
Quando il PIC entra in stato di riposo, ipiedini di ingresso dei dati seriali, il pin GP1 come ingresso del
l/O mantengono lo stato precedenle, cessano di ese- clock di sincronismo, e il pin GP3/MCLR#Vpp per l'in-
ouirsi
J" - le
-
islrLrzioni e se si uliltzza un oscillatore al r. ---- dpll: ton<inno <nori:lo di nrnnr:r
oro<qn _,,lmaztone,
quarzo questo si fermerà, riducendo ulteriormente il come indìcato graficamente in figura
consu mo.
Per svegliare il PlC, e farlo uscire dal suo stato di l
'congelamento, bisogna produrre una situazione spe-
ciale. Dato che il PlC12C508A non dispone di inter-
rlnt ,,il slo risveoìio ,,i realizza oeneralmente median-
,-r.,
îe 1n Reset che n1ò pq<pro nrrì\/^.:t^ .irll'OVefflOW Voo+: +Vss
del WDT, dall'attivazione di MCLR# o per il cambio di : <4PO
stato di alcuni piedini GPx. ll bit PC# del registro di
STATO si attiva quando si esegue l'istruzione SLEEP,
j <+Pt
GP3/
mentre il TO# si attiva quando va in overflow il MC[R#/+,.
Watchdog. Vpp

, t::'
:' t:'i.t , ., i
l:., !;';:,,,,1:..0! 1.1,,-.,,,' ' a :lt
:,

5i puo scrivere nella memoria di programma del A<<oonazínna daì nin


rtol PlCl )aqnRA nar ls <t ta nraarsmms zinna <arialo
PlC12C50BA in modo serrale, sullo stesso circuito del-
l':nnlir:zinnn
I OPPllLO4lUl lC. Arrnc+r1
\<'UC)LU normetta :l LvrLt
pLr | | rL r!L ur rnctrl urftnro nor ptV-
LLvtg UEt nrn-
dotto finale di produrre la scheda elettronica con il
microprocessore senza doverlo programmare, e realiz-
zare la scrittura del programma solo al momento della Sino ad ora abbiamo gestito l'insieme dì istruzioni del
vendita, garantendo al cliente il firmware più recente e PIC 16F84 che funziona come cervello di Monty, che ha
perfezionato. 35 istruzioni da '14 bit dì dimensione cadauna. Per
Come si può vedere nello schema della figura, per la manìpolare la pinza che possiede Monty su un braccio,
programmazione del PIC sono necessari cinque segnali: si utilizza il PìC12C5084, che è un nano della gamma
VDD e VSS per l'alimentazione, Vpp per l'ingresso della base. ll suo repertorio di rstruzioni ne comprende solo
tonsinno,, <nori:lp
-r_.',_,* ner l: programmaztone,
r_, ,a nrnnr:mm:zinno und lino. per
rrn: il|ea ^o' 33, da 12 bit ognuna. Questo fa sì che sia molto facile
inviare i dati in modo seriale al PIC e un'aìtra per invia- comprendere la programmazione del nano, dato che la

I r':'f i t'f'
, "., 1 '..1 . ' I
I i,
,t,

di programm a, l'induizzamento si

ISTRUZIONI DEI PIC DI GA'YIMA effettua con 9 bit. Nell'istruzione


OPERAZONI CON BII CALL gli 8 bit meno signif cativi del
suo codice di istruzione sono caricati
movtÀr r : MuowWsf
clRw : Clnqellgw. rpl reoistro PCI dell'area SFR della
CfRf f
súÉùr ,1"4 ;
:Concellof
RAN/. ll nono bit del PCL viene
P'F"9f,
.loRwF
, .t,,d,-:
frd.
OPERAZIONI CON IMMEDIATI messo a O. Qualcosa di simile accade
I oR"-fry*\,ye
con le istruz oni che spostano un
aDDwF
valore al contatore di programma,
f,C il-"r11gelry e
iÀovF " Íd "
z nel quaì caso gli 8 bit dell'operando
si scrivono negli B bit meno significa-
tivi del PC, mettendo a zero il nono.
Secondo le stime di MICROCHIP, la
dimensione del codice che si crea
per la gamma base e inferiore a
o: Indirizzo di progrommo; b: Bit; k: Lefierole immedioto. quella dei competitori, come si
W@ffiF-* mostra nel grafico seguente.
Per quanto riguarda la velociià
dr esecuzione, il vantaggio che si
Tabella che raccoglie le 33 istruzioni dei PIC della gamma base
ottiene utilizzando i PIC della
gamma base è molto più marcato,
maggior parte delle istruzioni sono simili a quelle del come si puo vedere dal relativo grafico.
PIC 1 6F84.

ii- iÍ: rl;jjiil i t,. j.' ;.. i ; ; t ii lt t


!i..
DIMENSIONE RETAÍIVA DEt CODICE

Analizzeremo solo il comportamento delle ìstruzioni


della gamma base che comportano differenze con queì-
le già note della gamma media.
Uistruzione TRIS serve per conf igurare le linee della
porta GPIO come ingressi o come uscite; con questa
istruzione, i bit che precedentemente erano stati carica-
coP800 STó2
ti nel registro W si caricano sul flip-flop TRIS e configu- Notionol 5GS

rano la direzione della linea. Un'l fa sì che la linea cor-


rispondente sia ingresso, uno 0 che sia uscita. Se si desi- Grafico della dimensione del codice
dei PIC base confrontato con quello dei suoi competitort
dera configurare le sei linee GPx come ingressr, bisogna
eseouire le seorrenti istruzioni:

vrlocttA RELATTvA Dr EsEcuztoNE

TRIS GPiO ; Le GPx funzionano come ingressi.

Un'altra istruzione speciale della gamma base e


OPTION, che serve per caricare il registro OPTION per il
controllo del TMRO e del WDT con il contenuto di W.
Listruzione GOTO contiene, inclusi nel suo codice a 12
bit, i 9 bit che corrispondono all'indirizzo dell'istruzione
ll orefirn ovidenzia
a cuì bisogna saltare. Rlcordatevi che siccome il
la differenza di velocità di esecuzione dei PIC base.
PlCl2C50BA dispone solo di 512 parole nella memoria

"-,':rr i;-i:,;i,'ii r't::il-:iî::ì l:i: ti,y i;i; t:;,,,,,r,t'l, r'.t


Applicazioni con la
Micro'PIC Trainer Plus
neriferirhe sncrifirhe destinate a risolvere lavori comu-
::
1;f:rit ' :;: ,,',: ,i',:: ',. ni in diverse aree di applicazione. ll lettore puo ottene-
In quest'opera sono presentati diversi strumenti di rico- re informazioni più dettagliate su questi prodotti, nelle
nosciuto prestigio internazionale, per gestire i PlC. Fra pagine del sito Internet del costruttore. In linea di mas-
questi notiamo il sistema di sviluppo Micro'PlC Trainer. sima la Micro'PlC Trainer Plus mette a disposizione del
che oltre a funzionare come uno scrittore di memorie progetto da implementare risorse quali tastiera, conver-
dispone delle periferiche piu comuni utilizzate nelìe titore AD e DA, porte di l/O, ecc. La Micro'PlC lO e spe-
applicazioni: display LCD, display a sette segmenti, cializzafa in applicazioni industriali e la MSx84 nel con-
trollo di motori e sensori.

| '',': !t',,,,';, :,:,'.,|t,:,.i:l: ,.: ':.,

Aggiunge alle risorse della Micro'PlC Trainer quelle elen-


cate di seguito e schematizzate nel disegno della figura:
. Tastiera matriciale 4 x 4
. Barra di diodi LED
. Visualizzatore da quattro dìsplay a 7 segmenti
. Convertitori AD e DA
. Canale di comunicazione seriale RS-232
. Porta di l/O da B linee
. Clock/calendario e RAM non volatile
La disposizione di tutti gli elementi di questa scheda
è riportata nella fotografia alla pagina seguente, in cui
,".i*,,,, ;r t:;:r,;;:;; t:; ;;;;';:,;;'P;;: r"t; si possono vedere i suoi tre connettori di comunicazio-
ne con l'esterno: il connettore corrispondente al canale
interruttori, pulsanti, potenziometri, barra di LED, ecc. seriale RS-232, quello del PICBUS con cui si adatta alla
il che permette di eseguire in tempo reale i programmi Micro'PlC Trainer e una fila di morsetti a vite con cui si
in fase di messa a punto e prova. pongono a disposizione dell'utente le linee di l/O di
Al Micro'PlC Trainer mancano ancora numerose tutte le risorse.
periferiche tipiche dei progetti con i microcontrollel
per questo il produttore ha sviluppato altre schede di
espansione che ne forniscono di nuove. Queste schede
sì collegano al sistema di sviluppo tramite il connettore
PICBUS. La ditta "lngeniería de Microsistemas
, ,-y,-,
Prnnr:medn<(l" h: progettato tre schede di espan-
, ,,-
sione che sono commercializzate sotto il marchio
MICROSYSTEMS ENGINEERING:
1. Mrcro'PlC Trainer Plus
2. Micro'PlC lO Schema dell'espanstone delle risorse della Micro'PlC Trainer
3. MSxB4 mediante il collegamento alla Micro'PlC Trainer Plus tramite il
connettore PICBUS.
Oonrrn: di nrrpstp srhpdp qr rnnortà rrn insieme di
P7l

,.r .!
i,l

Insieme all'hardware della Micro'PlC Trainer Plus, il


costruttore fornisce un disco che contiene tutti ì pro-
grammi e le routines che si utilizzano nelle diverse
applìcazioni e nei progetti dimostrativi del sistema, per
iniziare l'utente alla sua gestione. Questi programmi
sono progettati esclusivamente a fini didatticì e sono
abbondantemente documentati per facilitarne la com-
prensione, andando oltre la descrizione tecnica di pura
programmazione.

,.,t' ,i.ri:'t, l,t,','t i,;,;,:t, 1'


Fotografia della schlda Micro'PlC Trailer. ely ',
,: ' ,, ,. i t,.:. i :'.,:;,ir,',,;;',,.; , ',, ., |i, y' ,' ,,

Per fornire al lettore un'idea delle grandr possibilità


|: t,' ; t1
.t',;
"ii della Micro'PlC Trainer Plus, studiamo in modo somma-
Alcuni PIC hanno integrato sul silicio il bus 12C, e dedi- rio la sezione che controlla il circuito ìntegrato l2C
cano i piedini RC3 e RC4 a supportare lo scambio di PCFB5B3, che contiene un clock/calendario e una
informazionr in serie e gli impulsi di clock. Altri PIC più memoria RAM. Si tratta di un circuito CMOS a basso
semplici non dispongono di questa risorsa, e la devono consumo controllato con il bus l2C.
implementare via software, utilizzando le linee RB6 e Contiene una memoria SRAM da 256 byte, e un
RB7 per la loro gestione. registro che la indirizza e si autoincrementa leggendo o
Come abbiamo potuto vedere quando è stata scrivendo una delle sue oosizioni. Disoone di una linea
descrìtta la Micro'PlC Trainer Plus, questa scheda utiliz- esterna A0 che permette il collegamento al medesimo
za quattro circuiti rntegrati specializzati per controllare sistema di due di questi dispositivi. Per il controlìo delle
le principali periferiche che supporta: rìsorse interne sono utilizzati diversi registri che sono
1": SAA1064: Controller per quattro display a sette
segmenti
2'. PCF8591: Convertitore AD e DA
3". PCFB\744: Porta di l/O da 8 linee digitali
4". PCF8583P: Clock/calendario oiù memoria RAM
Sia lo schema dei collegamenti sra il funzionamento
delle sezioni che formano la scheda sono state spiega-
te in precedenza; nella figura si mostra la distribuzione
delle risorse sulìa superficie della PCB.

I Schema a blocchi del PCFB5B3.

' implemenlati sui primi 16 indkizzi della memoria


r SRAM. Lo schema a blocchi è rappresentato nella figu-
"-
ra "ì^^"+-+-
flpoftara qur -^^
^,,; sopra.
,; Si alimenta con una tensione compresa îra 2,5 e 6
VDC e la tensione per il mantenimento dei dati nella
, memoria può oscillare fra 'l e 6 VDC. ll clock/calenda-
, rio funziona con formato da 12 o 24 ore, con una base
r tempi da 50 o da 32.168 Nz.
Distribuzione dei pri nciaali
I Ha funzione di allarme, di temporizzazione, conta-
componenti sopra la scheda della Micro'PlC Trainer Plus I tore di eventr e interrupt. La piedinatura, la descrizione

.l
NilICROCONTROLLER
Strumenfi di lcrvoro

di ogni pin e le caratteristiche del funzionamento sono


{a 00 DoPo I
riportate nelìe figure seguenti.
REsEr)

Bf DI STOP DEL CONT@ìO úéuiilmffi


0 = COffi@O
I :MNTENÈ [COME6IO,
cNctu I DtvtSoRE

S] DI RftNZPNI
._, -tffistówt;uM
-FffiMMil
0: auwE scoffiafo
]
0 = CONÌE60 =AUHf COtrEGA]O

I -MIMORIZAERIIIENE
Funziona in base a un oscìllatore interno da 32,768 àz fULIhO VALORE CONIATO i-Hom
I 0:[rcstzrcN:5Eó
e dispone di un circu to POR (Power On Reset) che ini- wom- l , $ reNO SENAMSCHEMRI
r = DAU rcSgONt5 É ó
00 = MOrc OW'O A 32,7ó8 Hz
0ì =MorcouRloa 50 Hz
zializza il dispositivo quando si collega la tensione di l0 = MOD CONIAIORT Dl EVEMI
il = MOrc ftsl, m
alimentazione. I primi 8 indi- I coNlatoRt tN PAuuilo

PCF8583P
nzzi della RAM (00 - 07)
t. <frt tftt tr) a s<<aanazinno
PcF8583T i lunzronano come regrstrl
dei bit del registro di controllo e di stato.
soecifici di controllo. ll primo
reoistro sitr rato all'indtrizzo
00, funziona come registro impulsi da contare sono applicati al piedino OSCI, e si
di LUtìLtuilu p
ut rnnirnlln ut qfr+n
E 6li )LqLv, mnn
I tErt- possono scrivere, dato che può funzionare come conta-
i tre i successivi 7 ccntengono tore di eventi da 6 digit.
i parametri della f unzione Nella figura riprodotta qui sopra è riportata la distri-
oraria. Gli indirizzi da 0B a buzione del registro di controllo e di stato, in essa si può
Piedinatura del PCFB5B3
0F si nossono rrtiìizzare come apprezzare l'esistenza di un bit che attiva l'allarme se si
registri per il controllo di desidera. Questo registro si pone a zero dopo il reset.
allarmì, oppure come indirizzi di ulilizzo generale. Quando si produce una situazione di allarme si attiva il
Mediante il registro di controllo e di stato, si impo- flag corrispondente. L'uscita INT passa a zero. I flag man-
sta il temporizzalore per lavorare o con la base tempi, tengono il loro stato fino a che sirealizza su di essi un'o-
^^'--i^^^ A' )Lr
--''++' '"^ Se non si usa la funzione di allar-
che puo essere 50 e 32.768 Hz, o come contatore di pct dztut rc ur rLLurd. -
eventi esterni. Lavorando in modo orario i giorni, mesi, me, i registri da 09 a 0F possono essere adibtti a conte-
ore, minuti, secondi e centesimi sono espressi nel for- nere dati.
mato BCD. Nel modo contatore di eventi esterni, qli

N9 DI
SEGNAI-E DESCRIZIONE
PIN

I OSCI Ingresso dell'oscillotore dq'5é Hz o ingresso.de5lii eventi:


2 OSCO Uscitodell'oscillorore
a AO fngreso eslemo legtli,|$irizí ;

4 Vss Negotivo dell'oiiàentozhle l

5 sDA Linq dei dqti del bus l2C


6 SCt Lineo del clock del bus l2C
7 INT Uscito dell'interrupt in collettore operto
I Vdd Positivodell'qlimentozione

Descrizione funzionale dei piedini del PCFB5B3

PARAMETRO SrMBOtO MTNIMO MASSIMO UNlTÀ


,

fensione dr ìrilmenùlon! : VpD -O,8 +7


consumo dj toi*èoB r IDD 50 mA
Tensione di ].in:gresso vl -O,8 o VdJ VDD+O,8
Corrente di inle3so h to frA
.to
Correnle di vritq lo
Dissipozione di pobnz€ Pror 300
Porenzo di useifti 50

Caratteristiche di funzionamento del PCFB583 Mappa dei registri specifici


P72

registro di controllo e di stato, si legge direttamente,


CONTATORE DILIE ORE, POSìZIONE 4 tramite questi indirizzi, rl giorno e il mese, mentre il
A OO DOPO II RESTT
giorno della settimana e l'anno si leggono a 0. ll for-
mato BCD è utilizzato anche dal contatore di eventi
estern i.

FORMAIO DEI.I.E ORE Nello schema della figura sono rappresentati i collega-
0 = FORIvIATO 24h,
fl. flAG AM/PM NON CA ,tSrA menti dei due PCFB5B3 e un PCFB570, che contiene
I = FORMATO 12h
II. FI.AG A/\4/PM 5I ATIIVA 256 byte di memoria RAM. Tutti questi dispositivi sono
per il bus 12C. Questitre hanno assegnati glistessi indi-
rizzi (1010), per cui bisogna differenziarli mediante le
Registro contatore delle ore linoa n nin rli inÀiriz.amento. così il primo pcFB583
avrà A0 = 0 e il secondo A0 = 1. ll PCFB570 ha le sue
':.,1,..:;,.'. .:'
.,... '',', ,
tre linee di indirizzo A0 = A1 = A2 = '1. ll primo dei
Nella figura alla pagina precedente e rappresentata la PCFB583 lavora in modo orario con il clock al quarzo a
distribuzione e I'assegnazione delle f unzioni dei diffe- 32.768 Hz, mentre il secondo lavora come contatore di
renti registri specifici per il modo orario e per il modo eventi applicato al piedino OSCI.
contatore di eventi.
Nel modo orario si può scegliere il formato 12 o 24
ore, attivando il bit più significativo del registro conta-
tnro rf i aro ,,f,-,tdto nall:
rha À rinnrl:l-n
- neild {in' in .l+.
'r: tn atlo.
Tr9urd Come esempio di gestione per il Micro'PìC Trainer Plus,
ll registro che occupa la posizione 05 contiene l'an- il dischetto allegato al kit contiene un file con il pro-
no e il giorno, il registro 06 il giorno della settimana e gramrna CRONO.ASN/, che implementa tutte le fun-
il mese Orreste fiorrre mostrano la distribuzione inter- zioni di un cronometro classico, in base al dispositivo
na d; entramb reO strl nttlvando blt d maschera de PC F8583.
I
I

CONTATORE DI ANNI/GIORNI, POSIZIONE 5

MSB A 0l D0P0 lL RESET ISB

Registro del grorno e dell'anno.

CONTATORE DI GIORNI DEI.I.A SilIMANA/MESI


PostztoNt 8 A 0l DoPo il. RESET

R: resistenzo di pull-up

GroRNr DEr.r.A SEITTMANA { 0 - ó l,


st LEGGE o sE LA MASCHERA È A "t"

Resistro del mese e del oiorno della settimana Schema del collegamento dei vari dispositivi al bus l2C
MICROCONTROTTER l:"'l 73
Strurnenti per il progello con il PIG

Applicazioni
detla Micro'PIC I0 (r)

ll grande successo a livello internazionale del sistema di


svrluppo Micro'PlC Trainer, ha indotto il suo costruttore
a potenziarne l'efficacia, mediante l'ampliamento con
nrovc e noderose neriferiche imnlementale su tre sche-
de che ricevono il nome di:
'l
. Micro'PlC Trainer Plus
2. Micro'PlC lO
3. MSxB4
In precedenza sono state analizzate in profondità le
possibilità di applicazione della Micro'PlC Trainer Plus Fotografia della Micro'PIC lO
orientata all'uso intensivo del bus 12C. Quì parleremo
della Micro'PlC lO, che espande le risorse base del siste- adattamento a nuovi PlC, ecc., si possono trovare sulle
ma di sviluppo come indica la seguente tabella. pagine di Internet del costruttore " lngeniería de
Microsistemas Programados S.1." che sono ubicate alsito
www.microcontroladores.com. Nella figura si può vedere
la distribuzione di tutte le risorse della Micro'PlC lO.
Encoder ottico per il controllo
del senso di roiazione e della velodtà dei motori .:
Per espandere la Micro'PlC Trainel è stato progettato
un connettore normalizzato chiamato PIC-BUS, che
€ontrollo di potenza per angolo di accensione dei triaa

Osrillatore

Micro+elè 0mron da 5 VDC

Alimentatore stabilizato

La Micro'PlC lO è adatta a risolvere Ie applicazioni


industriali inerenti al controllo dei motori, controllo di
potenza, gestione dei segnalì analogici, generazione di
treni d'onda, attivazione di relè. ecc. Una informazione
più completa su questa scheda e gli elementi ausrliari
che I'accompagnano, come il Manuale dell'Utente, il Accoppiamento mediante cavo piatto fra i connettori PIC-BUS
del sistema di sviluaoo Micro'PlC Trainer e la Micro'PlC lO.
dischetto con il software di appoggio, gli zoccoìi di

S*ra*wepe*$ gss €* p*sg*#e *e* $* tr*€


nella Micro'PlC lO è formato da due connettori identici , ', t", lt::-;; ' ., .,: .. 'rl, i..:,,t
a 26 pin, che si possono riconoscere a sinistra nella .: ,:'.,:;lt, t.i ::: :-f :ii:"i l:-',::::
fotografia. Utilizzando il cavo piatto accluso al sistema, ll controllo del motore a corrente continua è una delle
si collega questa scheda alla Micro'PlC Traìner, che sup- applicazioni più rilevanti dell'area industriale, per questo
porta il microcontroller PIC in cui è stato scritto il pro- è stato incorporato un motore DC nella Micro'PlC lO,
gramma di applìcazione, per permettergli di utilizzare le insieme a un circuito integrato che lo controlla. Si vuole
nuove risorse della scheda Micro'PlC lO durante la fase abituare l'utente a gestire il controllo della velocità e il
di messa a punto. La fotografia mostra l'accoppiamen- senso di rotazione di questi motori, con la tecnica della
to delle due schede. modulazione di ampiezza degli impulsi (PWM). Sotto
Nello schema elettrico del connettore PIC-BUS e l'asse del motore c'è un fotoaccoppiatore a forcella, che
delle linee di connessione esterna, si puo vedere che permettedi misurare la velocità angolare dell'asse del
CN2 (PIC-BUS 1) e CN3 (PIC-BUS 2) sono in parallelo, motore quando questo è accoppiato a un encoder.
quindi possiamo usare uno qualsiasi dei due, cioè pos- Come possiamo osservare nella fotografia, per realizzare
siamo collegare simultaneamente le tre schede: un semplice encoder, basta ritagliare un disco di mate-
Micro'PlC Trainer. Micro'PlC Trainer Plus e Micro'PlC lO. riale rìgido trasparente. tipo plastica, e perforare il suo
centro per poterlo accoppiare all'asse del motore. Sulla
superficie circolare del dìsco vengono dipinte diverse stri-
sce radiali nere, o opache ai raggi infrarossi. ll numero
RD
m
u0
M]
w
M3
w
w
RM

R82
RB
M
RB5
&
R87
RCo
RCt
RC2

M
Rg
M
Rg
RD

Schema elettrico del collegamento dei connetfori che


supportano i segnali del PIC-BUS.

Posizione del!'e.ncoler del motore a corrente c?nùn.ua

delle strisce determina Ia risoluzione dell'encoder. In


questo modo con una sola striscia, si produrrà un impul-
so ogni giro dell'asse, mentre se ci sono quattro raggi,
per ogni giro dell'asse del motore si genereranno quat-
tro impulsi. Nello schema della seguente figura è rrpor-
tato il collegamento del fotoaccoppiatore. che rileva i

passaggi dei raggi opachi dell'encoder. ll fotoaccoppia-


Collegamento tramite i connettori PIC-BUS tore a forcella è il modeìlo N21A1, e il diodo emettitore
della Micro'PlC Trainer, la Micro'PlC Trainer Plus e la Micro'PlC IO
è permanentemente attrvo. per cui il transistor ricevito-
P74

Nello schema a blocchi riportato in figura sono rappre-


sentati ì quattro canali capaci dì fornire una corrente di
uscita di 1 A. Ogni canale è controllato da un segnale
di ingresso TTL, e ogni coppia di canali dispone di un
segnale di abilitazione che scoìlega le uscite del mede-
srmo. ll segnale di controllo EN'1, attiva la coppia dì
canaliformata dai driver'l e 2. EN2 attiva idriver3 e4.

ENI
Schem a del col I eg a m ento
del fotoaccoppiatore per I'encoder del motore. tNl
OUTI

re è saturo. Ogni volta che una striscia taglia il raggio


di luce siottiene un impulso che si applica ad una linea
di ingresso del PIC per il suo successivo trattamento.

:.': , '

Per controllare il motore DC si utilizza un circuito di eccr-


tazione, o driver tipo push-puì1, a quattro canali integra-
ti sullo stesso chip 12938 di SGS-THOMSON, le cui carat- Schema a blocchi dell'12938.
teristiche piu importanti sono indicate qui sotto.

Le uscite OUTn sono associate ai corrispondenti


ingressi lNn. ; segnali di uscìta sono amplificati rispetto
Corrente di uscita di picco da 2 A per canale a quelli di ingresso sia in tensione (fino a + Vss) che in
'1A).
corrente (fino a

Alimentazione per il carico ,lata dall'alimentazione di controllo Nello schema della figura è riportato il controllo dei due
motori DC che girano in un verso unico. Ml si attiva
Protezione con 'o le sovratemperature
con livello 0 applicato all'ingresso, mentre M2 lo fa
applicando un livello '1 all'ingresso B, come si puo veri-
Nella figura è riporta' rra predinatura del driver ficare nella tabella della verità. Un altro schema mostra
12938 insieme alla sua ro renclatura e descrizione.

PIN v| IE DESCRlzlONE --r--T-


I El. Abilibzione dei conoli ì e 2
543 2l
2 tNi Ingresso del conole ì

. ENI
3 OUT Uscib del conole ì
lN4 4 GND Mosso dell'olimenmzione
: tNl ._ 5 GND Mossq dell'olimentozione

::4;"
i out4 6 cut2
owt Uscito del conole 2

, GND 7 tN2 Ingresso del conole 2


cr.ro I
'
r
GND
OUT2
GND
OUT3
tN3
9
lo
Ir
VDD
ENz
tN3
ouT3
Alimenhziore del corico
Abilitozione dei conoli 3 e 4
Ingresso del conole 3
Uscilo del conole 3
f
É_+_ T T,
, lN2 12 GND Mosso dell'olìmentozione
EN2
13 GND Mosso dell'olìmeniozione
t4 0uT4 Uscih del conole 4
t5 tN4 Ingresso del conole 4
ló Vcc Alimenbzione o + 5VDC

Piedinatura dell'12938 e descrizione dei suoi aiedini Controllo dei due motori DC che qirano in un unico verso.

t.;,o .,,.'1-',,,';, .
.,; t,
5:ffi*:l
TNICROCONÍROLtER

verità. Quando il segnale ENABLE riceve


VinhAMlBM2
un livello 0 da qualsiasi uscita del PlC, il
-- r'._..:-.-t1.--.r motore si ferma, indipendentemente
H ì L i Rorozione _ ,__j--__L_ i.l'::g-"::-efd-C-!"g!,n:g-'.9 _. ., ,,1 dallo stato di lN'l e lN2. E proprio attra-
t i X , Motore scollegoto. rotozione libero ; X j Motore scollegoto, rotozione libero j verso questo ingresso che si puo applica-
L:Livello "O"; H=Livello " 1 "; X=lrrilevonte i re un segnale con modulazione di
Tabella della verità per rl controllo dei due motori DC che girano in un unico verso. ampiezza di impulsi (PWM), che permet-
te di regolare la velocità di rotazione del
motore in un verso o nell'altro. Un segna-
il controllo di entrambi i versi di rotazione del motore, le PWM è un'onda quadra, in cui il tempo di perma-
mediante due canali dell' 12938. Se l'rngresso C è a 0 nenza del livello a 1 si puo variare. Tanto maggiore sara
e quello D e a 1, il motore riceve una certa polarità che il tempo del livello a 1, piu tempo resterà attrvato il
lo fa girare in un verso. Cambiando i livelli logici degli motore che girerà più velocemente.
ingressr C e D, si produce la rotazione in senso contra-
rio. Se entrambi gli ingressi sono allo stesso livello logi- i
co, si produce un arresto rapido del motore. j

Nello schema della figura successiva è riportato il rNl .

,
rN2
collegamento del motore DC alla scheda Micro'PlC lO. -i*"-

Controllo di un motore DC nei due versi di rotazione Tabella della verità del motore DC della Micro'PlC lO.

Isegnali lN1 e lN2, provenienti da qualsiasi linea dell'u- l":- i;iii.'i-l++'qír


scita del PlC, ricevono i livelli logici che faranno girare il ll kit della Micro'PlC lO è accompagnato da un com-
motore in uno dei due versi secondo la tabella della pleto e chiaro manuale dell'utilizzatore. così come
da un dischetto che contiene un insieme di progetti
da realtzzare con la suddetta scheda. In ognuno di
questi sono esposti con abbondanti commenti gli
obiettivi, i dispositivi di materiale necessario e il
listato sorgente del programma del compito. Per
maggiori informazioni si raccomanda di accedere
alle pagine di Internet di "lngenierÍa de
Microsistemas Programados " nel sito
S.1.
www.microcondroladores.com. Tutti gli esempi
sono preparati per essere eseguiti su un PlC16FB73,
della gamma medìa, che studreremo a fondo più
avanti, perché dispone dello stesso repertoro di
istruzioni del PIC 16F84. La cosa più interessante sta
nel fatto che sono state aggiunte risorse molto
importanti come il convertitore AD e DA, PWM,
Collegamento del driver 12938 e del motore DC della Micro'PlC IO.
comparatori, catturatori di segnale, ecc.

#*rwmeae*€ p*r $É pr*ge*** **xa *A F**


P75

Applicazioni
detl,a Micro'PIC I0 (il)
zata di +5 VDC per la circuiteria elettronica generale,
: la;; '., tt i,t, i,',,'t:t : ,': .::..", :,..1r .',: mentre il secondo genera 12 VDC che si utilizzano prin-
Nelfascicolo precedente abbiamo iniziato lo studio della cipalmente nell'alimentazione del motore DC.
scheda di esoansione Micro'PlC lO e la sua sezione di
:,t .t . '.: 't, ' ,; ,, i"l ,,'.,t1'
controllo del motore a corrente continua. Questa sche-
da dispone anche di altri interessantissimi dispositivi, che Produce un segnale a onda quadra, la cui frequenza
permettono di emulare in tempo reale i programmi di principale si puo selezionare fra otto possibili valori, e in
applicazione comune nelì'industria, eseguiti sul PIC che seguito, si possono ottenere fino a otto sottomultipli del
supporta il sistema di sviluppo Micro'PlC Trainer che è valore scelto. Lo schema elettrico della figura mostra che
collegato con la Micro'PlC lO tramite il connettore PIC- il circuito è basato su un PlC16C54RC (U3). ll firmware
BUS. del microcontroller è stato progettato da "lngeniería de
La Micro'PlC lO dispone dì un alimentatore proprio, Microsistemas Programados S.1.". ll segnale ENABLE
quindi è sconsigliabile alimentarla tramrte l'ingresso di abilita o disabilita la generazione di onde quadre. Se
tensione +5 VDC che arriva attraverso la linea del con- questo ingresso è a livello '1 o non collegato, fornisce ai
nettore PIC-BUS tramite il sistema di sviluppo. Questo ci suoi ingressi le frequenze corrispondenti. Quando que-
permetterebbe di fare a meno del trasformatore, pero il sto ingresso è a livello 0, il generatore resta scollegato e
motore DC non avrebbe l'alimentazione di '12 VDC. tutte le uscite si pongono a livello 0.
Inoltre non potrebbero funzionare nemmeno ìl circuito Mediante i tre microswitch di SW1 sì seleziona, fra
di rivelazione del passaggio pello zero, e l'optotriac per otto, il valore della frequenza campione che si ottiene
la regolazione alternata. Questr circuiti necessitano di dall'uscita X. Le uscite x/2, w4, x/8, w16, w32, w64,
una alimentazione indipendente di corrente alternata. ll )0128 sono dei sottomultipli della frequenza scelta. ll
ponte raddrizzalore D1 dell'alimentatore, insieme a C1, diodo D2 sull'uscita )V128 visualizza ll Íunzionamenlo
configura il circuito di raddrizzamento e filtraggio. La
tensione così ottenuta si applica agli stabilizzatori 7805
(U 1) e 781 2 (U2). Il primo fornisce una tensione stabiliz-

x{128
x/64
x/32
x/16
x/8
xl4
x/2
x
ENABTE

Schema dell'alimentatore della Micro'PlC lO Schema elettrico del generatore di funzione

i
del generatore. Lampeggia quando lavora a frequenze , t,, ;r,..it,liir i:; :t::i',i .ti..i':,i , ,. l. '; ,; iilr;,..;t ;,t,::;a
piu basse. Per il resto delle frequenze sembra rimanere l : , ,.'' l' l'': !,; !, ! ,: i :: ::; :.'l
acceso in modo permanente. Nella tabella della figura La Micro'PlC lO possiede due sensori analogici, uno
qui sotto sono indicate le distinte frequenze ottenute misura la luminosità e l'altro la temperatura. Entrambi
all'uscita, in funzione dello stato dei microinterruttori di sono alimentati da una tensione dr rrferimento di 2,5
SM/1 la freorenza massima è attorno ai 200 KHz e la VDC, come mostra lo schema della figura. Come gene-
minima è di 'l KHz. ratore della tensione di riferimento, è stato utilizzato
LM33622.5 (D4) di
National Semiconductor. E

basato fondamentalmen-
te su di un diodo zener da
2,5 VDC. Tramite la resi-
stenza di assorbimento
R7, si alimenta da +5VDC,
ottenendo ai suoi capi 2,5
VDC generando quindi la
tensione di riferimento
\/ref chp si nrro annlirerp
.^.i sr ue5ruetd,
5e A^.t.J^"- -il-
dild ti,
ilnea
RA3/AN3l/REF+ oel
Tabella con le frequenze fornite
PIC'l6F87x in modo che
dal generatore di funzioni a seconda della posizione dei mrcrointerruttori di SWl
sia utilizzata nella conver-
sione AD.
.i ll sensore di luminosità è formato da una cellula LDR,
La funzione principale di questo circurto è fornire impul- che ha in serie la resistenza R5. La tensione che alimen-
si di elock ai temporizzatori o timer di cui dispongono i ta questo divisore può provenire da 5 o da 2,5 VDC, a
microcontroller, che realizzano misure di tempo. Così, seconda della posizione in cui si trova il lumper JP2.ln
ad esempio, il TN/lR1 della famiglia PlC16FB7x puo uti- questo modo sulterminale "Luce" dello schema si ottie-
lizzare come base dei tempi ìl segnale fornito da un ne una tensione che varia fra 0 e 5 V oppure, fra 0 e 2,5
oscillatore esterno. In questo modo l'overflow del TMRl f utilizzatore
V. a seconda della luce che incide sull'LDR.
si puo ultlizzare per risvegliare un PIC che si trova in deve preoccuparsi che la tensione che alimenta questo
stato di riposo. Come mostra la figura e stato scelto un
Lr r)Loilu .Ji
-.,.+^|^ ^,,-.-^ ud
ur Lluor4u ^- 32,769 KHz, poiché è un valore
molto speciale. In concreto si ottiene un tempo pari ad
un secondo, quando sì conta un valore degli impulsi che
e uguale alla potenza 1 5 in base 2 ed e la base npr tr rtte
le aoolicazioni orarie.

c5
rtH Troso
27pF

rl
H27 pF
Tr osr

Schema elettrico Schema elettrico del generatore di tensione di riferimento,


dell'oscillatore da 32,768 KHz che alimenta i sensori di luminosità e di temperatura.
divisore coincida con la tensione di riferimento a cui ne saturo, e la tensione sul collettore è 0V Tramite il
lavora il convertitore ADC del PlC. In nessun caso la ten- connettore "ZEROCROSS" si ottiene un impulso positi-
sione dì riferimento può essere minore della tensione vo ogni volta che il segnale alternato arriva a valori intor-
analogrca di ingresso da misurare. ll sensore di tempe- no allo 0 V come è rappresentato nell'oscillogramma
ratura è il modello LM35D (D3), e su uno dei suoi ter- della figura. Questo impulso si puo utilizzare per provo-
minali si ottiene una tensione " T"" che è proporziona- care un interrupt nel PlC. Nella figura si offre un semplr-
le alla temperatura esistente. Fornisce una tensione di ce schema per la regolazione delìa po'tenza alternata
'10 mV/'C e il margine ditemperatura a cui puo funzio-

nare è compreso fra -55' e 150"C. i=Éj


Neìla configurazione impiegata nella scheda
Micro'PlC lO il range dr temperature è compreso tra 2 e
&móryr | ru'-yr
150"C. Quando si alimenta il sensore con 5 VDC per la NdFé=
Dok= lr/12/99
| lr/12le9 p.r.
nne= ì0rs:ll p.r.
I l0:rs:ll
temperatura massima permessa di 150'C, rl sensore YS.de= 20 V/Dv | 2 V/Dv
YAr 50%= -30,4 V
| 3,ó3 V
fornisce '1,5 V sul terminaìe "T"", xaro%= .0,4fr' | -0,! m'
xsize= 25oEr2l
I zsourz4V
Mo^imlm = ì3 | 4 eó V
I oav

: ta' .,

x2

Una grande quantità di


applicazioni industriali sono
derivate dal controllo e dalla regolazione della potenza T2
0,0 v

alternata che si aoolica ad un carico. Nella Micro'PlC lO


sono utilizzati per questo compito dei circuiti elementa-
ri ed è necessario conoscere l'istante ìn cui la corrente ri",.J.,,".- ",." ",.".-,{
alternata passa per lo zero e disporre di un segnale pilo- ma del la ri levazione
Osci I log ra m
del passaggio dallo zero della tensione àlternalò.
ta che si attivi quando awiene questo passaggro. ll cir-
cuito base e mostrato nella figura.
La tensione alternata, che arriva da un secondario di
un trasformatore del vaìore di 12 VAC, e applicata al
^^^+^
PUI "-^r-r.i---+^.^ UJ.
ILE lOUUll44OLVrg ^5. )Wt terminale
SUI Lqrrrrrrrorq uJ di guLJLv
D5 ur nrresto
ponte si ottiene un ìmpulso doppio di 100 Hz, pari ad
una frequenza di rete di 50 Hz. Questo segnale siappli- :

ca al diodo emettitore del fotoaccoppiatore 4N33 (U6). :

Ognivolta che il segnale vale 0, iìtransrstor ricevitore di


questo fotoaccoppiatore resta bloccato, e la tensione
del collettore sale sino a +Vcc. Quando l'impulso di i., .'
ingresso ha un valore diverso da zero, il transistor rima-
Regolazione della potenza alternata
in un carico resistivo, che in questo caso e una lampada

-^^li--+-
apprLcLo o^ ,,^ -^.,-^ .^
ur Lcr,.. ,=sistivo, come può essere una lam-
pada. Un livello 1, che arriva daì PIC sul terminale
"TRIAC" dello schema, attiva iì diodo emettitore del-
l'optotriac MOC3041 (U7) che provoca l'innesco del
triac, facendolo condurre e applicando la tensione alter-
nata al carico, che nel caso della scheda Micro'PlC lO si
tratta di una lampada ad incandescenza (LP1)
La potenza dipende dal momento in cui si porta in
conduzione il triac, appìicando la tensione di innesco
Schema del circuito uttlizzato tramite l'ingresso "TRIAC". Questo istante prende come
per il controllo della corrente alternata
riferimento il momento di passaggio per lo zero, che si
produce ogni 10 ms. Se l'innesco dell'optotriac si pro-
duce nel momento del passaggio per lo zero, si dice che Sono perrferiche di uscita molto facili da controllare tra-
l'angolo di innesco e 0'. La potenza che si applica al mite qualsiasi ìinea di uscita del microcontroller. Basta
carico è la massima nei due semicicli. Se l'innesco del un semplice circuito di eccitazione per pilotare la possi-
triac si produce a 5 ms del passaggio per lo zero, si bile attivazione delle bobine incaricate di aprire o chiu-
applica la metà della potenza totale al carico. Se l'inne- dere i contatti, come si vede dalla figura. I relè impiega-
sco si produce a '10 ms dal passaggio dallo zero, abbia- ti nella Mrcro'PlC lO sono due, le loro bobine vengono
mo un ritardo di 'l 80" nell'innesco e il carico non riceve alimentate con +5 VDC e i loro contatti sono doooi e a
ootenza. In altre parole controllando il ritardo con cui si due posrzioni (DPDT). Un livello logico 1, applicato ai
produce il segnale di innesco,
prendendo come punto di riferi-
mónt^ il qonn:lo di passaggro -, r

per lo zero, si controlla la poten-


__ +^+_t^ _t-^ -i OVVilLO
zd LULOTC Lr rE )r -^^ti__ al CariCO:
ilil I"i+-"r^
TLOTVV ^,,À
,,-"i-"^ *fa 0 e 10
PUV VOr rOrq L

m< rho rnrricnnnda: ,-, - un ango-


lo di ritardo da 0' a 180', rispet-
tivamente. Nella figura è ripor-
tato un oscillogramma che illu-
stra la tensione alternata di
innressn e la tensione reale
applicata al carico. Si applica al
carico solo la metà della poten-
za di ogni semiciclo. L'angolo di 'i

ritardo è di 90", che corrisponde


Circuito di eccitazione dei relè
a un'ritardo di 5 ms.

connettori "Relè1/Relè2", in arrìvo da qualsìasi


linea di uscita del PlC, fa sì che si attivi il corrispon-
dente relè. ll livello logico O produce un effetto con-
trario. Questo livello si applica alla base dei transi-
stor Q1/Q2, mediante le resistenze di polarzzazto-
ne R12lR14. Ouesti transistor lavorano in commu-
tazione. Quando stanno conducendo, la loro ten-
sione sul collettore Vce e praticamente zero. ldiodi
D6/D7 , collegati ai capi delle bobine, dissipano le
correnti inverse che si originano ogni volta che
viene tolta tensione. Ogni relè ha un doppio con-
+î++^ ^ V9rrr
LOLLU q -^^+-++^ Le u: uuL
^^^i LVTTtOLLU nosizioni vrl
drre vvJr4rvril. llnO dei dUe
rnnielf i ci rrtilizz:
nor :if irrero i I Fl-l niln+2 D7/D9,
che monitorizzano lo stato di ogni relè. Il LED illu-
minato indica che è stato attivato il relè a cui fa
riferimento. L'altro contatto del rele e a disposrzio-
ne dell'aoolicazione dell'utente tramite due morset-
tiere a tre contatti ognuna. Un relè a riposo man-
tiene chiuso il contatto Cx-Ax, mentre Cx-Bx rima-
ne anerto Frritando la bobrna del relè si cambia lo
Esempio di rnnesco del triac >LdLU
r: LlUtr)tl
-+-+^ Ul -^^+^iti.
^' '--+i LUI Ora L^-H^
LdLLL UId Cx-Ax llllldllC :nertÒ Ltr
rimane upLrLv
con ritardo di 90", che corrisponde a un itardo di 5 ms.
Cx-Bx chiuso.

ij,ll:;
i::i t,:": t':,"'ri; i',;'4 11j,,1'!ii -1'r1 :.lr ir:t;rr:.-" '''iit,i:; I .

@]M,!W@Rl]*Rn@s|*lRWsìlslfÍti|FW]s]stÍf]&ÌtWfi&,},ffiWW
Appti cazioni con [a scheda di
controll,o MSx84
i;i.irt, li;í"i'liií.i:il ,trlli'riri,lí,li*ll sensori digitalidi ingresso.Questecaratteristichesonoti-
In precedenza sono stati descritti i sistemi Micro'PlC Trai- piche in molte applicazioni industriali e la MSxB4 è indi-
ner Plus e Micro'PIC lO. composti da schede che espan- cata per quattro tipi di impiego, che si adattano bene al-
dori:nn lp ricÒr<o o lo rrossibilita del sistema di sviluppo i le sue caratteristiche e che sono elencatì nel riquadro.
Micro'PlC Trainer. Con la scheda di controllo MSx84 il
iLir ii' |1":" ;1rii ? i É'' lirii;l;í.lt.l'rii.ii
suo costruttore "tngeniería de Microsistemas Programa- I i-iil'niii;'1";4,i1iîl{-i:iii
,l- ,ti 1;7

dos S.L." ha perseguito un altro obiettivo: offrire all'uti- i Net riquadro allegato possiamo notare le specifiche più
lizzalore una scheda autonoma e indipendente che in , rmportanti della MSx84.
base ad un PIC'16F84 sia caoace di oilotare lo stato di due
.-
motori DC o di uno passo a passo (PAP) e fino a cinque : ll*:------ti_xii**"*ffiilffi;fri;-=-.,*'.:-.
:

1, -"*.l ** I I i*-;il;;;;; ;;;;;i;;;; rs vAC;;;;;;' i

#.:;;:]:;;1;;-.=-,=:i;--==-:...===]===-::'::.
. Circuiti di controllo bosoti sul PlCtóF84
iì - -..***'-'---- i
i . Conneitori per l'opplicozione di 5 sensori ì

I
**-- dir-r----'---"ì:"'*:*--*-".-*-::"-.***-=':*:"::-*"***:;:*"*-**--1
ingresso

i -,.-.:--*Pti"--.*:-r]l-s-'i-"-r.:r--"-llq-dl-d-v-:,-ry1-si-?9..e.:"1:-1.41-----*-i
,1 . Conr"tto.e di esponsione Pic-Bus che Permelle di espondere :

! l" ,r" risorse, e di collegorlo direftomenfe ol sistemo


i di sviluppo Micro'PlC Troiner, per reolizore
Fotografia del microrobot PICBOT-2 basato sulla M5xB4 j lo -"rro o punto 'in-circuito', così come lq scritturo del PlC.

"'". 'i"i

l' Monipolozione dei sensori di ingresso che permetfono ;

lo sperimentozione con differenti tecniche per lo rilevozione : ,r

di fronti, eliminozione dell'effetfo rimbolzo,


misuro dello dimensione di un impulso,
impulso, ìl
ecc.
misuro dello frequenzo, codenzq fro impulsi ecc. ì
Ì

2" Cmlrollo di motori DC cm ozionomenlo digitole tutio o nimte,


tecniche di PWM, controllo del verso
di rotczione. retrocziiane; poiiziilromèrrio, étc.
:i
3" Controllo di motori PAP.

4- Microroboticc. Lo MSx84 si odotto perGettomente


olle necessito di un microrobot. Può controllore direliomente
due motori D€ e sino o 5 sensori che roccolgono
ínfomozioni doll'ombiente, ln bose o quesio xhedo
il costrutlore ho progeltoio il micuobot commerciole PICBOT-2
che consiste in uno slrutturo di metocriloto
i. ,,. ,,,,. ,,,,..,,.,
che supporlo lo MSx84. due motori DC e vori sensori.
Seigrafia del circuito stampata della MSxB4

a.rwffi ntììììììììììììììììììììììììììììil1Ììlrl
Nella figura della pagrna precedente À .;^^"+-+-
E rl.JUr LOtd l- rd VAC derivanti dal secondario di un trasformarore esrer-
.+.'a^î+^
TPOLU, .J^,,^
UUVC -i ,,^-J^ l- ut)LI
serigrafia del circuito JLOT )l vEuc tc ^li-+.i t- no. ll ponte rettificatore, composto da D1 e C1, ha il
buzione di tuttÌ i suoi componenti. compito di rettificarla e filtrarla per ottenere una tensio-
ne di '12 VDC, che si stabilizza a 13 VDC grazie al rego-
latore 7812 (U4) piu la tensione dei diodi D2-D5. SW3
applica questa tensione al controllore dei motori (+VBAT)
e anche al regolatore 7805 (U5), quindi sul piedino 3 si
ottengono +5 VDC, che sono applicati al circuito elettro-
nico. ll diodo D6 monitorizza questa tensione. falimen-
tatore funziona anche a00licando una tensione di cor-
rente continua derivata da una batteria tramite il con-
nettore J5. Chiudendo SW3 si applica questa tensione a
+VBAT e al regolatore 7805, per ottenere +5 VDC.

Fotografia della schecia cli controllo MSxB4.

Qui sotto sono descritti i quattro blocchi di cui è


composta la MSxB4.

20, Sezione del microcontroller

40, Sezione del controllo dei motori Schema della sezione del mtcrocontroller PlCl6FB4

La MSxB4 è totalmente autonoma, perche dispone di Nella frgura è riportato lo schema del collegamento del
un propno alimentatore Nella figura riportiamo lo PIC 1 6F84, cuore e cervello della MSxB4. ll quarzo Y1 in-
schema elettrico del medesimo. Tutta l'elettronica della sieme ai condensatori C7 e C8, genera la frequenza di
scheda funziona con +5 VDC, che si ottiene a partire da funzionamento di 4 Mhz. ll circuito di Reset è formato
una tensione alternata di 12 VAC, o da un insieme di dal pulsante SW2 e dalla resistenza R11. ll connettore
batterie. Mediante il connettore .18 venqono forniti '12 Pic-bus e compatibile 'pin-to-pin' con quello del sistema
di sviluppo Micro'PlC Trainer. Tramite esso tutti I segna-
li del PIC sono a disposizione dell'utente. Questo per-
mettera di collegare e/o aggiungere altri tipi di periferi-
che tra quelle supportate dalla scheda MSxB4, così co-
me programmare il PIC della MSx84 senza estrarlo dal-
D3
to zoccoto.
tMou :
c2

, I' I : .t 'r"l ) ::t :t .r


,f
I sensori sono i sensi del sistema per captare lo stato
dell'ambiente. Nella sezione "Sensori e Attuatori" ne
sono stati descritti molti, e in microrobotica quelli otticì
spiccano per la loro precisione, semplicità, efficacia, ri-
Schema del l' a I i mentatore
dotte dimensroni e prezzo.

m
ll modello CNY70 e il H2'1A sono ipiù popolari. ll KC
AE
primo contiene l'emettitore e il ricevitore ad infrarossi,
cansula ed p idpalp npr rilcv:re cambi di
nella stessa LqvJuru,
tono sulla stessa superficie. La luce emessa dal LED ri-
flessa dall'oggetto viene rrlevata da un fototransistor. ll
contenitore a forma di U del H21A ha l'emettitore se-
parato di tre millimetri rispetto al ricevitore, però en-
trambi sono alla stessa altezza, in modo che il raggio di
ìuce emessa colpisca il fototransistor. E l'rdeale per rile- Controllo di velocità e verso del movimento con due sensori CNY70.
vare oooettì che franoonendosi tra l'emettitore e ìl ri-

rrnrr:nlrn norn
i+r a
+Vcc
--.\ o o))ut
)dt ---^"F utLo E,

quindi, il foto-
transrstor non n-
ceverà luce. Se
coincide con un
riquadro bianco
si rifletterà sul ri-
cevitore, cam-
biando il livello
./
logico della sua
uscita. Nella figu- Schema di collegamento di un sensore
.-
Id -, ,--^--i,,^
)ULLtr))IVd -^
)U_ ottico ai pin di ingresso del PIC
Conten itore e disposizione
degli elementi dei sensori CNY70 e H21A no utilizzati due
sensori CNY70
per conoscere non solo la velocità del nastro trasportato-
cevitore, taglìno il raggio di luce, come si vede nella fi- re, ma anche il verso del movimento. Lo schema della fi-
,rr I ln'rnnlirrziana inir: Uql
dol )Ell)uls 14 1l^A L
<on<nro Il--.1? o nr roll: gura mostra i collegamenti tipici del sensore ad infrarossi
9UId. Ull dPPilLO4rUr rs fLrPllO
^, vuLilu
di implementare un circuito di misura della velocità an- con i pin dr ingresso del PlC.
golare di rotazione dell'asse del motore, in base a un Per poter gestire sino a cinque sensori digitali di in-
encoder formato da un disco trasparente con raggi ra- gresso, la MSxB4 dispone di un circuito il cuì schema è
uruil onachi come prLJ(j|
diali vpulr nrec^^+-+^ ^^rr- fi^,,.-
ILdLU llElld llgulO.
.înOSCendO
!U mostrato in figu-
il numero di raggi si determina il numero di giri che ha ra e nel quale :
dato l'asse. Nella figura si presenta una possibile appli- posstamo veoere
t,^--^-;--i^^^ tc f.-
cazione del sensore CNY70, che consiste in un nastro I d))uLtdztut rro
trasportatore con il fondo formato da riquadri neri e iconnettori dei ';

bianchì. Quando la luce dell'emettitore coincide con un sensori di ingres- ',

KC
AE

Esempio di applicaztone Controllo di velocità di un nastro Schema della sezione


del sensore ottico H21A trasportatore con un sensore CNY70 degli ingressi digitali della MSxB4.
,J-
so, imicrointerruttori e le linee del PlC. ll sensore colle- rrorrE uo
^--;^ -^^ti-^-^
dPPrlLdlc dr
-l
1 MoroREpAp
gato a J4 resta associato alla linea RA4 del PlC. Questa drrver 12938, in rno-
linea funziona come ingresso degli impulsi TOCKI del do che sr attivino le oo----l" ,^.
temporizzatore TMR0, il quale quando funziona in mo-
do contatore di eventi, può contare il numero di impulsi
ricevuti da questo ingresso, permettendo misure di fre-
quenza, dimensione di impulsi, intervalli fra impulsi, ecc
;:ijffi..;:;i:r
struttore, riportate
;*?(ry t,
1.[\
fi-
tvDJ
À
nella tabella della J
jl i: rrl,i+ ii
ir I i_ il r.l r!'ria * l. :_i,] i.: i;.1 i,,1 i.ll'f.: ì;
Ì+ i gura.Permaggiori ;
r.,..,,,,.,.,.-,...,.",,.".....,.,,.,,.,..,,.,,..,,,",...,.,,",".,.,,,..,,:;
Uno dei principali impieghi a cui è destinata la MSxB4 informazioni tecniche
schema di collegamento di un
e quello del controllo di due motori DC o uno PAP A sulla MSxg4, consi- untn;ota.11.
questo scopo utiìizza il driver L2938, il cui funziona- gliamo di consurtar yo:o,:".'!P
mento e le applicazioni al controllo di motori DC e sta- ,, n:nino rha il rncf
le r-y,, "rr rttnro
h: ma<<n e r{ic
-,-postzione
to oggetto di studio del capitolo precedente. In questa nel sito nternet www. m icrocontroladores. com.
I

sezione studieremo il controllo di un motore PAP, lo


schema di questa sezione è riportato qui sotto.
La linea RAO del PIC tramite l'interruttore 6, si ap-
plica al segnale lNl e, mediante l'inverter U'lF, al segna-
le lN2 dell'1293B. Questo segnale pilota le uscite OUTl
e OUT2 che controllano il motore M'1. La stessa spie-
gazione vale anche per la linea RA'l del PlC, che pilota
OUT3 e OUT4 per il motore M2.

;: ;; : o' ;; i;, u; u',,,;;


n

di un motore PAP a quattro fili con la MS B

Schema della sezione di controllo dei motori della MSxB4 ,.'',,..:


SENSO ORARIO

Per quanto riguarda il controllo dei motori PAB es- nA3 RA2 RAl RAO PASO Hl+(A) fr{l-(B} Ar2+{C} m:l-(D}
llltl+-+
si possono avere 4 o 6 cavi, a seconda se sono bipola- illl0lr-i
ri o unipolari rispettivamente. I quattro cavi di quelli bi- llOO3+-+
polari, corrispondono agli estremi delle bobine di cui tlf04++
sono composti. Nel caso di quelli unipolari, quattro ca- WBffi'E'ffi ri*sffiffi
SENSO ANTIORANTO
vi corrispondono agli estremi delle due bobine, e gli al- RA3 RAi! RAr RAO PASO Ml+{A} Àlt{B} M2+(C} llr2-(D}
tri drro :ìlo nroqo informodio di nrro<to .^mÒ lllOf+-+
-,,,,- sr puo ve- llOO2.++
dere nella figura. tlllg3+-+-;
La figura successiva offre lo schema dr collega- ill!14-++-,.
mento di un motore PAP a quattro cavi alla scheda Ì'-"-'.' -': '--:" - ;

MSxB4. La bobina L2 si collega ai morsetti segnati co- Tabella che indica i valori btnari
me M2, e la bobina L1 a quelli M'1. Tramite le linee che devono assumere le linee della porta A del PlC, per ottenere
il senso di rotazione adeguato.
RA3 e RA2 del PlC, si ottengono le combinazioni bi-

ii:: ,t': ii:i n!r: 'tt t ttt':':l


rrlìrÌììììììììììììììììììììììrililr1ii:ililiririì.. ':: ,.....4;;;;nì;ìì;;;;l;a;a:.:iaa.,:...:......),..)....,....)...)))t:\N1
Display a cristalti
liquidi LCD
::.|:||":..ì-.::.,.'1.....1::;..;.:.,.''..:.: no, perciò maggiore è l'illuminazione ambientale, più
ldisplay a cristalli liquidi LCD, sono iterminali di visua- elevato è il contrasto dell'informazione presentata.
lizzazione più utilizzati neglì strumenti basati su mtcro- Un tipico settore di applìcazione dei display LCD è la
controller; il loro compito è presentare informazioni, va- strumentazione. La maggioranza degli strumenti di mi-
lori o qualsiasi altro tipo di dato. Uno dei primi prodot- sura utilizza un LCD per visualrzzare i dati. È il caso del
ti in cui sono stati utilizzafi gli LCD su larga scala sono multimetro, che si puo considerare lo strumento più co-
state le calcolatrici digitali, come quella mostrata nella mune nei laboratori di elettronica, e di cui riportramo
figura. una fotografia nella figura.

i-rffi

Le calcolatrici sono state


ll tester è attualmente uno degli strumenti
il primo prodotto a impiegare i display LCD su larga scala che piit utilizza visualrzzatori LCD

ll display LCD consiste in un condensatore planare Nei multimetri digitali, è molto frequente l'utilizzo di
formato da due placche metalliche, una delle quali e display LCD a tre digit e mezzo, come quello che si ve-
talmente sottile da risultare trasparente. Fra queste de in figura.
placche si trova un dielettrrco isolante, che è un cnstat-
lo liquido in fase nematica. Quando non si applica ten-
sione fra le placche il cristallo rimane trasparente, ma e
sufficiente applicare una piccola tensione, in mooo cne
si generi un piccolo assorbimento di corrente, per pro-
durre una variazione nelia riflessione e nella rifrazione
della luce, tale da rendere opaco il cristalio.
Una delle principali disfunzioni a cui sono soggetti i
diodi LED, si riscontra quando c'è molta luce, perche
questi si distinuguono meno. specialmente se la lumi-
nosità dell'ambiente è grande. Invece nei display LCD Struttura di un display LCD
succede l'opposto, utilizzano la luce ma non la qenera- da tre digit e mezzo, utilizzato nei multimetri digitali.

., lr
Oltre agli strumenti di misura e le calcoìatrici, esisto-
no molti dispositivi che utilizzano gli LCD, fra cui ricor-
diamo i telefoni fissi e mobili, le agende elettroniche, le
macchine fotografiche. i distrìbutori automaticì, i pan-
nelli di comando dei veicoli, ecc.
Come esempio di una semplice applicazione, pre-
sentiamo nella fotografia sottostante un termometro,
che dispone di un sensore di temperatura esterno, col-
legato tramite un cavo di una certa lunghezza, che per-
mette dì misurare la temperatura all'interno di un fri-
gorifero, fuori dalla casa, fuori dalla macchina, nell'ac-
qua, ecc.
ln questo termometro si ufilizza un display a tre di-
ait c mozzo tino
g llls44v, ttvv SP52c
Jt JLJ' rha he drra filo di niof,in1, g 6hg
9lt
ha bisogno di trovare sul circuito stampato due connet-
Aspetto dei collegamenti della scheda del termometro
tori da 20 pin cadauno, per il proprio sostegno, come si che sostiene l'LCD con il sensore di temperatura e la batteria
può vedere nella figura in basso.
lnfine il sistema di sviluppo Micro'PlC Trainer, uti-
lizzato per supportare lo sviluppo completo dei pro-

Termometro che supporta il display LCD. tl sistema di sviluppo Micro'PlC Trainer utilizza
un display LCD come principale terminale di visualizzazione

getti basati sui microcontroller PlC, utilizza come


terminale principale un dispìay LCD da due linee con
16 caratteri ognuna, come si vede nella fotografia
della figura.

l"] 9:5il ÉiE,i:.i L.: lj +: l"F, {. FJ ti:,i:i


I display alfanumerici hanno la capacità di visualizzare
diverse Iinee composte da un determìnato numero di
caratteri. Possiamo trovare LCD da 1 linea per 16 carat-
teri,2 x 16,4x16, 1x20,2x20,2x24,4x 20 ecc'
Inoltre possono, o meno, avere l'opzione di una lampa-
da di retro-illuminazione, cìoè illuminazione da dietro,
Scheda del termometro che migliora notevolmente il contrasto dei caratteri in
che supporta il disPlaY LCD
ambienti poco illuminati.

:- . _.\6o - , *T,
t'"""-"-

Fotooyfya.1,,r, da z per 16 caytteri


lr? ly1ee

Per rendere l'idea, abbiamo scelto di descrivere un


LCD tipico, modello C-1602, da 2 linee per '16 caratte-
ri, la cui fotografia è riportata qui sopra.
Le misure dell'LCD selezionato sono approssimati-
vamente 100 x 42 mm, e la dimensione del display di
visualizzazione B0 x 20 mm.
| 16 terminali di collegamento del modulo LCD cor-
Vss Massa dell'alimentazione

rispondono ai segnali di controllo e ditrasferimento dei


dati, in accordo con l'assegnazione delle funzioni ri- ;

^^r+î+a ^^ll-
LO rq rEilO
+-l^.^ll-
LdUCild.
PWr
Nella figura della pagina successiva troviamo lo :

schema di connessione dei segnali esterni ai termina- Vo Contrasto del cristallo liquido.
Generalmente si collega
li dell'LCD. Fondamentalmente si dividono in segnali a un potenziometro che applica
di controllo, di dari e di retro-iilu- i
una tensione da 0 a +5 V

fl ;$il:r.ione,

Terminoli di collegomento 5 RAI/ Segnale di lettura o scrittura


R/W = Q, 561i11rr13' RM = 1, lettura dell'LCD.

7-14 D0-Di Bus dei dati bidirezionale

Dimensioni dell'LCD e del displav di visualizzazione.

t:j ,l
MICROCONTROLLER
CcrroHeristiche dei display tCD

L'insieme dei ca-


ralterì che si possono
z
R vtt
vedere nel display
LCD è riportato nella
3 voo
figura. ln essa le posi-
=
I
zioni indicate come
DATI
DO-DZ
CGRAN/ (n) corrispon-
dono a uno degli B
VO
possr0ilr
^^--iL.;li cararrer
--"-++^"i -
gra-
RS
f ici da 5 x 7 puntt che
R/W
nossono esserP lihera-
E
mente definiti dall'u-
tente. Questi caratteri
si definiscono intro-
ducendo nei successi-
vì indirizzi della
CGRAN/ dei byte con
schema di interconnessione dei,"gruti a'li ur)'*u,o ,ro
determinati parametri
binari. La CGRAM è
una memoria da 64 byte, di cui se ne utilìzzano B
nor do{inira
vqt ugtililrL
116
urrLuruL(clq J x7 e 16 se si tratta di un
1-,l62ffpro E

caraltere 5 x 10.

g&&.
xa&&.
E AN:SB *EXKr
E Antrn x&xx&
ingSn ffigxes
E &NIEE K&KMX
' rlsFt wK'xwffi XSKgX
SAgFI ffiK'X&&
gw&xK
. nt*EE WXKg& wxw€K
.

st#at &&xms &g&Kg


EEHgC SKXWK X&WKK
tnrÍnt gxgsg 6&mgx
,r:lrril&l&K&W &X&K& Kgxffiw
tEm56 En*66 gffiKKT
AET*g gEffiMM X&Kg'
rìrrrr..&K&K& KffiX&W *9ffi'

Matrice da 5 x 7 punti di due caratterr


sovrapposti, uno per ogni linea, con le drmensroni ptt) tmportantt.

Ogni carattere si rappresenta sul display LCD me-


diante una matrice di punti o pixel da 5 x 7. Nella
figura sono indicate le matrici dei due caratterì so-
vrapposti, ognuno dei quall corrisponde a una del-
lnsieme di caratteri ASCII del modulo LCD
le linee.
Ì:
í .
,.- '

Funzionamento
dei display LCD

Come abbiamo gia commentato in precedenza, il


display LCD è un visualizzatore di caratteri, sra di testo
che grafici, molto potente e flessibile, che si puo pilota- sus ort otorout

DATI
re facilmente tramite un microcontroller inserito all'in-
BUs DI
terno del prodotto. Nella fotografia qui sotto si mostra coNTROLLO
1E,Rs,R/w-)

la parte posteriore dell'LCD, in cui si può apprezzare la


sua struttura elettronica.

Schema dei collegamenti del modulo LCD

' ' '' 1 . ' :' , : . : :

Per pilotare un display LCD tramite un PlC, si utilizzano


1
'l linee di l/O digitali del microcontroller
Le otto linee della porta B (RBO-RB7) servono per
supportare i trasferimenti bidirezionali di informazioni
tramite il bus dei dati dell'LCD (DB0-DB7).
Le linee di controllo dell'LCD (RS, RA//# ed E) si pilo-
tano con le linee RAO, RA1 e RA2 della porta A rispetti-
Vista posteriore del display LCD pilotato da un
vamente, come si puo vedere nello schema seguente.
sstema basato su un microcontroller integrato sulla scheda

Nella descrizione dell'architettura del modulo LCD,


le linee dei collegamento esterno si dividono nei
seguenti gruppi:

Linee dei dati: BDO - BD7

Collegamento delle porte A e B


del PIC con le linee dei dati di controllo del display LCD.

Linee di retro.illuminazionel BL+ e BL- {lngressi per I'alimentazione La tensione di alimentazione dell'LCD coincide con
per Ia lampada di retro-illuminazione) quella del PlC, e se si desidera variare il contrasto dei
caratteri che sono visualizzati, si ulilizza un potenzio-
Nella figura in alto a destra si mostra rl diagramma metro da 1O K con cui si applica una tensione variabile
dei collegamenti dell'LCD. all'ingresso, V0, che regola il contrasto del display.

,it.tt.,i., ,t i.t.t..1
tt | !.,.t. |.:, it tt ,i., t,i, t
]]]ì]]]]]]]i''@]]]]]]'],i]]]W]]]]r{K]@|......')||\\\).))...Wìì:ìì]]]]]|]]:]]]]::4iWf!]]#3
".
i:i ri; ;r ir ir lri ;" i'ri {i i.; I il: ir.l i ì ll f' fl i. r ;i. í fi 5 l. muovere il cursore a una determinata posrzione, indiriz-
í: í"ii qr1i,'Îí1í-;li zare una delle matrici, ecc. ll PIC colloca il codice dell'i-
Nella comunicazione del PIC con il display LCD si pos- struzione nella porta B, e per indicare che sitratta di un
sono inviare comandi da eseguìre o caratterì da visua- comando che si deve scrivere nel display pone la linea
lizzare in qualsiasi delle 32 matrìci esistenti nel display, RS (RAO) = 0 e la linea RA/V# (RAl)= 0.
che si compone di due linee da 16 caratteri ognuna. Nel cronogramma riportato nella figura a sinistra si
Quando il PIC invia, tramite il bus dei dati, una istruzio- mostra il valore digitale che assumono i diversi segnali
ne o un comando all'LCD, puo realizzare operazioni che partecipano all'operazione di scrittura di un'istru-
moìto interessanti, come cancellare tutto il display, zione nell'LCD tramite il PIC.
La scrittura del codice di un carattere ASCII sopra
una delle 32 matrici del video è abbastanza simile alla
R5 scrittura di una istruzione.
Varia solo il livello logico del segnale R5. ln questa
*3!9Ì9rrffi situazione la porta B del PIC prende il codice ASCll, allo
R/w#i i i t stesso tempo ìn cui RA0, RAl e RA2 prendono i valori
che sono mostrati nel cronogramma in basso.

iì ii i1 J lt ; i": i: I. i-' i i- i-!


I r il È'i i;i ilt i i-i i;r I L i, 1'í'i d-1:

lì display LCD risponde a un insieme di comandr che


interpreta ed esegue quando riceve tramite il bus dei
dati il codice corrispondente e RS = R/W# = 0.
r I4O
' 450ns r

n5
Tra i comandi più importanti troviamo quelli di can-
BUS DEI DATI codice islruzione
cellazione del vtdeo, i movimentì deì cursore, i lampeg-
gramenti, e gli indirizzamenti delle memorie interne
dell'LCD.
La memorìa DDRAM è quella che contiene i codici
Cro nog ramma d i u n' oPerazi one der caratteri che devono essere visualizzati nelle due
di scrittura di un'istruzione nell'LCD tramite il PIC
lrnee.
Gli indirizzi da B0 a BF Hex corrispondono aì 16
caratteri della prima linea e glì indirizzi da C0 a CF Hex
a quelli della seconda linea.
La memoria CGRAN/ ha 64 indtrizzi di dimensione
i
byte e in essa sono contenuti i codici necessari per defi-
nire 4 o 8 caratteri grafici definibili dall'utente, secondo
le necessità dell'applicazione. Ogni carattere grafico
definito dall'utente è composto da B o 16 byte che si
memorizzano negli tndirizzi successivi della memorta
CGRAM.
In seguito sono descritte le principali istruzionr utiliz-
zate con il display LCD
tl
: r40: 450ns
i- i i:.j i: il i- i. r:1.r"i { : i'+ xr i; ri i ij :=: Ì: {,;
n5

BUS DEI DATI coroilere ASC|I


Cancella tutti i caratteri del video e colloca il cursore
nella prima posizione della prima linea.
lnoltre pone il bit di controllo l/D = 1 per defauìt, il
che significa che con ogni carattere il cursore tncre-
Cronog ra m ma d i u n' operazone menta la sua posizione.
di u' lmpiega 1,64 microsecondi ad essere eseguito, sup-
::ittu::,|i :':!t":",.1s.c!r rytr'.lc-o

5
,ri tÈ lli# ij:É 4Í; rH jl,Èrrt'È'1 î]ii
ponendo che funzioni a 4 Mhz, e il suo codice è:

Mrrove il crrrsore e snosla il disnlav spnza rambiare il


contenuto della memoria dei dati DDRAM.
0 0 0 0 0 0 0 0 0 I
Si esegue in 40 microsecondi. Se il bit S/C vale 1
sposta il dìsplay e se vale 0 muove ilcursore. llcodice è:

Colloca il cursore nella posizione di inizio, prima posi-


zione della prima linea, e forza il d splay a visualizzare
da quel punto. 0 0 U 0 OOSICR/LXX
li contenuto dei dati nella DDRAM non varia e l'in-
dirizzo della visualizzazione si pone a zero.
, I
lmpiega 1,64 microsecondi ad essere eseguito e il , r it i

suo codice è: Stabilisce la dimensione della comunicazione con il bus


dei dati, che puo essere da 4 bit (DL = 0)o B bit (DL = 1)
Determina il numero di linee del display fra una (N
= 0)o due (N = 1)e iltipo di carattere, se e 5x7 (F = 0)
0 0 0 0 0 0 0 0 1 x
o 5 x 10 (F = '1)
lmpiega 40 microsecondi ad essere eseguito e il suo
,.':,. i. . ;' ,,',; i';',;.r t.t.,t:.,ti. codice è:
, : :.,;'1,',. : )rit:';:":'::i. :':

Stabilisce la direzione del movimento del cursore e spe-


cifica se la visualizzazione si sposta alia posizione
seguente del display o no. 0 0 0 0 't Dt N X x

Questa operazione si esegue durante la lettura o la


scrittura della DDRAM o la CGRAM.
Per visualizzare normalmente si pone il bit di con-
trollo S = 0. Se S = 1, la visualizzazione si sposta ogni lcaratteri grafici definibili dall'utente sono scritti in una
volta che si scrive un dato. memoria da 64 byte chiamata CGRAM. Con questa
lmpiega 40 microsecondi ad essere eseguito e il suo istruzione sr stabilisce l'indirizzo della memoria CGRAM
codice è: - ^-.{i.^
a !-l quare
parirre oar sr i,
^,,-l^ -i Inrzrera a memoflzzare i hvfo rhp
definiscono i caratteri grafici.
Eseguendo questo comando tutti i dati che si scrl-
vono e si leggono successivamente, lo faranno da que-
0 0 0 0 0 0 0rliDs sto indirìzzo della CGRAM. lmoieqa 40 microsecondi e
ii suo codice è:
Se l/D = 1 si incrementa il cursore, in caso contrario
ciò non accade.

0 0 0 0 lNDrRtzzo
DI CGRAM

Attiva o disattiva il display (D) e il cursore (C), stabilen-


do se questo deve lampeggiare (B) o no. "-:,i,:,.l ',..,,;:l::. i:'),.i; :t:':.,.:' .'l ,,;;',';i-,i
t,:

lmprega 40 microsecondi ad essere eseguito e il suo "i ,::: :, : ': l;i !.::..::,: j:. , .:';.,:71:.:;, ", ,, ;,

codice è: I caratteri che si visualizzano sono stati precedente-


mente scritti nella memoria DDRAM per poi passare al
video. Questa istruzione stabilisce I'indirizzo della
DDRAM da cui sono memorizzati i dati. f indirizzo della
0 0 0 0 0 0 I
n r B
prima linea corrisponde a 80 fino a 8F Hex e quello

..
r3rmmcrzione di un IGD

della seconda da CO a CF Hex Si o<onr to n LO mirrncp- La sequenra di iriz,o e a segJente.


condi e il suo codice e 't
t.. CANCEU.AZ|ONE DEL DTSPLAY ,

ll segnolotore BUSY si montiene oltivo o 1 duronte i 15 ms .

0 0 O INDIRIZZO dello sequenzo di inizio. l


DI CGRAM
2". STUAONE Dft MODO :
:
5i sceqlie per defoult lo dimensione .

del bus dei doti q 8 bit e uno lineo nel disploy (N = 0)

lVentre il mod:lo LCD esegue istruzion,, e occupato e 3'. CONTROLLO ON/OFF DEt VIDEO
,
t,

non si deve inviare un'altra istruzione. ll flag BUSY (BF) Per de{oult si sceglie il disploy OFF (D=0}, cursore OFf (€=0) .

inrlir:
il jvrLu rho
Lr rL é
L naat tn:tn nrr:nnln
vLLu|.JuLv vrla
volc
'1
l, n
V rho
ll q À ihorn
c Lluclu
9UqllUV e senzo lompeggiomento del cursore {B=0}. :

quando vale 0 - . ' --. .- '-- --a


4". SEIEZIONE Dl FUNZ|ONI .
,l
Si sceglie per defoult l'incremento del cursore ll/D=ll,
modo normole e non spostomento del disploy (S=0).
0 r coDtcE
ASCil 5". SELEZIONE DEILA PRIMA POSIZIONE DEttA DDRAM l
O BWE
DEFINITO
DALTJUTENTI

Se non si compiono esattamente le condizioni


di alìmentazione, la sequenza dr in z o dovrà esse-
lnn nroslo rom,andn si scrivono nella DDRAM i carat- re rea)tzzala dall'utente via software, È molto
teri da visualizzare e sl ouò anche scrivere nella CGRAN/ importante che la prima istruzione che si invia pro-
ibyte definiti dall'utente. ll suo codrce è. duca una Iertporizzat ore di 15 rrs pe" poter rea-
litzsro v,,u qonrrpnz: romn]pt,a
rrn,.r JLYUL

1 1 CoDICE Dpsrri'ri,amo .i^ n.lio


d routines in assembJer MPASN/
che forniscono un'idea dpll: spr-rnlirit: cli np(.tione dei
ASCtI
O BYTE
DEFINIÎO ur)Proy LL v.
DALI]UTENTE

tCD E

Rouîine che genero un impulso di I microsecondo tromite


C an at ro<tn rnm:ndn si leggono i codicr ASCII scritti lo lineo RA2 (segnole E). Si suppone sempre che il PIC
neilaDDRAMoibyte neIIa CGRAVI, stio lovorondo od uno frequenzo di 4 Mhz.

tCD_E bsf RA,2 ,'Attivo E

nop ;Atendi t microsecondo


0 BF INDIRZZO bcl RA.2 :Discttivo E
DI CGRAM
rèlurn

LCD_REG

Queslo routine deposito il codice di istruzione presente nel registro


ll modulo LCD esegue automaticamente una sequenza
sullo porlo il disploy ICD
W del PIC B. Attende che
interna di inizìo al momento in cui viene a00licata la ten-
eseguo luhimo oRerolio.ne e 91yro flimqull di ottilofone
sione di a imenta,zione, se si compiono iseguent, requisit. !i !, .

LCD-REG bcf RA,O ;Disonivo RS {lslruzione}


ovwf R.B ;Prende il codice in W tromite PB
coll LCD-BUSY ;Anende che si liberi LCD
b. ll tempo di scollegamento deve essere come minimo di 1 millisecondo golo LCD-E ;Genero un impulso in F
prima di tornare a collegarsi.
NTRO R

Contro[[er
di LCD (r)
Il display LCD è ìa periferica piu interessante di
SLAVE
rrri disnoni:mo ner visualizzare informazionr
nei nrodotti e nei sistemt basati sui microcon- :,::::*
troller. ll suo ridotto costo, la sua flessibilità rll..

nella presentazione di messaggi e di grafica, le


sue piccole dimensioni e il fatto di essere pro-
grammabile, sono caratteristiche che lo rendo-
no insostituibile.
Per sfruttare al meglio i display LCD, sono
state sviluppate, e si trovano in commercio,
schede che facilitano all'utente l'uso e la
gestione all'utente per l'applicazione nei pro-
getti La scheda di controllo rende trasparente Schema di adattamento
della scheda controller fra il PC (MasteÒ e il display LCD (Slave)
il controllo interno del display LCD, Tramite una
ronnia di
Lvvpru ur linee
ilr ruL/ si colle^- r-
rr LvilLgd ld --r-^!-.r
)Ll ICUC Ul -^^+.^rlo
LUl lLlUl

con qualsiasi sistema capace di comunicare tramite una nitn nrinrin,alè di intprrlretare le istrUzioni Che riCeve dal
RS-232, come ad esempio un PC, un terminale divideo- master via RS-232. La decodificazione di queste istru-
tastiera, un microcontroller, ecc Questi dispositivi fun- zioni si trasforma in segnali di controllo, che si applica-
zìonano come maestri (Master), rispetto alla scheda di no al dìsplay per produrre i differenti effetti di visualiz-
controllo che funziona come schiava (Slave). Lo schema zazione programmati attraverso il master.
Ioi
uEt rnllon:monti
LvilE9Or r rgr rLr doi
uqr hlnrrhi
ulvLLl ll rho
Lr rE no<ti<rnp6 il Ài.^l:',
9E)Lr)!vr ru ll ul)Ploy
LCD è riportato nella figura. La scheda di controllo
dell'LCD è basata su un microcontroller che ha il com-
In generale si possono classificare in due grandi
gruppi:
1 + Controller on-line,
2 -r Controller programmabili con memoria.
ll controller on-line si oilota in modo oermanente
tramite il master. Riceve ed esegue sequenzìalmente le
istruzioni del master, che puo essere un PC o un siste-
ma con microcontroller. Le istruzionì di visualizzazione
sono inviate nel momento opportuno, in funzione degli
awenimenti deì mondo esterno che influenzano il pro-
dotto che incorpora il display LCD. Per esempio, in una
macchina distributrice di prodotti, ogni volta che sì
introduce una moneta si mostra il valore della medesi-
ma e il montante totale del credito disponibile. ll con-
ll display LCD è diventato troìler on-line e progettato per mostrare messaggi nel
uno dei terminali pitt utilizzati per visualizzare informazronr
momento in cui si producono gli eventi corrispondenti.
memoria EEPROM in cui sono
scritte le istruzioni di visualizza-
COMANDI zione. Queste istruzioni si ese-
guono al reinizializzarsi del srste-
ma, cio significa che questi
ISTRUZIONI modelli possono eseguire in
modo indipendente le istruzioni
c i mcssanni rho in nrecedenza
sono stati scritti nella loro
ll master è permanentemente collegato al controller LCD, e contiene il programma memoria. Questa caratteristica li
di istruzione e di visualizzazione. rende molto adatti ai sistemi
automatici, come succede nei
r:rtalli nr rhhliri+eri

COMANDI :l:::,:
Per avvicinare i lettorr alla realtà
commerciale, descriveremo il
modello LCD-CON1, di tipo on-
line, e l' LCD-CON2 di tipo pro-
grammabile con memoria che
possiamo vedere alla pagina
ll controller programmabile con memoria, riceve il programma visuale tramite il master in modo seguente.
programmazione, lo memorizza nella sua EEPROM, e dopo lo esegue in modo autonomo.
: " t ',
'" :l '.l:' l':'

ln questo caso il programma di istruzione di visualizza-


zione è contenuto nella memoria del master, come si La scheda si compone di dodici blocchi funzionali, elen-
VEUq nall:
',aÀa llEllC fin' 'r. l'rltr1-1
ll9UlO. LOlLrv tinn
LrVv di
ut rontrnllor
Lvt tLtvilLt/ nrralli
'r-,,,,
nrn-
r,- cati di seguito e mostrati nella figura:
grammabili con memoria, oltre a disporre delle stesse 'l
-r Connettore di alimentazione.
funzioni dei controller on-line, disponqono di una 2 -r Potenziometro di contrasto.
3 + lVicrocontroller PIC
16C73.
', 4 -) Interfaccia LCD 'l .

Connettore a sinoola fila


'-'"'v (SlL)
Oer LLr.
r 5 -r
ì;

Clock/calendario in
. tempo reale.
. 6 -r Memoria di pro-
; gramma
: 7 -r Connettore RS232.
r
i
B -) Batteria.
:.
9 + Pulsante di Reset.
:: 10 -r Microinterruttore
| ,,
0l COnîlgUrazlone.
: 'l 1 + Segnale digitale di
ingresso. Ext. Input (J4)
12 + Interfaccia LCD 2.
Connettore a doppia fila (DlL)
Scheda controller LCD-CON2, programmabile con memoria
per LCD.

I
ìu
:l

Pa4

CARATTERISTICHE TECNICH E DEI CONTROTTER "LC D-CON"


Schedr di {ormcro normolizzato dq IOO x 75 mm.
*""
Affi;i;;; u .i.;tùi ."tttiiàit"'il;rimr$;;flru;i"i
vAcnrc, .""
-:---:9:::-:s:i:::-:::-1::*:-:.:r:*::"î-'3T-*:k::*-s-::l*::tri-.:::5i:1î:
Clock/colendorio in tempo reole, olimenfolo con bofierio ricoricobile di Ni-Cd.
.-"

Microcontroller PIC |éCXX di gcmmo medio.


Polenziometro per lo regolozione del controsto del disploy.
Copocito di governore disploy fino o 80 corqtteri con e senzo relroilluminozione, con diverso configurozione di linee e corqtlere per lineo.
Pulsonte di reset.
Memoric EEPROM con 24 Kbyte nelkr versione [CD-CóN2.
Connetlore per otlo segnoli di ingresso che servono per rilevore condizioni di visuolizzozione. :i
Qeotko modi di hvoro configurcbili con microinierrufiori: tresl, on-line, progrommozicne edesecuzione. . i.
$rú;é;;vùile.*;";il;;iiú;lili':ifi;r"r6s.;ìi;Jil;ii,tó;É'Èi'i;iil"l^;-ilÈi*;i;;ffirÈ"il
rliguro il Sistemo Integroto di Svíluppo che permetfe uno intertoccio semplíce do utilizzore per l'utente. i:
"tili,,*""fi"ffiÉ"tà.-""-""1,1
-
"ffiÈìyffiÍ=:irT-.r:Fryryîrt*rrry7:i:Í"ii:j:"î-?rî-I:îT,ffiìa:iîffirìr.t : î îia::tj"t ti "t :,1

Cronogramma di un'operazione di scrittura di un'istruzione nell'LCD tramite il PIC

ll connettore per l'alimentazione, indicato con il 1". Suooorta la comunicazrone RS232 con il master.
numero 'l nello schema, riceve una tensione di 12 V, 2". Interoreta le istruzioni che invia il master oer
che puo essere alternata o continua. La scheda dispo- controllare il display LCD. Grazie al lavoro del PIC non
ne di un circuito di raddrizzamento (D'l), filtraggio (C 1- è necessario che l'utente conosca il funzionamento
C2), e stabilizzazione (U7)" ll potenziometro di contra- interno dell'LCD.
sto è evidenziato con il numero 2 nello schema. ll connettore a fila singola da 16 pin (SlL), è segna-
to con il numero 4 nello schema, e serve per supporta-
re i moduli LCD che hanno questo formato.
Nella figura sono assegnate le funzioni ai diversi
ll PlC16C73 è incaricato di realizzare i due comoiti vita- piedini. Per alcuni tipi di moduli LCD, è necessario un
li del controller: connettore a doppia fila per la loro inserzione. Questo
connettore è indicato con il
numero 12 nello schema, e
, nella fioura è rioortato il suo
.-h^'-- .i dudLLd
-h^rc )r
>Lr rcr rd Lr -^|-++- dr
-; r-^À^l
r\JUcr-
, li deìle case WINTEK, NORI-
I TAKE e SHARP.
.i ,:';..i 1, . l .i'ti. i.i',::t jij,.li.:,.,;,:
E basato sul dispositivo
PCFB5B3 (U1) di
Phiìips, che
contiene un clock/calendario a
tempo reale, alimentato trami-
te le batterie di Ni/Cd.
ll rhin o r-nntrnllet6 l6 gp
cristallo di quarzo da 32.768
I Khz e inoltre dispone di una
; memoria SRAM da 256 byte,
i che essendo alimentata con la
: batteria si comporta da memo-
,,...a
ria non volatile, e in cui si
Schema della scheda controller LCD-CON2 con la distribuzione dei suoi blocchi funzionalr
scrivono i differenti parametri
INIERfACCIA tCD I PIN SEGNATE DtSCR|TtONE
I GND Connessione o mosso dell'olimentozione
2 Vcc Connessione positivo di +5V di olimentozione
3 Vao.l Tensione voriobile per lo regolozione del controsto del disploy
4 R5 Segnole di controllo dei registri interni dell'LCD
5 R/w Segnole di controllo per lelturo e scritturo interno dell'LCD
6 E Segnole per I'obilitozione inlerno dell'LCD
7 DO lineo bidirezionole dei doti n" I
I DI lineo bidirezionole dei doti n" 2
9 D2 Lineo bidirezionole dei doti n" 3
lo D3 Lineo bidirezionole dei doti n" 4
tl D4 Lineo bidirezionole dei doti n" 5
t2 D5 Lineo bidirezionole dei doti n' ó
r3 Dó lineo bidirezionole dei doti n" 7
14 D7 Lineo bidirezionole dei doti n" 8
l5 L+ Afimentqzione positivo di 4,5V per lo retroilluminozione
(se il modello di LCD dispone di esso)
ló L- Alimenlozione di mosso per lo retroilluminozione
(se il modello di ICD dispone di esso)

Assegnazione dei piedini nel connettore a fila singola per alloggiare l'LCD.

che si utilizzano nella ruttori che selezionano il baude-rate nella comunicazio-


INTERFACCIA tCD 2 scneoa. ne seriale, e i modi di lavoro, così come riportato nella
tabella della figura. In ultimo il connettore J4, segnato
J3; :i.:: ::ti: ::il; ;:,,
','"t.':: t',':"
,.,'
con il numero 'l 1 nello schema, permette la gestione di
'' un massimo di otto segnali digital, che opportunamen-
La scheda LCD-CON2 è te gestiti, permettono di selezionare visualizzazìoni pre-
programmabile, e programmate: a seconda dei segnali che sono attivati,
dispone di una memo- si esegue una routine di visualizzazione memorizzala

Connettore a doppia fila dt


ffii
"".o-.",ar,*'-o-t*'*a*r*rj
ri: npr qrrivere le iqlrrl-
zioni che riceve dal
master, per por eseguìr-
le in modo autonomo e
indipendente. È forma-
ta da tre circuiti 24C65
nella EEPRON/.
ll flusso di controllo del programma è governato
r-^l; ^++^ )E9llqll
uo9ll wLLU
!i i^nresqo
-^^^-ri ul rhe
lllvrEJJV Lr
binazioni diverse di salto.
rL fornisrono
rvr rilJLvrrv 255 COm_

ll connettore J4 ha 10 terminali, dei quali il numero


2 e la massa, e quelli compresi tra 3 e 10 supportano gli
terminali per supportare alcuni (U2, U3 e U4) che sono otto segnali di ingresso. ll terminale 1 corrìsponde con
modelli di display LCD
memorie EEPROM da B il segnale STB, che inizializza I'esecuzione di un pro-
Kbyte, con cui si ottiene gramma per il rapido riconoscimento dei segnali di
la capacità totale di 24 Kbyte. i nq resso.

,'"1.. | :, i ,
i i" i,, ,. ,,'t,::' !.;, l; i, i
i,

SWI-I ' SWI-2 Modo di lovoro SWl-3 SWI-4 Boude


ll ronnpftnrp l5 sr rnnofta la '--'-J
comunicazione RS232 e utiliz- i:r '********j-"-'--*"-ì
i
oFF i orr i - on-line ---"*' ]
--,-9*tt,..: "*9F-*i"--_-"_?J"qo, i i
za tre linee. ll pin 3 corrispon- . OFF i ON 1 Progrommozione (solo con |-CD-CON2) ] .. oti-.,i. -"9!t * .|^.*..+e. oo. . j.'t
de al segnale di ricezione (Rx) I .---91!.-...i-.9i,1.,-.1-- F-'-::-s:-l."..1-"*1,::!e-.:,er,!-c--9;S9,\?),. ...".......i
ON ON Tesi o-1.-: 9N i- I??99,,..:i
j
- qù"-l*srii, -ip.il
il pin 2 a quello di trasmissio-
ne (Tx), e il 5 di J5 è la massa.
Con il numero '10 si fa riferi-
Microinterruttori SW1 per la configurazione della scheda di controllo.
mento a quattro microinter-

l;+++ +:+f ij',,É,i t:"1:u+.ir:ii,i'i;ti!"1i;" +iì+, i:; r;:: J,ri,ir


if {1fr Íf :rlr*.rir!*slil|ìffi:rNNÌrrrlrì*;l
Controller di LCD (il)
adatto al PIC della scheda di controllo e le invia a que-
st'ultima tramite una RS-323. Le istruzioni che utilizza
Confezionare i programmi necessari per fare in modo l'utente non sono uguali a quelle che interpreta la sche-
che l'utente risolva facilmente i suoi compiti, e che le da di controllo. L'ideale e che l'utente sia una persona
istruzioni da utilizzare siano semplici e intuitive, e con poca specializzazione tecnica, utilizzi istruzjoni
importante tanto quanto progettare dispositivi fisici che intuitive per creare i messaggi e disponga di una inter-
adattano il display LCD al master, tramite il quale si sta- faccia grafica amichevole. Queste istruzioni sono defini-
biliscono i messaggi da visualizzare. La scheda di con- te di alto livello e la CPU del master le traduce nel codi-
trollo riceve le istruzioni dal master, le interpreta e le ce delle istruzioni che sara interpretato dal PIC 16C73
,- rJet programma memoflzzato sul
o<onrro in fr rnzinno della scheda di controllo e riceve il nome di "basso livel-
PIC 6C73. Le istruzioni sono divise in due tipi:
1 lo", molto piu vicino alla macchina e molto meno com-
1". lstruzioni che interpreta il PlC16C73. p ren s ib ile.
2". lstruzioni che edita l'utente sul master.
ll PlC16C73 deve ricevere le istruzioni dal master, ' ,'i' ,:: : : ,l ,',',i ,l:1,:1,.1,.:';
l;, '.'','.:'. ).i: :.'
secondo il formato e la sintassi che è capace di inter-
pretare. Pero quando l'utente edita il programma di L'interprete dei comandi, ubicato nel PlC16C73,
visualizzazione sopra il PC, utilizza un repertorio di ammette un insieme di istruzioni con le quali si accede
.istruzioni più pratico e facile da comprendere, con l'ob- a tutte le possibilità di visualizzazione del display LCD.
biettivo di ottimizzare rapidamente lo sfruttamento del Tutte queste istruzioni rispondono alla stessa sintassi.
display LCD. Questa filosofia di lavoro è mostrata nella lniziano con un carattere ASCII a cui fanno seguito uno
figura. o più byte esadecimali, in funzione di operandi. Infine
tutte le istruzioni terminano con il codice 0x0D Hex
(Ritorno a capo).
COMANDI
Dopo aver completato l'esecuzione delle istruzioni
PER LCD
rlcevute, la scheda di controllo ritrasmette al master un
codice di riconoscimento ACK del valore di 0x06 Hex.
Alcune istruzioni, inoltre, restituiscono al master i para-
metri richiesti. ll master non invia altre istruzioni alla
' RS232 | scheda di controllo fino a che questa non invia il rico-
pER LA SCHEDA Dt CONTROLLO noscimento della precedente. In seguito descriveremo
, 'sfRuztoNt i
alcune istruzioni di basso livello in cui sono esrrosti i

,, ,rr.ri, o,n inL," ,i, ,rru lur=nr";";sotrro ;";to;tte aaila cpu seguenti campi:
del master, per fare in modo che il PIC
CODICE: Raooresenta il carattere ASCII che defini-
della scheda di controlloie possa interpretdre.
sce l'istruzione.
.|...:l,|1||..'.|..:.i,:i.,;,:,,:.,i,i;:ì.|;::.,::! SINTASSI: Indica la sintassi dell'istruzione
OPERANDI: Esprime i possibili operandi.
ll PlC16C73 della scheda di controllo contiene nela sua ESEMPIO: Semplice esempio di applicazione delle
memoria un codice di programma, capace di interpre- istruzion i.
tare un repertorio di istruzioni che converte in segnali di RITORNO: Valore che restituisce al master.
governo per il modulo di LCD finale. La CPU raccoglie COMMENTI: Chiarimenti oer comorendere le istru-
le istruzioni che utilizza l'utente, le traduce in formato ztont.

".i1;.;|ll.11').i)l;.'.l:|:i:'i.:||,j.{:i'...:..!;|;i||,ii,,,!.
.y||1|11\':1|'|\fJ11|'|'|jj.,reww1]il]lllll*|,]!4iEÌiWùlùèiN]]l|]fuÌw1fÍÍi1l'*l&@jl1]ilWùlì|ii]lìì]iÍli]k,|#
flIICROCONTROLTER
di controller di tCD

Codice: A €odice: C

Sinhssi: A (coteno) CR Sinlossi: CCR

Opelondl, llgtenol è fo coteno d9i 1gg9!erj do visuolizzore, mox. 40 Operondi: Nessuno


Esempio: AmcrosistemsCR
Esempio: CCR
Ritorno: ACK
. Ritorno: ACK
Commenti: Tutte le istruzioni ierminono con un riiorno o copo (CR)
Commenti: Ognì volto che si esegue questo istruzione.
si commuio
lo stoto del cursore ON/OFF
Caratteristiche dell' istruzione che visualtzza caratteri sull' LCD.
Ca ratte ristich e del I' i struzi one
di attivazione e disattivaztone del cursore.

Con ouesta istruzione si mostra la catena dei caratteri


che sarà indicata in seguito a partire dalìa posizione
attuale del cursore del display LCD. Mostra o nasconde iì cursore nella sua posizione
I caratteri sino ad un massimo di 40, si memorizza- attuale. ll cursore si rappresenta come una linea oriz-
no in un buffer interno. Nella figura sono riportate le znntale nella nosizione inferiore del carattere in cui
| ,r"v
YvJ'4'vi

principali caratteristiche di questa istruzione. si trova.

(omondo : Sintcssi Destrizione


i
"*
: r'-"--'1 At,.tóíltm v,ú[''oí ;;ffi dì;ùfi;l; ú,ffillio posiiió,àoi,ólil;f;'riore.

':s I
EloollbblCR Produce un effetto dì {bb) inlermitienzo con un periodo siobilito
do ioo).
Devia il flusso di controllo del
programma quando sr com-
c. ccR Afiivo o no lo visuolizzozione del cursore.
nip rrn,r dotprminara condi-
D: DCR Disotlivo il corottere ACll locolizzoio nello posizione del cursore.
El EIindirizzo]CR Sposio il cunore n uno nuovo posìziore. zione. La scheda di controllo
ti t[coleno]CR Inserisce uno coleno di corotleri o poriire dollo posizìone del cursore LCD-CON2 s(rive il program-
l sinìfro.
u. ma di visualizzazione nella
sposlondolo verso

G{nnl[byel ]lbyte2l . [byte8]CR Genero uno degli oìio posibili corol+eri grofici definibili
doll'utenie. memoria EEPROM da 24
H, HCR lniziclizzo il dìsploy LCD concellondolo e posizionondo il cursore Khvte che occunA oli indiriz-
noll^ inizinlp

I l[coteno]CR I
^^.irinno
Inserisce uno coleno di coroiieri o portire dollo posizione del cursore
zi da 0000 a 5FFF Hex. Le
.""*"""1^1"
"
.1"*." istruzioni sr scrivono negli
J JCR r Attivo o disottivo il displcy LCD. indirizzi correlati inìziando
K KCR , Altivo o disotiivo visuolizozione dell'oro in corso.
1o
da 0000 Hex Ogn istruzio-
t tcR : Aìiivo o disoflivo lo visuollzzozione dello doto conenfe.
M Mlmml[hh]cR , Regolo l'orologio con i minuti [mm] e ore lhhl,
Ie no rìr.r rn; rn rprtn numefo
N N[dd]lmmlcR I Regolo il colendorio con il giorno ldd] e il mese [mm], di hvtp I a rondizione rler cui
o ocR r Aftivo o disotlivo il lompeggiomento e/o il cursore nello posizione si realizza il salto viene stabi-
, in cul lrovo.

li+-
P PCR , Legge e resiiiuisce lo posizione ottuole dove si irovo il cursore, ^l-l ,,-l^"^
ilIa oat vatore l.-i^-"i^
0tndrr() presen-
^
a Q[volor]CR , Temporizzo ionli decimi dì secondo come si definiscono nel [volore]. te nelle otto linee di ingresso
R RCR : Attivo o disoliivo le luci di tondo {bocklighi} nei dìsploy a cui si accede tramite il con-
, che ce l'honno.
5 5[dirH][dirt]CR I Sallo incondizionoiooll'indirizzo IindH][indl], nettore J4 Ext.lnput deììa
I Tlvolore]lìndHllindLlCR : Solfo incondizionoto oll'indirizzo IindH][indL] in funzione del {volore] scheda di controllo.
, presente sul conneilore esierno J4.
u ucR : Fine del proqrommo,
V VlvolorlCR , Corico lo voriobile inierno con lvolore],
X XlindHllindLlCR I Decremenio vorìobile e solto o [indH][indl]se il risulioio è 00,
1o

Y YCR : lniziohzzo lo schedo di conhollo LCD'CON.


7 ?CR r Resiiluisce il volore dell'ultimo ìndirizzo dì memorio progrommobile
, disponibile. Nelìa tabella a sinistra sono
rar)0resentate tu t[e le istru-
Repertorio di istruzioni di basso livello che ammette la scheda di controllo LCD-CON2
zìoni, con le loro prrncipali

::,4M.".' i::a*i;rtirtiuuuuìììììììììììììììììì!{rlul
MICROCONÍROtLER
:
iìi
'ììll
Modelli di conlroller di LCD

caratteristiche, che la scheda di con-


trollo LCD-CON2 è capace di inter- -:--: - :
--1-H
nrot:ro p rnnvortirp noi rnrri<nnnnen-
ti segnali di controllo che sono inviatì
-l-lel
tcD
- lngrc*i: Pda I
al terminale del modulo LCD.
:t
4,l_l-l-|*l*f-f i*
t,-,j0*
l
F.t ,+,€
r+B
fÈi :":
::-
.J
: fipo---
:

À. ji:
'
---.t_Y ,
jlExl Y1 rl.L? m r-Ì
Per semolifirare
"r""--' la ne51j6ne del con- ' .--:* ,

;
--:.
rroller LCD-CON il suo produttore, e V= fi* DE< i
-ti:#
Ì-i. i
Ingenrería de lVicrosistemas |'t
i f lnvìorealLCD :

Prograrnados S L, ha svillppato un a- Simulore


software molto pratico che imple-
menta l'interfaccia grafica e che è :

stato battezzato con il nome di Modo ON tlNE: Gli ordini soronno invioti direttqmente
e in modo seqgenziole ol controller dell'LCD
itrr:!or:r..-.-.. --..........

Ambienre Integrato di Sviluppo ElD, il € Reodv i


orralp npr.nette 1e sonrl6pti f unzioni: q;, xegoro ofs ' a.",1.

. Inviare istruzioni in modo on-line [-] Regolo doto ,l on Lin" :

{"- Èogrommozione
dal rraster alla scheda dr controllo. ,

. Simulare i programmi di visualiz-


Videata di lavoro dell'ambiente EID in modo on-líne.
zazione sul monitor del PC prima di
eseguirli sopra LCD
e Edrtare il programma con il lin- ];.==:.,:,:.;iaa=-;li::a,.;-a:E-.::::::":::.,:.,:.,.',,.,,:.:':.:,,.',:::..,::::,:::::::, _I ixl
guaggio di alto livello. lile Configurozione Strumenti Aiuto
,-l l rtl
. Assembiare le istruztoni di alto 5l,i--J qti
livello e convertirle in istruzioni di tcD
s rE.q":f ..9
basso livello, interpretabili dal PIC
c*!,:'::ry:B
della scheda dr controllo
o Mettere a punto il programma. -,g..4;rii
16xZ
. Trasferire i programmi assembla- --_

V: lù f $ ,imp .rmc
tr alla scheda di controllo LCD-CON r-i"g,*"c
Sorgenle Obiect
L'ElD e basato su un repertorio di
istruzioni di alto livello, che pur
El l*t":,E] l:i..
osqpndn onr.iri:lonti : n ,ollo di h:<<n ,
: El po'* ,El n ,*
livello, nsultano piu comprensibili e
f,arili d,r npqt:ro Cnn l'gl119p dei testi
dell'ElD si puo cance,lare, inserire,
muovere, duplicare, salvare su disco,
recupe'are, ecc. fassenbie" di que-
sto ambrente traduce le istruzioni di
alto livello rn altre di basso livello, che
Videata di lavoro di EID in modo programmazione
inte'rrretate
nossono essprp ,,,.. I con I

frrmware della scheda di controlio


LCD-CON. ll simulatore dell'ElD e molto interessante, rPC compatibrle con processore Pentium ad almeno
perche -n sce la possibilita dr presentare rel crsplay del 100 MHz.
PC i messaonr che vocrliamo visualizzare sull'LCD. lnfine .2 l\4B come minimo dì spazro libero sul disco fisso.
EID possiede un sistema di aiuto on-line, in modo che . B l\48 come minimo di memoria RAN/.
i
posizionando cursore su qualstasi icona appare una r Sistema Operativo Windows 95/98
finestra con un commento. lrequrstti per l'installazione . Floppy disc da 3,5"
dell'ElD sono: o Porta seriale libera.
5 Modelli di controller di LCD
rllriiflftfllllllrl?lrNlllillll!lìlìì ;

Nella figura è riportata la finestra che appare sul PC


lavorando nell'ambiente EID in modo on-line, in cui le Sì tralta di rrn renerto-
istruzioni si inviano direttamente alla scheda di control- rio di 23 istruzioni che
lo. Esrste una finestra a video, denominata LCD, in cui rnrrisnnndnno : nrrel-
si rappresenta il display LCD disponibile, potendo sce- le dr h,essn livplìn aia
,!i-+^ À l^ll^
gliere tra diverse configurazioni di file e caratteri. Nel sluotale.
-r. t\eila frnesrra
:^^-+.

modo sìmulazione i comandi si inviano a questa fine- di ìavoro dell'ElD esiste


stra:l nos'to della scheda di controllo, simulando l'ef- rrn nrradrn in rrri sono
fetto che produrrà ogni istruzione suldisplay LCD. Sulla rappresenrare ognuna
linea der comandi sr digitano le differenti istruzioni con di nrpste rstrrzioni
iloro operandi. Se si attiva il pulsante "lnviare a LCD", medrante un'icona: ìn

l'istruzione si invia tramite il canale seriale alla scheda nrpqto


YvLr Lv mndo lp istrrl-
di controllo. Se è attivato il pulsante "Simulazione", l'e- zioni dpl nrnnr:mma
secuzione dell'istruzione sisimula sulla finestra LCD del lcone corrispondenti si nossono editare
alle 23 istruzioni di alto livello senza
necessità di la
PC. Inoltre si puo lavorare in modo programmazione,
dell ambiente FID !i^i+-.1^
-ll--
descrivendo tutte le istruzìoni nella memoria EEPROM 0a5ta cilLLa-
0tgtTarle, ^^.+-
della scheda di controllo. re con rl mouse sopra
Come si puo vedere nelìa figura, ìa videata in modo l'irnnr !v,rnr"iqnondonto.
ì ,JPv, ,vL, LL Nella ct^,.--
, il9Utd )ut-^^^tu .l^^.+-+^
rPUr LoLE le
programmazione dìspone di una finestra "Sorgente", principali caratteristiche delle 9 istruzioni di alto livello.
in cui lavora l'editor deitestiASCll, con cuisi editano le
linee del programma sorgente, Ognuna delle linee puo
terminare con un commento chiarificatore preceduto Si tratta di costruire un prograrnma che presenta sul
da REM. display LCD la parola "lngeniería" e "Microsistemas"
alternativamente. Ognr parola si deve mantenere per
due secondi sul disolav e l'intervallo f ra entrambe deve
Instruzione i sinrqssi Descrizione , urrare di un secondo.
+l: Print"lcoienol Visuolizzo lo coleno di corotleri o poriire doìlo i
oosizione del cursore. ll numero mqssimo di ,

: iorolteri di cui è composfq lo coiena è 10. a

5 po:soro v srol zzo'e co'oîler' g'o[ici


preceden e-erie delir ii. lr
qJeslo coso uli;zzo t
lo boro r"e'so {oocl slosh) sègti-o dol -rre'o
Home: Inizializza il display tCD.
del cototlete gtolico des dero o.
Print "Cioo
Prini'Addio
Prinl "Mlcrosystems\0\1
Inserb"lcoleno] lnserisce lo coieno di corollerì o portire dollo 1 Pause: Temporizzazìone.
posizione del curoore, sposiondosi verso desko. I

D'
Lo s n'osi e sin; e oll s'-rzoTe "'.
lnserl> C'oo
lnserb'Microsystems\0\ì 1

Inserl<"lcoieno] lnserisce lo coieno di corofleri o ooriire dollo :


Jmp: Salto all'etichetta indicata.
por z one de cu-so'e. spos-ordosi vetso s ristro.
Lo :irtossi e siri e o quelro dell ltrrzione p'ecederle.
Home Corcello i d spioy LCD e posiz,ono I curuote rello
p' .o oos z ore dello reo.ptro Loop Home
SelPos lindl Poszono I clso e o ird rzzo RIM inizializza LCD
spec ficolo.
Power REM attiva ICD
GetPos llcorro, e- 'esl'lr sce ol ro;e'
Print "lngeniería' REM visualizza lngeniería
lo pos:zione olro e del cursore
segui'o do ACK Pause 20 REM temporizza 2 secondi
Gef€hcr ll conlroller resrrr sce o moler co'oiere Home REM inizializza e cancella LCD
crec è re o oosizione dove s tovo Pause 10 REM temporizza 1 secondo
rl.Jtsote
Print "Microsistemas" REM visualizza Microsistemas
loho cre .CD
Power Accenoe, speqre lCD. ll s o soerlo
Pauselu
nol 5 0.Lfco c1e
I rlorioziore cl^e corereuo s:o 0e du-o Power
lo:rcce:sivo islrLziole Powe' o ies-oLro. Pause 10
': Cursor ::.1 ì Cu.sor A1i!o/o so-i\o o 'isro zzoz ore oel cltore , Jmp Loop REM salta a etichetta Loop
l

Si m bo I i e ca ratteristt ch e Microinterruttori SWl


di nove istruzioni di alto livello. per la configurazrone della scheda di controllo.
Trasferimento di dati
tramite R.F. (r)

Trasferire informazioni tra sistemi digitali,


comandare strumenti remoti, ricevere
dati da un ambiente distante senza la

il;
necessità di un collegamento fisico **
mediante cavi fra emettitore e ricevitore,
per mezzo di radiofrequenza, risulta una $rc
delle applicazioni elettroniche più inte-
ressanti In seorrito citeremo alcuni dei
.
settori piu interessanti in cui si può impie-
gare questa tecnologia:
1". Controllo e gestione dei dispositi-
Schema di funzionamento dell'emettitore di R.F
viremoti mediante invio di ordrni e
comandi: connessione/sconnessione di
allarmi, controlli di accessi, porte dei garages, ecc. per ìa successiva elaborazione. Nelle seguenti figure si
' 2". Ricezione di dati in arrivo da oeriferiche remote presenta l'attuazione semplificata delle schede dr emis-
per la successiva elaborazione: trasduttori di tempera- sione e ricezione di R.F. La comunicazione fra le sche-
tura, pressione, umidità, ecc. Tutti i tipi di variabili ana- de di emissione e ricezione di R.F. e l'applicazione
logiche e digitali. finale a cui le destina l'utente, si realizza mediante
3". Trasferimento di informazioni tra srstemi molto comunicazione seriale RS-232, o mediante livelli logici
distanti: risultati di determinate ooerazioni. stato inter- TTL che si aoolicano direttamente al microcontroller di
no di variabili, ecc. queste schede. Nel caso della scheda di emissione,
4". Aoolicazioni in microrobotica: comunicazione fra questa riceve via seriale dal PC i comandi di configura-
microrobot per realizzare compiti con-
giunti, controllo movimenti, informazioni
dell'ambiente, ecc.

. ' . ,.:,'1 .,'. t,:'tl


Esiste una certa similitudine fra la funzio-
ne della scheda di controllo LCD e i

dispositivi di Nel primo caso, la sche-


R"F.
da di controllo riceveva le istruzioni del
-
master che poteva essere un PC -, le
interpretava e generava segnalr di con-
trollo per il display. In R.F. esiste una sche-
da incaricata di ricevere informazioni in
'
forma di onde elettromagnetiche a R.F,
Schema di funzionamento del ricevitore dr R.E
interpretarle e fornire iì risultato a un PC
zione e idati da inviare all'utente.
ll microcontroller della scheda
interpreta i comandi e li invia, insieme -'-:*:.:.:::':: -- -- -T:: "r:^- --i.-i::-L :::" :
con i dati, tramite l'antenna di emis- Fuigl: drs!!n:l-le-riel-9-"* -!"!" *,
"."..-.-.i..."".!",.""....:... "-i -yD-s*
sione, secondo un determinato proto-
collo. Nel caso della ricezione si puo -I-t",-g-r-s-,r-'-g--d..i
qic+amr .hò f 1 doti i I
imnnrro
,, , ,r -. . rho ci: 116
-. . ,t) tEt |d, Lt tc tc Velocità di irosmissione dei I nooo I Boude i

parte di un altro più grande. che rice- Ronge di lemperoturo


ve i dati tramite radiofrequenza, li
verifica, li impacchetta, e li invia in
Principali caratteristiche del modulo emettitore RTl -433 della ditta italiana "Telecontrolli"
serie al dispositivo o all'applicazione
dell'utente.
Riassumendo, una scheda codifica l'informazionu ,l''' ',':1.' , '

digitale per trasmetterla poi via R.F. e l'altra la riceve, ll cuore deìl'emettitore R.F. è il modulo RT1-433, pro-
sempre via R.F, la codifica e la trasforma in informazio- dotto dalla ditta italiana "Telecontrolli", che consiste
ne binaria. fondamentalmente in uno stadio di potenza che gene-
ra una portante di 433,92 MHz, modulata in ampiezza
'." . :- ii:,':r il ': ' r
t
'' (AM). È un circuito rbrido che, meotanre un processo di
' ' ': I r' r'r. 'r'I ."; ' regolazione che utilizza tecniche laser, offre una grande
"
Con l'obiettivodi analizzare ilcomportamento di questi stabilita di frequenza. Lantenna dr emissione è integra-
moduli che comunìcano tramite R.F., descriviamo l'e- ta nel circurto, ed e possibile ottenere una portata di
' varie decine di metri, a seconda delle condizionr
ambientali. Le sue caratteristiche principali sono ripor-
tate nella tabella della figura.

, , . ,. ., ,\ , ',

La gestione dell'emettitore MSETX è basata sul pro-


gramma che alloggia nel PlC16F84 e che supporta i

seguenti compiti:
a. Gestisce la comunicazione seriale con il sistema di
applicazione dell'utente, che riceve i comandi di confi-
nrrrazionp e i dati rhe si vorranro inviare.
b, Interpreta i comandì di configurazione e li scrive in

Emettitore MSETX

mettrtore N/SETX e il ricevitore MSERX, entrambi basati


su un PlC16FB4, che vediamo nella figura
Nella scheda di emissione si utilizza un PIC'16F84 per
controllare la trasmissione alla frequenza standard di
433,9 MNz. l m icrocontrol ler riceve l' nformazione d g i-
l i i

tale da trasmettere via RS-232, la decodifica e la invia


tramite R.F
La scheda di ricezione raccoglie r segnali di R.F tra-
mitp rrn'antenn: e disoone di un altro PlCl6F84 che è
incaricato di decodificarla, convertirla nell'ìnformazione
Distilbuzione dei blocchi principali sulla scheda MSETX
digitale iniziale e portarla all'esterno via RS-232.

i t;1 r ,t r,, , ,'..... .,, I t. .,,r' l, .,t,',! ,'.:l


Wfrtrr!ì:ì1ìì1fl111111111iiiii1iiiiiiiifriiiil]]|W.'1'.'..j)jjj...j1l;'j...'4||||j|||:||
MICROCONÎR

una memofla rnter-


na non volatile.
Pin Ne Seonole I D"scrizione
.,.--.-.,.,-.-.,.,-.-..-....:,..___,,.,.......,..-..=...-

I dati sono - ..-..1..-- .--i"-"" -".8:".-- .: Bidgr".{:ii,g-t|!r.si!:-lsrpji:"g-'::-1,"-d:!!1yt':ll--.--:e:,:sii:n-etti!-qry,!!-s-!Jl.


i-^---l-^++-+i -^^
ilrpoLLilcLLdLr LUrl 2:Tx Trosmissione dei doti doll'emettitore MSETX verso I'opplicozione dell'utente.

formato prestabili- 3 i Vcc i Tensione di olimenfozione di +SVDC. Non necessorio. :

tn o ci aìonor: ....-'f-'..'.'].."s9'!.3..-...i'Ly..s]l'.::i...l.:."d...:.|!1":*linfI.sgI.'!y3**]l:".'.l.l.':ee.li:l'.'.'''.'
un'informazione di ..-."..9......i..--"-9]!-?..-..--.l..!:."l.:-::i-r.r
Intestaztone e
Assegnazione delle funzioni dei cinque terminali del connettore CN3 (TTL DATA)
un,altra di test o
"checksum " in
l^
mooo oa garanlìre
-^,J^,l- ^-"-^+i"^ ta +lrasmtsstone. zione dell'utente, che può essere un PC. Se SW-1 e
c. La trama, ottenuta con l'intestazione, ì dati, il SW-2 sono a 0 la comunicazione si stabilisce a 2.400
controllo ecc. viene inviata in modo sequenziale, bit a baude. Se SW-1 = 0 e SW-2 = 'l si realizza a 4.800
bit, al modulo RT-433, da cui sono irradiati tramite R.F baude, e se i due sono a 1 la comunicazione è a 9.600
I blocchi principali della scheda di emissione N/SETX baude.
sono riportati nella figura e sono i seguenti:
1', Modulo RT1-433. ',,'
2'. PtC 16F84. ll connettore CN3 a cinque contatti e chiamato TTL
3" Inoresso dell'alimentazione. DATA e ser\/p ner srnnortare la comunicazione con l'u-
4". Reset. tente, mediante livelli logici compatibili TTL.
5". Mìcrointerruttore di configurazione. lsegnali che invia l'utente si applicano direttamen-
6". Connettore TTL DATA (CN3). te al PlC16FB4 e nella tabella della figura si mostra l'as-
7'. Connettore ICSP (CN2) segnazione di ognuno dei terminali di questo connet-
B'. Connettore DB9 (CN1). tore.
ll costruttore della scheda, Ingenieria de
Microsistemas Programados S.1., uliltzza il connettore

ll connettore CN4 rrceve


l'alimentazione, che deve llT-r 3::l:
rrsPc
Descrizione

arrivare dal secondario di I Seriol Progroming Clock. Segnole di clock di sincronismo ol momento
ì dello scritturo.
un trasformatore che for-
nisca 12 VAC. All'interno
,.J^ll-
ueild --h^,1-
5Lr reud e5t5Le
^-i-+^ ,,
uno
MCLR/VPP j Segnole di reset del dispositivo do regislrore
stadio di raddrizzamento,
i e punto di opplicozione dello îensione Vpp di registrozione.
di filtro e di stabilizzazio-
GND
ne per generare +5VDC
ner l'elettronir: di 16p1-
}'/l'
Assegnazione delle funziont ai terminali del connettore CN2 (CSP)
trollo, e +13VDC per il
modulo RT1-433. Per
resettare il sistema si usa
il pulsante SW-2, che PinNe Segnole 1
Descrizione

resetta rl PlC16FB4, senza 2 1. TxD : Trosmissione dei doti R5232 tromire l'emettitore MSETX verso
modificare iparametri ] ; il sistemo di opplicozione dell'utente.
"."....-'...".j'.'-.,.-."'"'"..'"..':-":]''-::::'=.::]:':.'-.:'.|:
interni dr configurazione. 3 RxD . Ricezione dei doli RS232 doll'opplicozione
Gli interruttori SW-'1 a I
i ti qcil
dell'utente
uterrrg verso
vef t9 |l'emetlitore
ertte[tlgfe tYtJEtA.
MSETX.
drre rnntatti spr\/nnn 0ef 5 : GND i Segnole di mosso comune. i

determinare i baude con


cui la scheda comunica Assegnazione di funzioni ai tre terminali
che supportano la comunicazione serrale RS-232 nel connettore CN1
con il sistema di applica-

:::
r\_t\Z.
r\r / l\r\_Jrl
Í \Pr/ nor
Ptrr
YLr
<.rr\iore
JLr rvcrc
)Lr ''- - rcild
nella
-'

nemoria del PIC il firmware di -


CARAITERISTICHE Min Tipico
Tipi Mox Unità
-^^+r^ll^
LUr lLr uilu. 1 , . r. r. . . i ? E a . - I .'^a I

N/]ec]ianfeotlestoconnet-iM---"""-j.-.'"*,p-"---L".-".:."*.-.:--"*,-q..,--i----,"Y..P9-'-j
'"' l'' .^-...-^ r2,J
tore il fabbricante puo aggior- €onsumo* ^ 3,5. mA <'

nare i suoi clienti dell'ultrma ; -l***.i:**-l9y:lg**,**---**:*f-tigi:::**":**"*p-9*-l-..-.1g1z


versione delfirmware in modo , *r.:lk::,::g di sinronio
-: j__*yn:"_..j
-__*i*___^-_L{:.9Éj**__*_ "l--*m"- "-
, i*l*.+ 6^^.r*i;n***-]-***^l;;-";"-
economico.
^.,^ ,- Srri:lrg--djls:de s*9"*
rapido ed
"oiÎ:'-o :,:"i:'::" u"', X-':;:'; r

'ì:"o,, "9''o ''.


Taoeila 0t assegnazrone
,lo
oeile
gqude
velocitò diricezione deidoti ! i ] zooo ì
-.,:,'***--.-.,*-.,.,;**********j i ,

_.* " -. ... I

integrato MAX232 adatta i

Princiaali caratteristiche del modulo rÌcevitore RR3-433 di Telecontrolli


lrvellr I lL alla normalrva F(>-
232 e viceversa. Utìlizza sola-
mente tre contatti, le cui funzioni sono rappresentate 5u. Switches di configurazione.
nella figura. 6a. Connettore TTL DATA (CN3).
7u. Connettore ICSP (CN2).
; i it .i i- :: ',,'l "i ij ;'i j; :: :
i; Ì- i'l i:
Bu. Connettore DB9 (CN1).
Realizza il lavoro inverso dell'emettitore MSETX, cioè I blocchi del ricevitore realizzano la stessa funzione
riceve tramite l'antenna le onde R.F, le rnterpreta e le dpnli nmolonhi dell'cmettitorp npro al ron'trario. ll
codifica in informazroni digitali. quindi le invia all'uten- modulo ricevitore è il modello RR3-433 di
te mediante RS-232 o segnali TTL. Le principali sezioni "Telecontrolli". Ha una grande stabilita di f requenza e
del ricevitore sono le seguenti: offre una buona resistenza alle vibrazioni meccaniche,
1a. Modulo ricevitore. oltre ad un ampio margine di temperatura.
24. Ptc16tB4. La sua sensibilità si puo migliorare saldando un filo,
3a. Alimentazione. con funzione di antenna, sul terminale ANT della sche-
4u. Reset. d: ron rrna lrrnnhpzza d,i rire a ?5 cm npr f unztonare
come antenna a mezza onda. Riceve informazioni via
R.F. e ìe invia al PlC16F84 che le interpreta, le prepara e

i le invia in serie all'utente


r^
Ls ^"i^-i^-r
Pr il rLrPqil
--"--teristiche
Lqror del modulo RR3_433
i sono riportate nella tabelìa in alto.
,,

i..:.,l|'||.,...i-'|'.,,|ii...i':...;.i...l.,-.;.:..;...,i
t,
I tre comniti che realizza il PIC del ricevitore sono:
1'. Gestisce la comunicazione seriale.
2'. Interpreta i comandi dr configurazione ricevuti e
i li scrive nella memoria non volatile. Scompone i dati
i ricevuti via R.F., analizza ìe informazioni delle intesta-
zioni, determina se il messaggio è drretto al ricevitore
adeguato. Infine verifica la valìdità dei dati mediante il
cnecKSUm.
3". Dal totale della trama ricevuta estrae l'informa-
Distribuzione delle sezioni principali del ricevitore MSERX.
zione utile che invia all'utente in via seriale.
Trasferimento
dei dati tramite R.F. (il)
le successivamente tramite R.I così come e rappresenta-
L'emettitore di R.F studiato, MSETX, comunica con il to in modo schematico nella figura. ll ricevitore MSERX

sistema dell'utente in modo seriale e bidìrezionale. suooorta un flusso di informazioni simili al trasmettitore.
Anche il modulo trasmettitore RT1-433 comunica in Da un lato la comunicazione con l'utente è in modo
modo seriale e riceve le informazionr bit a bit, per inviar- seriale e di verso brdirezionale, e dall'altro l'utente inviai

comandi di configurazione, e riceve lo


stato interno, così come i dati ricevuti tra-
mite R.F., in serie, bit a bit, come si vede
nella figura. Nella comunicazione seriale
dobbiamo tener conto di tre aspettì rile-
vanti per garantire un corretto trasferi-
mento e una successiva irterpretazione.
1'. Sincronismo dei bit.
2". Sincronismo del carattere.
3'. Sincronismo del messaggio.

CONTROLLO
Questo sìncronismo ha il compito di
ottenere che tutti i bit emessi durante
un intervallo di tempo determinato
siano raccoìti nello stesso intervallo. In
questo modo "non si perde" nessun bit
Flusso di informazioni nell'emettitore MSETX
nel viaggio e per fare questo esistono
due alternative che spiegheremo a

seg u ìre:
- Modo sincrono: ogni bit emesso va
accompagnato da un impulso di clock.
Questo segnale di clock è comune sia
per l'emettitore che per ìl ricevitore.
Quest'ultimo ulilizza il fronte o il ìivello
per stabilire il momento di acquistzione
del bit sulla linea dei dat . Per supporta-
ro nrrp<tn
,L VvrJLv
<inrrnnismg sono necessarie
due linee fra emettitore e rìcevitore: la
linea dei dati (DATA) e quella del clock
CONTROLLO (CLK), così come si presenta graftcamen-
te nella figura.
"""**"; - Modo asincrono: non necessita di
un clock ausilrario. Sia l'emettitore che il
ricevitore, trasferiscono e raccolgono i

Flusso di informazioni nel ricevitore MSERX. loro bit in un intervallo di tempo "t"
P89

'1, tril ttt comuiltcoz


..,:'.

Superato il sincronismo di ogni bit


dobbiamo risolvere la delimitazione
fra ogni pacchetto di bit trasferito,
ossia, dove inizia e dove finisce
ognuno dei caratteri che formano il
messaggio. Questo si chiama sin-
EMETTITORE RICEVITORE
cronismo di carattere. ll metodo
più comune per implementare il
sincronismo di carattere e rappre-
sentato graficamente nella figura,
e consiste nell'inrziare ogni caratte-
Schema d i f u n ziona m ento re con un bit denominato di "ini-
del sincronlsmo di bit in modo sincrono, ed esempio di trasferimento.
zio". Dopo arrivano i bit di infor-
mazione che confrgurano,l caratte-
uguale per entrambi. Se per esempio si decide di realizza- re, e in seguito, jn modo opzionale, può esserci un bit
re un trasferimento di 1 .000 bit al secondo (1.000 di "parità", terminando con uno o piu bit di "stop" o
baude) ogni bit che fornisce il trasmettitore deve rima- "fermata". Come si può vedere nella figura, davanti a
nere sulla linea dei dati per 1 millisecondo, che è il tempo ognuno dei caratteri c'è un bit di inizio. Seconoo ra
che ha a disposizione il

ricevitore per raccoglierlo.


Di solito, per motivi di
sicurezza, il ricevitore fa
un campionamento e rac- BIT DISTOP
coglie il dato a metà del-
l'intervallo del tempo,
I
come si vede nella figura.
Nel caso particolare dell'e-
î tllr
mettitore e del ricevitore BtT Dl tNlzto I an DrNrzro
che stiamo descrivendo in BIT DI PARIÀ
queste pagine, entrambi
il
utilizzano sincronismo
dei bit in modo asincrono,
che e orrello imnienato
Struttura dei bit che compongono ogni carattere
nella norma RS-232.

norma RS-232, il bit di inizio consiste in


una transizione del livello 1 al livello 0
sulla linea dei dati. Dopo vengono i bit
che compongono il carattere, iniziando
da quelli meno significativi (LSB). In base
al dispositivo utilizzato, il carattere puo
essere di 5, 6, 7 o B bit. Attualmente il
EMETTITORE RICEVITORE carattere è quasi sempre di B bit. Il bit di
parità è opzionale. Si puo lavorare con
parità pari o dispari. Se si utilizza la parità
Nel modo asincrono non esiste segnale pari, il livello logico del bit P è tale che la
di clock e ognÌ bit rimane stabile sulla linea dei dati per un tempo fisso
somma di tutti i bit che valgono 1 nel
:1 l'

ITIGROGONTR.OLL.ER P90

i.
##it
carattere, piu il proprio bit B deve dare un
tolale di 1 che sia pari. La parità dispari fun-
ziona al contrario. ll bit S di stop e queìlo
che termina tutti i caratteri. Nella norma RS-
232 questo bit è di liveìlo 1, in questo
modo, quando la linea dei dati torna a O si
--^:-:d Lr-1.^
LdPil
+.-++-
-i
rc )r f ,,n nUOvO bit di iniziO
Lr d Lro ur u
'
ner il carattere sl rccessivo. Alcuni sistemr
permettono di utrlizzare 1, 1,5 o 2 bit di
stop. Tutti i bit hanno la stessa durata, per
questo se si lavora a 1 .000 baude ogni bit
Ònni hlnrrn !r)ma À rnmnn<fo
rimane stabile sulla linea dei dati I ms. ^
da 20 caratteri o byte, dei quali i primi 4 corrispondono all'informaztone di testa
i':'ir'!'-l;i= iir

Quanto tempo impiegheremmo a trasferire ogni carat- ,1 ',' " "', """
f Dr: Indirizzo del ricevilore. Può volere 253, tufii rimongono i
tere lavorando a 1.000 baude e sapendo che ogni i] oll'oscolro, però occetteró l'informozione solo guello il cui i
carattere e formato da 7 bit e 1,5 bit di stopr 1] i.dirirto coincide con il volore Dr. findirizzo 254 è universole i
Soluzione: Ogni bit impiega ad essere trasferito 1 ms f ".on esso tutti i ricevitori occethono l'informozione. f
tf--*-*****
lavorando a 1.000 baude. ll carattere ha 7 bit di informa- {| Chk
-"'-'
eyte
-t --
di Checksum. Si trolto di un byte colcoloto i
zione più uno di inizio, più un altro di parità e 1,5 bit di ;i doll'"metitore medionle uno serie di operozioni logico- i
,.,i oritmeiiche con lulti i byte do tuosferire. Ho il compilo di evitore :
stop. In totale'10,5 bit, rl che suppone un tempo di 10,5 li lo corruzione dell'informozione duronie il trosferimento. i
ms per trasferire ogni carattere. Nel caso dei dispositivi -*****"**'-'-i
commerciali N,4SETX e M5ERX, il formato di ogni caratte- $ L, indi.o il numero di byte utili dell'informozione. :
re e composto da 1 bit di inizio, B bit di informazione e 2 ,li Nel formoto dello figuro può overe un mossímo di I ó corotleri, I
bit di stop. Lavorando a 9.600 baude per trasferire ogni il petò sono volidi solo i 'n' primi
i:1",--.--*,...,-**
carattere, si utilizza un tempo approssimato di 1 ms. |tdiritto del trosmettifore.
fiiÉiorr
Drr ,tdiritto trosmettifore. I
***-*--1
',
-
: :'; i, ;l l r i.l !' r,.j i.ri i-, j l,t il 1,
Ir jì; j',,i, ; i; Onnr Dopo i quoftro byte di testo seguono quelli utili
! I
Serve per garantire l'integrità dell'informazione trasferita. i-1 dell'informozione. Si lrosferisce sempre uno coteno di ló byle, i
li e quelli che non si utilizzono t
li totale delle informazioni da trasferire si divide in blocchi, si riempiono come corotleri NULL (OO0).
ognuno dei quali puo avere un numero fisso o variabile di ;B!ìÈt::.fr lwi,f í.f xÉ!ri#Frgry,:=:fla1fitrìJsît.ffi rÍnrtffi q+if

caratteri. Ogni blocco dispone di un'informazione di


testa, che determina una serie dì parametri: chi invia Quando tramite l'applicazione dell'utente si invia-
l'informazione, a chi e diretta, quanti caratteri ci sono in no i caratteri da trasmettere mediante la norma RS-
ogni blocco, ecc. Nei moduli MSERX e MSETX ogni bloc- 232, tl trasmettitore lo fa scrivendo in buffer interno, e
co o trama è di lunghezza fissa e contiene 20 caratteri o quando si completa con 16 byte si procede alla tra-
byte, dei quali i primi 4 corrispondono alle ìnformazioni di smissione automatica di tutta la trama. Se al posto di
testa e i 16 successivi compongono una informazione ricevere i 6 caratteri si riceve prìma un carattere di
'1

utile. I quattro byte di testa hanno il seguente significato: "ritorno a capo" CR = 013, il resto del buffer si riem-
pte con cool NULL (000)
odice N 1000)
^-i>l nrnrodo; .-l^ dild
-ll- d trasm
+
e ut Lt c ilsst o-
rssro- L

nel, consroera
consider;lera n do( loCRrcome
oo :ome
-îra++^r^ ere in
unrI LOIOLLEIg
LOIOLLEIg n nipiù Nella
f igr ra sono no ripo dLr
port -+^ r due
rortale
Jura
Jur
ame
traam tinto n,
I re distintr
distinl neila
ttcl
^^l ila
la pr
frrima
prlrima
si
+.^-I
tr.^-I ^.1-t)Lt
LtI d) tut isce
t)LC rna.ì cal
-^ un
-. una -î+
ci
LOatena
ìtena L

>n meno
cor
)n o tddi 1€
no( l6 cara
16 car'atteri
atteri
t^t-\
(Hc -\
q/
rvrq/ EE neila SCC(
^ ^^l
^^tl
ttcl
^^il.
rrcil(
rrcrl ;econo
se ondala
aunun
Esempio della struttura delle due trame, in cui tutti i byte sono espressi in esadectmale. -.^^i^r Tr:m-
tro) me5saq(
altr messaqc
)o99rw.
ssag ).. ln en'
enrr.ram- r

fli1, rtl'+,,i iill+r.t +r:t' il i .,,,{ ! Él +,;:, i::É frÈ i? ir -4;,,r'lil,jií


,rtll!1ta::r::aaa@t:t:*aaa,a*aa,:
ij + i.l+.i,i, :;l . 5i.
=li{
t,i.,rt]ffi:r;i6ììììrÌllllll\tLaaaaaaaa:aè.:
hi si srnnone rhe si:no diretti al ricevitore 12 e che smesso, e la trama completa approssimativamente 100 ms.
arrivino dall'emettitore 6. Si fa riferimento al byte di 3'.- Tempo di ricezione del messaggio tramite R.F
checksum con XX. ll ricevitore MSERX inizia a ricevere tramite R.F. la
trama dei 2O hvte drrrante oli stpssi 2O ms in Cui viene
;i,''; :,, l; ' ::t. , ti i, t' ,,;,', ,
'i !-'l,f t" trasmessa. L'emettitore e il ricevitore devono essere sin-
t,'. i r,t;, '':,;' ;.; :,"
' l ,
cronizzali alla stessa frequenza di 2.000 baude.
Per calcolare il tempo totale che dura un trasferimento, Ricevuta la trama si separa I'informazione dall'intesta-
dobbiamo considerare i seguenti tempi parziali: zione e si calcola il checksum
1". - Tempo di trasferimento fra l'applicazione del- 4".- Tempo di trasferimento fra rl ricevitore e l'appli-
l'utente e l'emettitore MSETX. cazione dell'utente.
5i suppone di lavorare a 9.600 baude e che ogni All'utente vengono inviati solo i byte utili e il byte di
r-:r:ttertr imnipohi npr traSferirSi 1 mS. ll Sistema Utente induizzo del trasmettitore (Dt), in totale '17 byte, che a
invia al N/SETX il byte che defrnisce I'induizzo del ricevi- 9.600 baude impieqano 17 ms. ad essere trasferiti.
tore (Dr) e quelli dei dati, con un massimo di 16. Totale
17 ms, come si può vedere dalla figura.
2o. - Tempo di emissione in R.F. tramite MSETX.
Dopo aver ricevuto il messaggio dall'applicazione Iempo di invio di una trama tramite R.F. 100 ms

dell'utente, MSETX scompone la trama completa di 20


byte, dei quali calcola il byte di checksum (Chk), il
numero di caratteri valido (L), e aggiunge il proprio indi- Tempo in calcoli intermedi 3 ms
rizzo (Dt). Dato che la velocità massima della R.F. è di
2.000 baude, un carattere impiega 5 ms ad essere tra-

] CONTROLLO
coNTROtto

ll tempo di trasferimento La ilcedone tramite R.F. della trama impiega gli stessi 100 ms
fra l'utente e I'emettitore è di 17 ms che dura la trasmissione.

ll tempo di emissrone ll trasferimento di una trama tra il rtcevitore e l'aaalicazrone


di una trama via R F, è di circa 100 ms dell'utente a 9.600 baude dura 17 ms.

:it : .,r:,i :; ::+t!'.i;, ,,i1, ,: ,:;,-r.1!t.,1;,.;'1Ì ij u ,;:y:;1;,i ')l;'ii':!,'1';:


Í1fl ÍÍ1fr ililffi lffi r.rffi !ffitsà€i;rirrrrrrrrtit!!*ut!tttililill
Invasione di microcontroller
con memoria flash
SH: questa e la ragione per cui la Arizona Microchip
ha deciso di potenziare la Iinea di prodotti basata sul-
ll nostro vecchio amico, il PIC 1 6F84, è stato sceìto per la tecnologia FLASH.
controllare Monty, ed è utilizzato anche ìn molti pro-
dotti sviluooati in tutto il mondo.
Ricrrlt: rrn di<nnciti\rn " nirrnla nÒ\/err'ì ntrrn oq- La "f lessibilità" e la parola chiave che definisce questa
senziale". Non ha molte risorse, iniziando dalla capa- tecnologia e le sue principali caratteristiche sono espo-
cita della sua memoria, passando per i temporizzalo- ste nella tabella.
ri, terminando con lo scarso numero di pin l/O digita-
li. Tutto questo spiega l'appellativo di piccolo. Quello
di oovero fa riferimento alle risorse abituali in altri mi- 1". Facilità della cancellazione elettrica dell'informazione contenuta,
crocontroller. Così ad esempio non ha convertitori tn ione con le memorie EEPROM.

AD. né oorte di comunicazione.


Pero tutto si risolve con il fatto che è "essenziale"
oerche i orocettisti fanno addirittura miracoli con le
30, Basso costo degli strumenti di sviluppo.
sue limitate possibilita. Le altre caratteristiche di spic-
co del PlC16FB4 si riferiscono al suo basso costo e al-
la sua semplicita di funzionamento e di programma-
zion e. 5". 5i facilita la messa a punto del codice nel chip stesso, già installato sopra il
Non dà problemi e sia il produttore che molte dit-
te che lo applicano offrono una enorme quantità di
informazioni e di strumenti per il suo utilizzo. Però,
rhe ros'ha di snprialp oresto PlCT Ia srra caratteristi-
ca principale e la memoria di programma di tipo FLA- 7". 5i può sempre inserire nel prodotto l'ultima versione
del firmware

9". ll cliente finale ouò riscivere il codite.

11". Non esiste una differenza apprezzabile fra il costo


delle memorie FLASH. OTP e R0M.

Nello sforzo per migliorare le specifìche e il com-


portamento dei circuiti integrati con questa tecnologia,
Microchip ha ottenuto all'inizio del secolo XXI delle ele-
vate prestazioni, passando da una produzione di 0,9
micron ad una di 0,5 micron: così si riduce considere-
L'umile PlCl 6FB4 vnlmonto il fomnn
,,vv di q nor
v, crritfr rr2 vr,
rirln
!,L,v d:i 1O m< nor
si impiega in migliaia di prodotti in tutto il mondo
parola a 1-2 ms per blocco di programma, che a se-
, I

**f|el

conda dei modelli può contenere 8 K parole, 32 o solo PREZZO

una. In altre parole, nei moderni microcontroller PIC


con memoria FLASH, si puo scegliere fra cancellare e
scrivere tutta la memoria, un blocco di diverse parole, o
una sola parola. ln questo modo si arriva a gestire pro- ROM CON
MASCHERA
grammi fino a 64 K parole in meno di 2 secondi.
Inoltre la capacità di autoprogrammazione di questi
nrrovi PIC nermottp di realizzare cambi e modifiche del
programma a distanza Sotto questo aspetto, sia Mi-
FtESSIBILITA
crochip che diversi costruttori OEM, come Ingeniería de
Microsistemas Programados S.1., dispongono già di
Andamento dell'evoluztone della memoria FLASH migliorata,
e della memoria ROM con maschera.
CARATTERISTICA : MEMORIA FLASH i MEMORIA FTASH
: VECCHIA : MIGLIORATA

., ::.ttyr, Nîl4OlNl,, . z_s,s voc I z_s,s voc chip e di strument, focalizzati a potenziare l'autocari-
vdd
camento dei programmi, e la messa a punto in tempo
::::::1':111111',,111L,:

.,7gy1tto*rot .:':,:," 12,5-13,5Eterno i toSffsso


reale. Nella tabella si mostrano i dati riguardanti il
PROGR,A"MMAZIONE 5V Vdd RANGE DI Vdd
romnnrhmcnto c lp raratteristiChe rjlevanti delle me-
morie FLASH classiche, e quelle migliorate con la pom-
pa di carica. Alla fine del 2001 si è arrivati all'equipa-
razione delle memorie FLASH migliorate, con le me-
morie ROM con maschera, rispetto al rapporto PREZ-
ZOIFLESSIBILITA' così come sì puo vedere graficamen-
te nplla f inrrr: ll nrin\/o nro.esso di nrodrrzione della
memoria FLASH con tecnoìogia a 0,5 micron, non so-
lo riduce il costo dei microcontroller, sino a permette-
re l'inleorazione conoiunta della memoria EEPROM dei
dati, ma ha portato le capacita di queste fino a'128
zhvio
,\vy r!, a rirlarrn l^ Àirnensioni delle Celle di infOrma_
zione a un solo transistor.

Other Fmtures

PrcróF874 F, l/o,lcD, PSP


sellPrqrcming, 9-hit

2só13ó8133 40P.441
upO,spr
|

|
8 {10-bil) r lt
tolit l'a USART
Mk/sPl
20 per l/0,1C0,
Self'Prqromins,
PSP,

9-bii

Nuovr microcontroller PIC a B bit fabbricati da Microchta con tecnolooia FLASH

,
.:,,**r*,,:-,.....urn;.--rirr*r.rt**^*"r.r-,llil

N'IICROCONTROLLER í*'F*,,,,R,'*2*,,,.***tr:rin**rrirr*

ll successo della memoriei flash

re
Una volta provata la tecnologia FLASH con il SOIC 28-Lead SSOP
2$Lead
PlC16F84, gli utenti hanno richiesto con for- .so" "ss,,
z: mndolli nir r nnionti,\, o
! nndarn<
vvuLl
rnn rr ri nn-
LLr qyillnn:ro
tor rviluVVurL nr^notti lmh:-inci I r rann
^i,' OIllUl4lW)1. Ld ICVU-
prvVLLLr PIU
la fondamentaìe nello sviluppo di un proget-
to basato su microcontrollel è che la soluzio-
re
ffi
44'Lead,PLC
np r^omnlct.r de I sistema sia conter;ta in un
chip. Per questo al PIC 16F84 brsognava au-
ilrerLdre l^
'-^^+îr^ re --^--i+-
LdlJdLrrd ur
^limemofì4, aggiUngefe re
w
dispositivi esterni, includere un convertitore 44lead MQFP 44-Lead TqFP
40'Lead PDIP
AD, delle porte di comunicazione, e aumen- "PQ,,

tare il numero delle linee di l/O digitali Con


questa f rnalita Microch o ha messo in vendi-
Contenitori ttpici dei nuovi PIC con memona FLASH
ta alla fine del milienn o una famiglia di mo-

MEMORIA : MEMORIA MEMORIA


quanto riguarda la memoria FLASH, lo supe-
PROGRAMMA : LINEE PIN
DEI DATI DEI DATI
q{ t/o CONTÉNITORE rano tutti, dato che hanno il doppio di capa-
19lH., IT!9M
64x 8 ut." t3
cita (2 K), il quadruplo (a K) ed esistono al-
_'l:l::" luilo 1 I' cuni modelli che arrivano fino a B K parole dr
22
'':u::10 'l"''n :::' 111:
28
14 bit ognuna. Non dobbiamo dimenticare
!lrho
lL nr ro<ti Plf :nn:r+^h^^^^ 1llî gqtttttto
tElrVUl lU atta ^î'î'hî
Ptct óF87t 2kx14 64 xB 128 x 8 40 vuLrLl
-
----"-:---- --- --- -- ..---
'nedia e utilizzano lo stesso formato e reper-
Ptct óF872 2kx 14 , 64xB 128 x 8 22
torio di istruzioni del PlC16FB4. Nella figura
-- ,orurrra- 4kx14 ,|nr*, 22 si possono vedere r contenitori piu utilizzati
ì

Ptcl6F874 4kx14 192 x 8 o; in cui sono introdotti questi nuovi PlC.

- *n.t.rrti
|
'.. . .... '.' . . .. ,:

8kx14 aat-t 22
--.- -.- .- .
-t

Ptcl6a877 8kx 14 , 3ó8x8 40

Principali differenze fra il PlCl6FB4 e i suoi fratelli maggiori


In un microcontroller, tanto importante
quanto la capacita di memorra, e ii numero

delli dr rricrocontroller con tecnorogia FLA- CONVERTITORE

SH, ai quali auguriarno un successo maggio- MICROCONTROI.I.ER , A/D iro BrT) íf-T
rvorr TEMpoRrzzAloRr Lo^l]î. ccp PoRTA
cANAg sERlALE

ro di crrrplln ronsenrito con conosciuto il "'."'-'... ..... ..........:


:

PlClóF84 TMRO.SBITS :

PIC 16F84 Per chiarire alcune caratteristìche


i
...-. ..'.'......"'-..:
nrìio-tí-
d questi nuovi PIC presentiamo una tabella,
r

Ptcl óF820 TMRI -I ó


TMR2-8
presa dalcatalogo di Microchip Come s, puo TMRO-8
Ptc Iót87r TMRI-Ió
vedere dall'analisi della tabella, il PlC16F84 .Ii!tB?:9
TMRO-8
rimrna
|iltd|c :ll'rrltimn
dil pu)tu ,^
urLilru nncin rr ^, rîh+^ o. LoPoLrrc
\_.luorLw --^--i+. Prcl61872 I TMRI -I ó
ll!!B?:8,
cn ll)ul)c.
ricnrcn Trr In LoloLLE|r)rLr
llo lc r:r:ttarictirho rE niij
Pru
r:nnro(on-
rol.JfJrs)Err-
PtctóF823 2
TMRO-8
TMRI -I ó
tative, che rrflettono la differenza tra questo ..T.t'n?:8

PIC e i nuovi modelli, le piu importanti sono


TMRO-8
TMRI.I ó
UIART . I

rîn^r^.^n+î+a nnll- +.ho1l: doll: finrrr: l-):


''iii,'ii .-rMRz-8
Mr'c/sPL
-.'---..-- --: --. -

l dPPl c)cl Ld Lc rcilo tcvsilo uEilo r tgut a. va


Ptc'tót87ó 2
TMRO-8 U.5ART , r
TMR'I-Ió
trhnllr .i .^^.ondo Mr'c/sPr
qutr)Ld
^,,^c+a toucllo )l opPlErruc rhe
Lr rq r fr;tolli
r oLcilr m:n-
rrrov- IMR2.8 ,

TMRO.8 USART
mnl+r nir LoPoLrLo
rrnrri+r Ptcl6t877
ninrr
J'-' dol
.--, Pla 16FR4 h:n^^
- ,,_ ilru ||rurrc Pru
TMRI'I ó
TMR2.8 Ml'?c/sPl

di memoria, molte piu risorse e piu piedini


Dotazione delle risorse austliarte nei nuovi PIC
Esistono versioni da 28 e da 40 pin. Per
di lìnee di l/O e la quantità e la potenza delle risorse au-
siliarie che realizzano i lavori specificì e scaricano di la-
voro il processore. Ricordiamo le seguenti:
'1". Convertitore AD. I convertitori AD dei PIC FLA-
SH sono da 10 bit e a diversi canali.
2". PWM (modulazione di ampiezza di impulso).
3". Temporizzatore (TMR).
Ao Porte di comunicazione seriali (USART, l2C
e SPI). ll kit MPLAB-ICD di Microchip
permette di lavorare con i PlCl6FB7X sul prTdotto finito
5'. Modulo di Campionamento e Comparazione
(CCP)
6'. Porta di Comunicazione Parallela (PSP). 1'. Incorpora un programmatore o scrittore di
PIC 1 6FB7X.
2o. Strumenti per la messa a punto del microcon-
40
troller collocato sopra il circuito di applicazione.
3". Esecuzione in tempo reale con punti di fermata.
{rffi LINEADEI
Lo F<ort rzinnp,- n:q, a pa55o.
"-,5O
5". Funzionamento con range di tensione 3-5,5
VDC e con range di frequenza 20-32 MHz.
ffi .à'$ff"',l" La possibilità di scrivere un programma nei PIC FLASH
montati sul prodotto finale riduce considerevolmente il
costo del prodotto, diminuisce il tempo di realizzazione,
La porta di <omunicazione parallela e supportdLa
rende possibile la calibrazione finale del prodotto e abili-
solo dai PIC-FLASH da 40 pin.
ta l'inclusione di codici di identificazione sul prodotto ter-
minato. Per poter lavorare con il PlC16FB7X mediante il
t\eld +-t.^ll-,.J^lr-
Nì^rl- Lduerd ueld filgura riprodotta nella pagina pre- sistema dì sviluppo MicroPlC Trainer, il suo costruttore ha
cedente in basso, sono riportate le risorse ausiliarie dei progettato un economico adattatore, denominato
nuovi PlC. La porta di comunicazione parallela e sup- ZOCBTX, che si inserisce su uno degli zoccoli e permette
portata solo dai nuovi PIC a 40 piedini, dato che per la di accoppiare, scrivere e sviluppare progetti con nuovi PlC.
sua implementazione si richiedono 11 inee
di l/O, delle quali B sono destinate a suppor-
tare le B linee di trasferimento bidirezionale,
e tre per il segnale di controllo (WR#, RD#, e
CS#). I PIC FLASH a 40 pin destinano le por-
te D e E alle porte parallele. Nella figura so-
nn rinnrt:to
rrv |Vvr lp j6pl6lpmant:zinni ul nli l-.lUC)Ld
nrrac+1
'rrrvrLlllEllLo4lUIll
porta dr comunicazione con i PlC16FB74/7 a
40 pin.
';
:; '!,: i
ti..t

it ' !'

Microchip ha tenuto in grande considerazione


ir
il {-++^
rcLLv ,.Ji ---^'.^-^^are
ur oLLUr rPovr r( i nuovi plc FLASH
con potenti strumenti che facilitano lo svilup-
no dei nrooetti Per ottenere cio ha com"ner-
cializzalo il kit MPLAB-lCD, adattabile all'am-
biente MPLAB, che già conosciamo e che uti-
Per lavorare con i PlCl6FBTXsul sistema di sviluppo MicroPlC Trarner, bisogna
lizziamo in questa opera. ll kit è caratterizzafo
utilizzare lo zoccolo adattatore ZOCBTX, che e mostrato nella fotoqrafta.
dalle seguenti prestazioni:

't:
:* : : l

I quattro moschettieri
PIC-FLASH
Parallela Slave (PSP), che si conf igura
I'lemorio diprogrommo Memorio doti Àfumorio [inee
MrcRocoNno[ER hroh d0 14 birl MM {bFel tEpRoM {byb} ll1 Porte Piedini con le otto linee di l/O della porta E

che srrnnorta le linee hidirezionali dei


PrclóF873 4k 192 128 22 3 28 d:fi o lo tre linoo doll: nnrf: D rho
. .. lFlqi9-71,.. " .,.-.:..- 128 33 5
49 servono per implementare itre
- ffIfl9. -.i -9_|f-._,,
8k
3_8ó
-- 256 22 3 28 segnali di controllo: WR#, RD# e CS#.
Pl0l6l877 l 38ó 256 335 40 Come abbiamo gia spiegato, i van-
taggi dei PlC16FB7X consistono non
Differenze rilevanti fra i 4 modelli di PlCl6FB7X
solo nella maggiore capacità di me-
moria, ma anche nella dotazione di
abbondanti risorse ausiliarie che facilitano moltissimo le
Considerata la somiglianza in termini di hardware e applicazioni più esigenti. Un convertitore AD con diver-
software che hanno i nuovi modellì di PIC con memoria si canali, tre temporizzatori, porte di comunrcazrone
FLASH, che potenziano la linea di lavoro del noto seriali tipo USART, l2C e SPl, porta di comunicazione
PlC16F84, per descriverli abbiamo scelto i quattro che parallela, PWN/, moduli di captur e comparazione e sino
LUPIUI ld mî^^i^.î^-z
lU la llld99luldl rlalla UJVLTLULTvL
l4u uLilL :<nott:tivo rnmmorri:li
LwrrllllelLldll a
e a '14 possibili sorgenti di interrupt, sono alcuni degli ele-
tecniche. Si tratta dei modelli P1C16873, PlC16FB74, menti che sono stati integrati nel chip dei PlC16F87X
PlC16FB76 ePlC|6FB77. Due di essi hanno 28 pin e gli e vengono presentati nella tabella seguente, che vuole
altri due 40. ln ogni modello con la stessa piedinatura sottolineare i vantaggi di questi moderni mlcrocon-
ne esiste uno con doppia capacità di memoria dell'altro: troller.
la differenza più visibile ricade
nel maggior numero di linee di I

l/O che possiedono quelli da MODEUO : PlCtóF84A PtclóF873 PrcIóF874 PIC|óF87ó pt0l6Í877 i
I

40 pin, dato che dispongono 1433ó i


1t11, _.]01-*. - ..'.-'.''-'.'.,-'.-]
.. . ..-
di cinque porte: A, B, C, D, E. 4O96xl4 8192x14 8ì92x14 :

Quelli da 28 pin hanno solo tre ....1?8.. .


256 :,

porte A, B, C. Nella tabella 3ó8 3ó8.


t?? .
della figura si mostrano le ,"-9-U-9"ti:1. ..-.. - l-ll9birl .. ,.-,-9,{19"19-*--i
caratteristiche che differenzia- si sisii
-''....- ' '---'t :

no i quattro modelli. Analiz- Line l/0 i ta ^. 22 33

LAttuw l-
--^,1^ +-l-^ll. ra-^-"-+i,,- - ìiÀit' '-"-'- -irsrrii/' --*'-niÀi'T/"
ta LouEilo LvIrPctoLtvd, coMuNrcazroNE
SERIALE I
I No USART/
I
MSSP M55P MSSP I
qi
rr dodr tro
uLu ULL \ | rL ru yr il rLrPo lc Ài{-
16,o l: nrinri^.lo u ll- ccPìNo22 t)
ferenza f ra i 4 modelli da 2B -ìì;il
IEMPORIZZATORE t.8 bir, i -WDT t-tó bir, 2.gBlT, I-WDT l.tó bir, 2.8Bll I.WDT i.iii'i' g''ii*' ; ;ú,;;i 1

e da 40 pin e quella relativa ''--''''|'|!9."l,!AI,'-tl|r'...'?0."'..'.-?9 ,,_ ?:" .19 -l


al numero di linee di l/O. (Progrommozionu
ICSP
sefrole rn crrcurtll
,, Si Si 5i )l
-
Questo dato puo essere impor-
tante in alcune applicazioni che
r'ro'*otu*
SORGENTI DI
i8B t8so,2oss 28p,28so 4op:44ttypo,Mpr
tit,'r
11
19t1'.*'i4!.

INIERRUPT
necessiîano di oeslire moite COMUNICAZIONE
PARAr-rErA (PSP)
periferiche diverse. Inoltre, i

PlC16FBl4 e 877 dispongono


Tabella comparativa del PlCl6FB7X con il PlCl 6FB4A.
di un dispositivo extra: la Porta
Cercando di riassumere le prestazioni che accompa-
gnano i quattro nuovi modelli, offrramo una descrizio-
ne di quelle più importanti e il loro funzionamento. Quesra archite'ttura ulilizzala da Microchip neìl'imple-
mentazione dei suoi microcontroller da B bit, e caratte-
rizzala dall'indipendenza fra la memoria di codice e
nrroll: doi d:ti
l'. Architettura RISC avanzata, tipo Harvard.
t^^^
LOn qUeSIa
^,,^-+- {il^-^{i-
TllOSOTlcì l-
ld --^--i+-..Ji
LdpdLltd ul ^^^i
u9rìl memOfì4,
così come la dimensione dei suoi bus, si adatta alla
, Tutte le istruzioni si eseguono in un ciclo di istruzione, meno quelle di
noro<qit: dol nrnnottn di nnni mndolln rondpndn nnc-
salto che ne impiegano due.
sìbile il lavoro in parallelo delle due memorie: questo si
riflette in modo positivo sul rendimento e sulla produt-
tivita del processore. Neila figura e riportata ìa struttura
5'. Modelli con 4 e 8 K parole da 14 bit per memoria
di codice tipo FLASH. dei PIC16FB7X con le due memorie indipendenti.
Poiche quella di programma puo arrivare ad una
capacità dìB K parole da 14 bit ognuna, necessita di un
7". Sino a 256 bvte di memoria dei dati EEPROM, bus di indirizzo da 13 lrnee e di un bus per trasferire al
processore ie istruzioni da 14linee, che e la dimensione
di ogni istruzione.
9". Sino a 14 possibili sorgenti di intenupt, La memoria dei dati SRAM accetta una capacità
"nassima di 4 banchr da 128 byte ognuno, il che esige
un bus diindirizzi da 9linee, due delle quali sono desti-
1 1". Modi di indirizzamento degli operandi immediato,

diretto e indiretto,
nate a selezionare il banco e le 7 restanti a selezionare
rrn:
ul lu dollo
uLllL 17R
I Lv nncizrnni
VvJtLtvt ll Ài
ul nnni
wVl ll h:nrn
Uol llv.

13", Codice di protezione programmabile.


8US DEGU INDIRIZZI
DETTE ISTRUZIONI

f,
l5o. Programmazione della memoria in modo seriale, utilizzando BUS DEGLI INDIRIZZI
DELLE IsIRUZIONI
solo due 1'r i r::Ll ,l

l7o. Basso consumo. Meno di 2 mA a 5 VDC e 5 MHz.


I bus delle memorte hanno la dimensione
r^ ri-oonibilita
-il- ur)l richiesta dalle caratteristtche specifiche di ognuna di esse
^,,î6'^ dilo
il t tludrtu delle risorse ausiliarie
nrp<ontt:mn
prc)sr rLrqrrrv t:
ro <ontlpp+n
rLVuLrlLc +rhnlìr Ll lE la rsrranlio arrit-
LdUclld, rha
nata menre. Nella figura è rappresentato uno schema semplìfica-
to dell'architettura Harvard deì PIC 16FB7X, dove si puo
vedere che il contatore di programma è composto da
13
rJ v,r ner indirizzare le momnr p di rndiro tioo FLASH.
hit vr,
lo. Tre temporizzatori:
TMR0 da 8 bit con predivisore da I bit.
ll contenuto del PC puo essere salvato e recuperato
TMRI da f6 bit con predivisore, nello stack che possiede B livelìi.
TMR2 da 8 bit con predivisore e postdivisore.
La memoria dei dati, a secoîda se si impiega l'indi-
rizzamenlo diretto o indiretto, ottiene l'indvizzo dell'o-
perando tramite l'informazione contenuta nella propria
istruzione o in nrella che risiede risnettivamente nel
30, Due moduli di captur e comparazione e di PWM (C€P).
registro FSR. La sezione della ALU, legata al registro di
lavoro W e ai registro di stato con i flag, e srmile a quel-
5". UsART.
la studiata per il PlC16FB4.
|LC^ ri.^r.^
ll)ul)c
i^+^"^^
lllLql llE E divcrsp npriferiche
lo urvLrJL
^ rg rhe aCCOm-
tL rl
vLrilLrrrt
pagnano ogni modello di microcontroller sono gli ele-

.''.':l',,:l'.'l'ill','''''..'..,.,:...i:..,l
...

,t :" ,,

menti di differenziazio-
ne. lnfine si offre una flffi.^t IJ

finrrr: rhe r:nnrtrqpnta


--13
lo schema comnleîo
delì'architettura interna
di un P|C16FB7X a 40
rc
re
8 TIVELLI
ISTRUZIONE
:=-=

pin. Nei modelli con 28 '!4


pin sono state eliminate
lp norte D pd F l: filo- DATI

.^{;
soild.,.Ji
ur t-,,^"^,.t^t
rdvoro uer pro-
^", .\8
\8
cessore è identica a
npr il
nrrpll.a ctrrdiat,a vLl

W
8\ 8\'
PIC'1 6F84, rinforzata
,,^i---^^+^,.J-ll-
unrcdmeIre oaila capa-
--^. GN

cità di memoria e dal-


8-\
l'inclusione di diverse
periferiche e risorse
mm
complementari.

Architettura Harvard semplificata dei PlCl 6FB7X


}ii {:[,1,] l,{a:1'f iJfi;Ji
Nella figura della pagina
<r rrroqqiri:
)u!Lq))rvo À rrPwr
q rinnrt:t: l:
(qLq ro
l3 ilffi .'I ':.\
distribuzione e l'asse- ilitÍútgdt* RAO/ANO

ffiffi R,A I /AN I

ffi
nn:zinne dei nipdìni nei :l RA2/AN2

modelli PIC 1 6FB7X.


ffiffi
HÉ#Kg#i
RA3/AN3/Vmr
RA4lToCKl

p nicdrn altrc (on


I 1
ry \9
RA5/AN4/55#

2B nin manrano delle


nortc fl od F In <onrri{6
rl4 sm .-
t1ffi RAO/ANO
RA] /ANì

rinortia mo r rna descri- ..m \8 RA2/AN2


RA3/AN3,rVn+

W
' RA4/rocKl

zione sommaria delle { :l


RA5/AN4/55#

funzioni e delle nomen- .8


''' 'tl '''r. :" .m Rco/iloso/ilcKl
rlatrrre di
-' oonrno
'Y' dei 3dw ."......,
'
B

RCì/lrosr/ccP2
,. uj Rc2/ccPr
pin dei nuovi PIC- !.'w
gi.
Rc3/scK/scr
r m Rc4/sDt/sDA
i Rcs/sDO
ffi
,_::
FLAS H. lffirlinrir:ll:r:r|lii€ i 'U
uJ Rcó/rxlDT

Piedini di utilizzo
oscr /cr-KtN

osc2,/ctKouf
ffi '::::'l1l'l'1i'iffi' 'ffi
%ffi,#i,'; j,1',i,::,1:,:,)'),)',:,1:
%tr 8\ "
',' l!]
El
Rc7lRX/Dr

RDo/PsPo

[-.1 RD2/PSP2
generale:
- OSC
,1/C
LKIN C
*u ffi '
m
Er
RD4/PSP4
RDs/PsP5

OSC2/CLKOUT: servo- #, rìrÌììììììììììììììììììììì' ".


U
w
RDó/PsPó
RD7lpsp7

nÒ ntrr
t,-'
q,rnnrìrlAro I
ìÌììì,ri,iiiiiIii,ìÌì,r,;;ìÌì'i,úFg

collegamenti del cri-


stalìo di orr:rzn inter-
no. Nel modo oscillato-
re R-C il pin CLKIN
riceve la freouenza di
lavoroeCLKOUTforni-
sre nr resta frpnr renza
divisa per 4. -=I=+=t ffi
Architettura interna dettaoliata dei PlCl6FB7X a 40 oin
- Vss e VDD: piedi-

+È+$ trH# E #sS#,ÌflFl'.


ni a cui si applca la tensione di alimentazione.
f;
MCLR#/VppiTHV fa
tx RBryPGD
- MCLR#A/PP/THV: Ingresso di Reset/Tensione di
Programmazione /Tensione alta in modo Test.
RAo/AN0 RBó/FCC

RAI /AN I it R85 Piedini della porta A:


M2/AN2/Vner- l9 RB4 Supportano le 6linee di l/O digitali, RAO-RAS, mul-
RA3/AN3/VruH
tiplexate con quelle corrispondentr ai canali di
RB3/PGM
ingresso del convertitore AD AN0-AN4, con quelle
RA4/ToCKl Ii R82
della tensione positiva e negativa di riferimento
RAs/AN4/SS# RBI VREF+ e VREF-, con quella di ingresso degli impulsi
RE0/RD#/AN5 RB0/rM di clock per il TMR0, chiamata TOCKl, e con quella
di selezione come slave (SS#) per la porta serie sin-
RE r /WR#/ANó Voo
crona.
RE2/CS#/AN7 Vss

Voo RÙ7IPSP7 Piedini della porta B:


Vss RDó/PsPó Supportano le 8lrnee di l/O digitali, RB0-R87, multi-
nlpxate ron l,a line: PGN/ di innresso dplla tensione
osc r /cLKrN RD5/PSPs
bassa per la programmazione deìla memoria, e delle
osc2/cLKouT RD41PSP4
linee PGC e PGD per la programmazione seriale
RCo/Tr OSO/Tr CKr RC7/RX/DT (segnale di clock e dei dati).
RC r /Tr O5r/CCP2 RCófix/CK
Piedini della porta C:
RC2/CCPI RCs/SDO
Supportano ìe S linee di l/O digitali, RC0-RC7, multi-
RC3/5CK/SCr RC4/SD|/sDA plexate con l'uscita del TMRl (T1O5O), l'ingresso del
RDo/P5P0 RD3lP5P3 clock TN/R1 (Tl CKl), l'ingresso dell'oscillatore TMR'l
RDr /PSPr RmlPsP2 (T1OSl), l'ingresso del modulo CCP2, l'ingresso al
CCPI, l'lngresso del clock sincrono (5CK/SCL) dei
modi SPI e 12C.
qrnnnrt2no lp linpp di rnoresso dei dati in
Innltrp Juvvvl
MCLR#/VppITHVlà,,,,,','11,1.1,.,,,,,,,,,,,,,..,,,. NBTPGD
modo SPl (SDl) o quelle dei dati in modo l2C (SDA),
RAo/AN0íi3 RBó/PGC
,.;,,,,,a,,,4,4,,,,,4,,.,,4,,,, l'uscita dei dati in modo 5Pl (SD0), la linea di tra-
RAI/ANl*up',,,,"t,,,,,,,,,,,,,,,,,,,,,,,t nB5 smissione dell'USART (Tx) e quella del clock sincrono
nm7nr.rzru-" $ lll,rrìiliiììì RB/T (CK), quella del r cevitore dell'USART (Rx) e la linea
RA3/AN3/Yn*,
-*É,,:i:
RB3/PGM
dei dati in modo sincrono (DT).

RA4/TocKl it r RSz
Piedini della porta D:
RA5/AN4/5S# : ÍBl Oltre a supportare le B linee di l/O digitali, RD0-RD7,
v*È RBOIINT ha mulliplexate sopra queste Inee, queìle di trasferi-
oscr/cLKrN i Vm mento bidirezionali dei dati della Porta Parallela
Slave (PSP0-PSP7).
osc2/cLKour I Ys
RC0/TIOsO/TrCKr I RC7/RX/DT Piedini della porta E:
A, ,nr+r ^^"+- h - .^r^
RCr/TrOS|/CCP2 i RCé[X/CK vuc)Lú pur Ld rrd )uru tre linee che f UnziOnanO COme
l/O digitali, RE0-RE2, e hanno multiplexate le se-
RC2/cCPr i RC5/sDO
guenti funzioni: segnali di controllo della porta
Rc3/scK/scL I RC4/SD|/SDA
parallela PSP (RD#, WR# e CS#)
Innltrp noqqono anche funzionare come canali di
ingresso per il convertitore AD nei modelli a 40 pin
Piedinatura dei ctrcuiti integrati corispondenti ai PlCl6FB7X. (AN5, 6 e 7).

$e s* e * d* *+ l+ F,iE H F- # *+E + #,,* È F+ H ff 'E S F ".# ig H.


Organ izzazione delle memorie
e repertorio delte istruzioni
zioni che gesriscono lo stack, Ogni volta che si esegue
L'architettura Harvard dei PlCl6FB7X determina l'esi- una istruzione CALL o si produce un interrupt, il valore
stenza delle due memorie indipendenti, una dedicata a del PC si salva automaticamente nello stack. Ogni volta
contenere le istruzioni e l'altra per i dati. Questa carat- che si esegue una istruzione di ritorno dalla subroutine,
teristica migliora notevolmente il rendimento del pro- RETURN, o una istruzione di ritorno dall'interrupt, RET-
cessore potendo accedere simultaneamente alle due FlE, il valore che si ritrova in cima allo stack si deposita
memorie, di modo che mentre unalocalizza il codice di nel PC. C'è anche un'istruzione simile a queste ultime
una istruzione, nell'altra si legge o si scrive un operan- di ritorno, pero con una particolarità, ed e la RETLW
do o il risultato dj una operazione. Un altro vantaggio Come si vede nella figura, le 8 K parole da '14 bit
inerente alla separazione delle memorie, è collegato alla ognuna che ammette come massimo la memoria
possibilità dl progettare la capacita e la dimensione dei FLASH dei PlC16FB7X, sono divise in 4 pagine da 2 K
bus per ognuna di queste memorie. La memoria di pro- l'una Cosr come nel PIC 16tr84, jl vector di Reset e quel-
gramma dei PlC16F87X è ditipo FLASH, il che indica la lo di lnterrupt si trovano rispettivamente negli indirizzi
sua capacita di tollerare fino a circa 1.000 cicli di scrit- 0000 e 0004 Hex.
tura /cancellazione. Dato che la scrittura e la cancella-
zione si realizzano mediante energia elettrica, non è
necessario nmuovere dallo zoccolo il microcontroller Per memorizzare i dati e gli operandi, i PlC16F87X
per eseguire queste operazioni; tali caratteristiche dispongono di due zone diverse. Esiste una zona di
hanno convinto molti tecnrci ad
ulilizzare d ispositivi con memoria
Fl ASH: r:n:rit: m:
| ,,,Jsstma sup- MEMORIA
portata dai quattro modelli di DrcoDrcE
PlC16F87X che sono stati sele-
I
zionali e di K n:rnle da 14 bit
ognuna. La lunghezza delle
pdrore e l^^-+- -ll- otmenStone
^-.^l^ ^ regala aila ^ 0004 h
del formato del codice delle oo05 h tNDtRtzzl

istruzioni dei PIC della gamma 1'


media. Per poter indirizzare 8 K
posizioni, il Contatore di
OTFF h
0800 h r3\
Programma, o PC, ha una
OFFF h
dimensjone da '13 bit ed e legato
r000 h
a uno stack LIFO a 8 livelli. ll valo-
re del PC si puo scrivere nello
ITFF h
stack e, parimenti, il primo livello
r800 h
dello stack ouo essere caricato
nel PC. Oueste onerazioni di sal-
vataggio e di carica del PC con Io IFFF h

stack si realizzano automatica- l3


mente senza l'intervento del pro-
Organizzazione interna e rndtrizzamento della memorra di proqramma FLASH.
grammatore. Non esistono istru-
I

P95

tro possibili banchi dove sì trovano le posizioni a cui


REGISTRO DISTATO accedere, si utilizzano due bit: RP1 e RP0, che occupa-
no
I rv le
,L nosizioni
vvJ,4,v 6 e 5 del
vLr Ronis,fro
| \LYIJLI di Stato rome si vede
nella figura.

',", :'
, i"'':,"', I .

Struttura interna del Registro di Stato, i cui La memoria RAM ha due forme di indirizzamento, che
bit 6 e 5, RPI e RP), selezionano il banco della RAM dove sono
posizionati gli indirizzi a cui accedere. sono chiamate "modo di indirizzamento" e che sono il
modo diretto e il modo indiretto. Nel modo di indiriz-
zamento diretto i bit RP1 e RPO del Registro di Stato
memoria dei dati non volat li, di tipo EEPRON/ e un'al- selezionano il banco. Per puntare ad una delle '128 posi-
tra indipendente SRAM volatile. A seconda del modello zioni del banco scelto, sono necessari 7 bit che arrivano
d PIC la EEPROM puo arrivare ad una capacìtà di 256 dal codice delle istruzioni dove occupano le sette posi-
byte, che si gestiscono mediante dei registri appositi zioni meno signìficative. Nell'indirizzamento indiretto la
che contengono gli indinzzi, il dato e il bìt di controllo. posizione del banco si determina con i sette bit meno
ll loro funzionamento e la loro gestione sono stati stu- significativi contenuti dal registro FSR, delì'area SFR

diati nel PlC16FB4,


e sono identici Per
i suoi fratelli mag- IN DIRIZZAMENTO DI RETTO INDIRIZZAMENTO INDIRETTO
giori. Nella zona
della memoria dei
FSR
dati di tipo RAM, STATO CODICE OP. ISTRUZIONE STATO

sono ubicati i regi- 13 ó 0

stri specifici (SFR), i ffiffiììììì ffiX


cui bit controllano
il f unzionamento
delle risorse, idi- .-2 .r'
spositivi del pro- 7 tNDtRtzzAMENTO SELEZIONE INDIRIZZAMENTO
'--aLnNTERNo DEL BANco DEL BANCO ALnNTERNo orl slNco - 7
cessore e r registri
di utilizzo generale
(GPR), dove si scri-
vono i dati che
desidera il pro-
grammatore. La
RAM sr organtzza
in banchi da 128
byte ognuno. Ci
sono due modelli
di PIC'l6F87X che
dispongono di 192
byte e gli altrì due
arrivano a 368
hrito Por colozin-
nare uno oel quar-
BANCOO BANCO I BANCO 2 BANCO 3

Modi di realizzare
I'indirizzamento SETEZIONE
DEL BANCO
diretto e indiretto
nella memoria RAM.
della RAM. Per trovare
ilil ucr
h:nrn
rlv in rocin utLl-
rrli
re re
rc re ilm
ffi
| | nr
9uE)Lv 00h 80h l00h r 80h

ru ryru re
mo modo di induizza-
mento, si utilizza il bit
0rh 8rh r0r h
@N@ t8th

meno significativo del


ffitrffi
02h

re
ru re
82h

re ryff
r02h

ru
I 82h

ffi tr
03h óJn t03h
FSR insiemeal bit lRP, r 83h

che occrrna anche la


posizione meno signifi-
04h

ru
re
84h I 04h r 84h

w
05h 85h | 05h ì 85h

r:tiv: dpl
ret
Renistro di 0óh 8óh r0óh I 8óh

Stato. 07h
ffiSffi 87h l07h I 87h
i modi dr
W
\rììì
Entrambi
08h 88h ìliì$ltll,llllrllllrltllffis t08h r 88h
indirizzamento sono
snieoati oraficamente llllllllllllllllirllllrllffi!l,
09h

@
ìS$Willlffffiffill 89h r 09h
il::
MEil
r 89h

nplla finrrr: Pcr nrral-


+^
ro .;^,,-",J-
flguarOa l-ra orslr|0u-
^li-+"il^.,
zione interna degli
0Ah

0Bh

0ch
re
ru W@
8Ah

8Bh

8Ch
I

roBh

toch
oAh

re
-
I 8Ah

I 8Bh

r 8ch
indirizzi della RAN/, 0Dh 8Dh t0Dh
ltrm
G!!il
r 8Dh

rc
com'è abituale nell'ar- 0Eh 8Eh r 0Eh I 8Eh
chitettura dei micro-
controller PlC, le prime
0Fh 'ìliiiiliiiliisWffi$Wll 8Fh
rem: I 0th r 8Fh

posizioni di ogni banco


sono destrnate a con-
r0h

ilh re
$r$$llllIililiifitffi: 90h

9rh
I

lilh
l0h I

r9rh
90h

tpnore i rpnistri snorifl-


-'r-'ner "il controllo delle
ci
ri<nr<o dol nrnra<<nro
'- queSIa
^,,^-+î -.^-
area -i -Ai--
sr cnrama
r2h

tJn

ì4h
ro
-il
92h

93h

94h
I

I t3h

I t4h
l2h r

I
92h

93h

94h

l5h Kllllllltllllllti\iù.wnr 95h Ir5h I 95h


SFR. Gli ultimi indirizzi
,-li ogilr h-^-^.^^ róh ,tlllffiNNlllllllll 9óh r róh r 9óh
ut ^^^i udrìL() 50no
dedicati a contenere
d:ti di riilizzo ntrnpra-
le che necessitano al
programmatore
i
r7h

r8h

r9h
re $ll$|fillllilllllmN 97h

98h

99h
It7h
I t8h

I l9h
t97h

I
98h

99h

rAh Mltlllllrlílrlllllllill$wffi i 9Ah r tAh r9Ah


Questa zona si chiama lBh 9Bh ilBh I 98h
r:iffi ffi N$ììtlilrlliilliIilì
GPR Come rinorlalo
rch 9Ch I tch r 9ch
nella figura, ci sono :llllllllllilfii&nx\
lDh 9Dh IIDh gDh
molti renistri snprifici
ffi
.llillllllllltlllllli,tl:llllllli r

nelle prime posizioni di


ogni banco.
Molti di piu che nel
rEh

tFh

20h
re 9Eh

9Fh

A0h
ilEh

ilFh
| 20h
I gEh

I
9Fh

Aoh

ffi ffi ffi


PIC 1 6F84. Questo è
lnnirn norrhó i nrrnr' .:

PIC disnnnnnnn

t
di
molte risorse (convertr-
tore AD, CCP, porte di
il::r Eth I óFh I EFh

I thi.aTionp dci raoistri


specifici (SFR) e di utilizzo
generale (GPR) nei
PlCl 6FB7X dei 368 byte
della RAM.
Bonco O
ffi ffi ffi Bonco I
F0h

FFh

Bonco 2
r

|
70h

7th
Bonco 3
:,"
"
t, t
- ,t ,tt'
P 96

Renlrt.in cli i<fn tzinni


MNEftIO. PAAA. dei PIC della
Nlco lrtETRl OPERAJZIONE CICil FORÀTAIO 14 BIT FTAG
gamma media, valido
ISTRUZIONI CHE GESTISCONO RIGISTRI per ì Plcl6FB7X
oddwf f,d SOMMA W e f 000rrr dfllÍftr c, Dc, z
ondwf rd ANDdiWef o0 otol dfff fftr z
clrf f CANCETTA;ZTONE di f o0 fitr z
che le ui.ilizza il
clrw e CANCEI.I.AJZIONE di W 00 k"t t z
comf rd COMPLEMENTO di f z PIC'l 6FB4 di cui è
decf rd DECREMENTO di f z dotato Monty. Visto
incf fd INCREMENTO di f z che i PlC16FB7X ap-
iorwf f,d ORdi Wconf z
movf îd MOVIMENÎO dif z partengono alla gam-
movwf i MOVIMENIO di tto f ma media dei PIC a B
noP èe N ES5UNII. OPER'T'ZEINE,i-';$ì Ai+
urL, -,,^^^r'+î^^
)uppur Ldr ru l^
ru
rlf Íd RQIAZIONE di fo
rrÍ ,,r ROfAaOt{È di f ,c
stesso insieme di
i<irr rzinni l- nm'À nn<-
subwf rà sonnÀzKfr{j
swopf ÍÀ lNlERltCArrtBpdC <ihilo no<tira rnn lo
Goni4
,Iofiwf EOR ho stesse istruzioni un
4lì::iì.':::,1'j! microcontrolloer così
bcf fÀ semplice come il
bsf fÉ MTSSA
PIC'l6FB4 e altri così
l
nnl-anti a rnn mnl+o
btfsc, ,1.;;,b ,, E;' i:,,::.ttlétl; Pv Lr | ,Ll

bú..s.É,,,,1,.
:::l,tlt\,,,
;.ffi$,trd*, cfiÍ risorse come i

éúgÉ ,lrlli.l: dfff fftr


PlC16F87X? La diffe-
ind;ì',, rf;,:d: trl dfffffff
renza non sta nelle
oddlw: ll lllxkkkkkkkk c, Dc, z istruzioni, ma nei
ondhr K AND r r I ro0r kkkk kkkk z ronctri <norifiri .l
i i

!orlw V:,,:tL,:,,,1p;lR.|àLi | ,,,,1i 1000 kkkk kkkk z


controllo dei disposi-
movlw oW I ll00xxkkkkkkkk
sublw {k-tt4r' t ll llOx kkkk kkkk c, Dc, z tivi. Ognuna delle
xorlw con'ì/il I ll l0l0kkkkkkkk z nuove risorse dispone
É SPECIAII
nella zona SFR della
coll iubrotrrine 2 t0 okkk kkkk kkkk
clrwdt delWATCHDOG r 00 0000 0r r0 0r00 #To, #PD RAM di registri ade-
goto SAtiU a un indirizzo2 l0 lkkk kkkk kkkk nrr:ti nor
Y-' nrnnrrm-
reffie RITORNO 2
dg",.illàtrupt OO 0000 0000 l00l mare il proprio com-
retlw RITORNO rciivcndo un tetterqle in W 2 I I 0lxx kkkk kkkk
nnri:montn lnnltro
RIORNO do subroutine 2 i
return 00 0000 0000 t000
sleep MESSA del microprocessore in riposo I 00 0000 0l I0 001 I #TO, #PD piedini dei PIC'1 6FB7X
h:nnn mrlfinloY:to
molte funzioni di
comunicazione, diversì temporizzatori, ecc.) e ognu- innresso rtscita clock tr(e dr nrrpsti elpmenti. Nella
na ha bisogno cìi registri programmabili che ne con- figura è riportata una tabella con l'insieme delle istru-
trollino il funzionamento. Nella figura esiste una zinni doi PIC doll: .ì:mm: mpdi: ll nnrnnÒ rho ooct;<.o
zona di registl nei banchi 1,2 e 3 che è mappata nel i roniq.tr/ Lp i,il ynrru|./yv
rnnn L'rho nocticro i hit snnn nrroili rho
r..-^-^ -^li i^..1;.i--,
udtrLU u o9il
-7n_-7tr
iltutttLLt Iw-/ | t-.iov
(inni{ir' .he
| lE^. JtytilrrLo gli indi_ nprr-eltnno ,ai nrrovi PIC di onerare al rnenlio delle loro
^ Ll
rizzi di nrro<ti tro h:nrhi rnrri<nnndnnn .nn nrrolli dal potenzialrta, visto che con le loro istruzioni si possono
h,anco 0 pseo,rendo rln accesso ad essi e corne se si nr^nr:mm:ro ironiqtri o ihit <norifiri doi rani<tri rho
realizzasse un accesso al registro corrispondente del gestiscono le risorse ausiliarie.
banco 0. G'i altri tre gruppi dr istruzioni, che contengono le
istruzioni di salto, le istruzionl che gestiscono operandi
immedrati e le istruzioni specrali e di controllo, hanno
ll lettore conosce e ha utilizzato rnolte volte le 35 istru- p"aticamef te lo stesso sign f,cato e la rredesina aprlii-
zioni cornspondenti ar PIC della gamma media, dato cazione in tutti i modelli di PIC della qamma medra

l: '. t,
Questi sono i poteri
dei PICl6F87X
resentando questi PIC come if ra-
telli maggiori del PIC 16F84, è
W
USCITA TMR2 A SSP
stato detto che possiedono una
capacità di memoria molto mag- REsET
giore, però sono i dispositivi e le
ricnrco rho [\rlirrnrhin h: inrnrnnr:tn:l
TMR2IF

,A
re NW
4\
loro interno quelli che forniscono la vera
f orza.
,.ilil@ :ffi;
4\
Anche se in quest'opera non si dispone îliw-
."n}:
di spazi sufficienti per descrìverli in detta-
glio, vogliamo fornire un'idea generale sul
.rlmnort:montn o lo r:n:ritÀ donli olo-
Struttura interna del TMRl con i blocchi principali e i segnali di controllo
menti piu interessanti che sono incorporati
ner PIC 16FB7X.
I nuovi temporizzatori o Timer, i moduli di Capture, TN,4R1H:TMR1L, che sono incaricati di memorizzarne il
Comparazione e Generazione di lmpulsi e di Ampiezza contenuto in ogni istante. Questo valore evolve da
Variabile, il Convertitore AD, le Porte di Comunicazione 0000 sino a FFFF Hex e ouando oassa nuovamente sul
'Seriale, sono i disposìtivi di cui faremo una breve anali- valore 0000 si attiva il flag TMRl F e se si desidera si puo
si, senza approfondire il discorso sui registri di control- provocare una richiesta di interrupt. ll valore presente in
lo, la cui corretta programmazione suppone la gestione TMR'lH:TMR1L puo essere letto e scritto e gli impulsi di
dei medesimi. clock che originano il conteggio ascendente possono
provenire dall'esterno o dalla frequenza di funziona-
mento del microcontroller (Fosd4). ll TMRl può funzio-
Dei tre temporizzatori disponibili nei PIC 16F87X, questo nare in tre modi:
è l'unico che ha una dimensione di 16 bit e che funzio- 'l
". Come temporizzatore.
ne cnmp rrn TcmnorizZatOre/COntatore. Per oestire 16 2". Come contatore sincrono.
bit è necessario concatenare due registri da 8 bit: 3". Come contatore asincrono.
Nlal mnÀn +amnnri77;1gfe il ValOfe COn-
catenato TMR'1H:TMR'lL si incrementa con
nco/rroso/rrcrr B # ncr /rrosr
ogni ciclo di istruzione (Fosd4). Nel modo
@ contatore l'incremento si puo produrre con
&
4 a_
I r=b,
IMRì|E
./-\
ifronti disalita di un clock, ilcur ingresso è

w ffi il w E@IE
--...:-i' applicato alla linea RC0 e RC1 della porta
C, o tramite gli impulsi applicati sulla linea

: ,
try
:,t
mwx
ttW
RC0. Nella figura è riportato il diagramma
a blocchi del TMR1, in cui possiamo vede-
re il predrvisore di frequenza

'"1ì

Schema a blocchi del temporizzatore TMR2


Questo potente PIC dispone anche del tem-
porizzalore TMRO, pero dato che il suo
comportamento è simile a quello studiato nel PlC16F84
nnn ,v nrondtrrpmo
| ,v, , In v,Ll
in ronsiderazione e ci concentreremo
sui due aggiunti: il TMRl appena considerato e il TMR2.
9\lO0

hit
Quest'ultìmo è un temporizzalore ascendente a
2ll'intornn
utL, oil iltLEr rru dol
ugr nrr:lo
9uo,- cì lonnprp p- q66jrroro
nrro ,-JJ-,-
-,r-- '',,vqlq' innl-
lÌlul-
8
ro*ffi
9lo-o
tre può realizzarc operazioni speciali per la Porta Seriale
e per i moduli di nzlccprffiE
Sincrona (SSP) Capture e @ 90
Comparazione. t0\
ll segnale di clock del TN/R2 e quello interno Fosd4, RC2 ABILITATO
prima di essere applicato passa attraverso un prediviso- COME USCITA 98-o
re di f requenza con range 1 :1 , 1 .4 e 1 :16. L'uscita del
TMR2 attraversa un postdivisore di frequenza con range
grc
70
compresi da 'l:1 a '1:16, passando per '16 valori possibi- 8\
li. Quando il microcontroller entra in modo riposo s
ferma l'oscillatore interno e il TMR2 smette di funzio-
nare.
Schema semplifrcato

,: : :i'.._,:1, , ,1 elel moclt tln Ce P1 ottanrlo funziona rn modo PWM.

I PlC16FB7X dispongono di due moduli CCB che si dif-


ferenziano fra loro solo per la nomenclatura, CCPl e Quando funzionano in modo capture una coppia di
CCP2, visto che il loro funzionamento è praticamente registri cattura ilvalore che e presente sulTMR'l alveri-
ug ua le. ficarsi di un evento speciale sul piedino RC2/CCP1 per il
modulo CCPl e sul piedino RC'l/T'lOSl/CCP2 per il
modulo CCP2. Gli eventi che possono accadere su que-
sti pìedini sono:
nzlccpr ffil

1". Un fronte di salita.


2". Un fronte di discesa.
ffiry """A a1'=--=; 3". Ogni 4 fronti di salita.
4' Ogni 16 fronti di discesa.
4\
Effettuando il capture si attiva il flag CCPl F per il
modulo CCP'1, e se il bit di abiìitazione è attivato si
puo anche originare una richiesta di interrupt.
Schema generale a blocchi del modulo CCP| in modo capture ln'intoro<<:nte
Iutt :nnlir:zinno
il rrqrE))orrLq oPPilLdzlullE dol mndn r:n+'
uEl lllwuu rr^ ò
lqPtulE c la
lo
misura degli intervalli di tempo esistenti fra gli impulsi
Lr rc -i
-r^^ -^^r;-
)r oPPlLorw o url^ l.rin del Plc

,','1' rl ',',' '


ATTIVMIONE SEOUENZIATE IIN CCP2ì

In questo modo lavoro, la coppia di registri CCPRl H-L


compara il suo contenuto, in modo continuo, con
ffi^re
il
*zuccerB
@ valore del TN/R1.
RC2 ABITITATO 4\
Quando coincidono entrambi i valori viene messo a
COME USCITA
F\' 1 il flag CCPllF, e il piedino RC2/CCP1 che deve essere
t '"*i i
mnmro configurato come uscita, supporta uno dei seguenti
eventi:

Schema a blocchi del modulo CCPI 10 Passa a livello alto.


quando funtiona in modo comparatrone )o Passa a livelìo basso.
3". Non cambia di stato pero si produce un inter-
rupt. t l'tt','

Fì;;ii.r{.:! fij"í+ nrzTmz


Sl
ln nrroctn mnrln l:rrr
,-"Jro,,,--- si ottengono impulsi la cui
ffi ner/rno
ampiezza del livello alto è di durata variabile, molto utili SlerrTms
per il controllo dei motori. ll piedino RC2/CCPl è confi- S[ us/rNl
gurato come uscita, e passa dai ìivelli logici0 e 1 a inter- S[ us/rt'ts7v"' *

ffi
valli variabili di tempo. ffi uz7lNz7v"'-
Si vuole ottenere un impulso il cui livello alto abbia ffi ur/rur
un'ampiezza variabile (Duty Cicle), all'interno di un fil uo/ltro
intervallo fisso del periodo dell'impulso.
Per ottenere il cambiamento di stato del piedino, si
utilizza un comparatore che pone a 1 (Set) un flip-flop reVoo
+
quando il valore del registro PR2 coincide con la parte
alta del TMR2, momento in cui TMR2 prende il valore :W 4-f.

00 Hex.
Dopo il flip-flop si resetta, e si pone a 0 quando un
altro comparatore rileva la coincidenza sul valore esi- reVss
stente nel CCPRl H con quello della parte alta del
TMR2. Variando ivalori che si caricano in PR2 e in
CCPRlL si varia l'intervallo di tempo in cui il piedino di
Struttura sempliftcata del collegamento del convertitore AD
uscitastaa'l ea0.

H [", {.{F # tlÈ,fi l=.l.{É f,q il mantenimento, successivamente questo valore viene
À {S.+ È-# # 1 i- $-t -, # } -* 3'3};-i È- È: portaro al convertitore, che utilizzando la tecnica del-
I PlC16F87X dispongono di un convertitore AD da '10 l'approssimazione successiva fornisce il risultato digita-
bit di risoluzione e 5 canali di ingresso nei modellida 2B lp onr,iv:lpnto <r r '1 0 hil.
pin, e 8 canali in quelli da 40 pin. La tensione di riferimento puo essere generata con
Attraverso uno degli ingressi selezionati si applica il la tensione interna di alimentazione del PIC oppure con
segnale analogico ad un condensatore di cattura e una esterna introdotta con i pin RA3/AN3I/REF+ e
RA2/AN2A/REF-.
+ Nella figura è rappresentato uno schema semplifi-
I r:tn doi rnllor^r:monti del COnveftitOre AD.
E a/ BUs TNTERNo DEr DAfl
i t'
8\ 8>. gt&;H,-{{F
tr# 5CTè #E {*# ii€ U g'$
È\$ fi
TETTURA
,À V scRrrruRA
F tr ffi.E& *".f, *q.€ ru fl ffi # SÉ Fq
q\
8\
Questo modulo chiamato NiSSP, integrato nei
PlCl6FB7X fornisce un eccellente mezzo di comunica-
srNcRoNrSMo zinnp rnn nli :ltri mirroconlroller o con le neriferiche
Dt ctocK
che lavorano in modo seriale. Ha due modi possibilì di
USCITA DEI
BIT DEI DATI € lavoro:

INGRESSO
DEI BIT DEI DATI p 1".
2" .
SPI (Serial Peripheral lnterface).
lzc (lnter-lntegrated C ircuit).

La comunicazione in modo SPl, che utilizza tre linee,


Struttura base del modulo MSSP viene usata in modo particolare dalle memorie RAM e
con i registri di lavoro SSPBUF e 55P5R
EEPRON/ ll protocollo l2C utilizza solo due linee, ed e

@$sp**é€$w$ e ,$,9 ,#,#ff#€#trqqfu,F de$ trF# E #trffiF"H


impiegato soprattutto nella comunicazione fra circuiti

ffiffi
55 55
integrati diversi.
Fondamentalmente il modulo N1SSP è basato su due
registri: SSPSR, che e un registro di spostamento che
PIC MAsIER
trasporta l'informazione seriale in parallelo e viceversa,
e il registro SSPBUF, che funziona come buffer del-
l'informazione che si riceve o si trasmette in serie. Nella
sDo
sDl trasmissione il byte che si desidera inviare è caricato nel
5CK
SSPBUF e automaticamente viene spostato a SSPSR,
dove si sposta bit a bit, portandolo all'esterno al ritmo
Comunicazione seriale in modo SPI donli imnrrl<i di rlnrL
"-Y" "
tra un PIC Master e i due dispositivi che funzionano come slave
ln ricezione i bit entrano al ritmo del clock tramite
un pin del PIC e si spostano nel registro SSPSR sino al
suo riempimento, momento nel quale si trasferisce
l'informazione al SSPBUF
Nel modo SPI si utilizzano tre linee del PIC che fun-
ziona come Master nello schema della figura, mentre
nel modo l2C si utilizzano solo due linee per la comu-
nicazione del PIC master con i circuiti integrati che fun-
-== 5DA
zìonano come slave.
5Cr
l.1i';"i.i
f USART supporta la comunicazione seriale sincrona e
asincrona. Puo funzionare come un sistema di comuni-
Nelmodo l2C il Master cazione bidirezionale sincrono o full duplex, adattando-
=
comunica con tutti gli slave tramite due sole linee
si a una moltitudine di dispositivi che trasferiscono
informazroni in questo modo. Inoltre può lavorare nel
MODO ASINCRONO modo unidirezionale o half duplex. Riassumendo puo
Prcìót87x lavorare in tre modi.

'1" SERIALE ASINCRONO (Full duplex, bidirezionale)


TRASMISSIONE
2'. SERIALE SINCRONO-MASTER (Half duplex, unidi-
rezionale).
3'. SERIALE SINCRONO-SLAVE (Half duplex, unidire-
RICEZIONE
ziona le).

Nella figura è riportato lo schema del funzionamen-


MODO SINCRONO to dell'USART in modo asincrono e sincrono. Nel
PEróF67x
primo, i trasferimenti di informazione si realizzano su
due linee TX e RX; i bit entrano ed escono da queste
'r' '^ ri^^^
uuc - uro
ilr cc o ' '^- {-^^uenza
rvv controllata internamente
dall'USART.
Nel modo sincrono, la comunicazione si realizza su
due linee, la DT che trasla ibit in entrambi iversi alla
frequenza degli impulsi del clock che escono dalla linea
MASTER SIAVE CK del master.
In entrambi i modi, le linee di comunicazione sono
Nel modo asrncrono la comunicazione seriale dell'USART utilizza le due piu signifrcative della porta C: RC6/T)lCK e
le linee TX e RX, mentre nel modo sincrono le llnee DT e CK.
RC7lR)7DT.

',, 't..'! :.,'

Potrebbero piacerti anche