Sunteți pe pagina 1din 20

Introducere

Exemplele oferite n aceast capitol v vor arta cum s conectai microcontrolerul PIC cu
alte componente sau dispozitive periferice cnd producei propriul sistem bazat pe
microcontroler. Fiecare exemplu conine descriere detaliat a prii hardare cu schema
electric !i comentarii despre pro"ram.
Alimentarea microcontrolerului
#n "eneral$ alimentarea corect este de o importan maxim pentru funcionarea corect a
sistemului cu microcontroler. Poate fi u!or comparat cu respiraia unui om n aer. Este mai
probabil ca un om care respir n aer curat va tri mai mult dect un om care locuie!te ntr%
un mediu poluat. Pentru o funcionare corect a oricrui microcontroler$ este necesar s
oferim o surs stabil de alimentare$ un reset si"ur n momentul n care l pornii !i un
oscilator. Conform specificaiilor tehnice oferite de productorul microcontrolerului PIC$
tensiunea de alimentare ar trebui s se ncadreze ntre &.'( !i ).'( pentru toate versiunile.
Cea mai simpl soluie este folosirea stabilizatorului de tensiune *+,-'. care ofer tensiune
stabil de /.( la ie!ire. 0 astfel de surs este ilustrat n fi"ura de mai 1os.
Pentru a funciona corect sau pentru a avea o tensiune stabilizat la .( la ie!ire 2pinul 34$
tensiunea de intrare pe pinul 5 la *+,-'. ar trebui s fie ntre ,( !i &6(. #n funcie de
curentul consumat de monta1 vom folosi tipul corespunztor de stabilizator de tensiune
*+,-'.. 7unt diferite versiuni de *+,-'.. Pentru consum de curent de pn la un 58 ar
trebui s folosim versiunea n capsul 90:&&' cu posibilitatea de rcire adiional. ;ac
consumul total este de .'m8$ putem s folosim ,-*'. 2versiune de stabilizator n capsul
mic 90:<& pentru curent de pn la 5''m84.
;ac folosim un oscilator 2rezonator4 de 6+=z$ pentru valorile prescaler:ului '$5 !i , care
divid ceasul de baz al oscilatorului$ intervalul urmat de o dep!ire a contorului 9+>' va fi
'..5&$ 5.'& !i )..3ms. Practic$ aceasta nseamn c cea mai mare ntrziere va fi
&.)x)..3ms care este e"al cu 5).,& secunde.
Example
*i"ht Emittin" ;iodes %*E;uri
*edurile sunt unele dintre cele mai folosite elemente n electronic. *E; este o abreviere pentru ?*i"ht Emittin"
;iode@. #n momentul n care ale"em un led$ sunt mai muli parametri de care trebuie s inem seamaA
diametrul$ care este deobicei 3 sau .mm 2milimetri4$ curentul de funcionare care este n 1ur de 5'm8 2poate fi
mai mic dect &m8 pentru ledurile cu randament maximA emisie de lumin puternic4 !i bineneles culoarea$
care poate fi ro!ie sau verde de!i mai sunt leduri portocalii$ albastre$ "albene... . *edurile trebuie conectate
corect pentru a emite lumin !i rezistena care limiteaz curentul trebuie s fie de o valoare corect pentru ca
ledul s nu se ard 2supranclzire4. 9ensiunea pozitiv de alimentare este le"at la 8B0;$ iar catodul este le"at
la tensiunea ne"ativ sau la masa circuitului. Pentru a identifica fiecare pin$ catodul este cel mai scurt pin iar
corpul are n "eneral o te!itur pe partea catodului. ;iodele vor emite lumin numai dac curentul circul de la
8B0; spre C890;. 8ltfel 1onctiunea PB este polarizat invers !i curentul nu va circula. Pentru a conecta corect
un led trebuie adu"at o rezisten n serie pentru a limita de curentul prin diod$ pentru ca aceasta s nu se
ard. (aloarea rezistenei este determinat de curentul care vrei s circule prin led. Curentul maxim care poate
curge printr:un led a fost stabilit de productor. *edurile cu randament maxim pot produce rezultate bune cu un
curent mai mic de de &m8.
Pentru a determina valoarea rezistenei serie$ trebuie s
cunoa!tem valoarea tensiunii de alimentare. ;e aici
scdem tensiunea care cade pe led. 8ceast valoare va
varia de la 5$&v la 5$)v$ depinznd de culoarea ledului.
>spunsul este valoarea lui Cr. Folosind aceast valoare
!i curentul care vrem s circule prin *E; 2ntre '.''&8
!i '.'584 putem s aflm valoarea rezistenei cu
a1utorul formuleiA R=UR / I.
*edurile sunt conectate la microcontroler n dou metode. Cna este s le activm cu zero lo"ic !i a doua este s
le activm cu unu lo"ic. Prima metod este numit lo"ic BED89I(E iar cea de:a doua este numit lo"ic
P0FI9I(E. Fi"ura de mai sus ilustreaz modalitatea de conectare prin lo"ic P0FI9I(E. ;eoarece lo"ica
P0FI9I(E ofer o tensiune de /.v diodei !i rezistenei serie$ ledul va emite lumin de fiecare dat cnd un pin
al portului G este n starea 5 lo"ic 25 H ie!ire =ID=4. *o"ica BED89I(E necesit ca ledul s fie ntors !i
terminalele de tip anod s fie conectate mpreun la borna pozitiv a sursei. #n momentul n care este livrat o
ieire LOW de la microcontroler ctre anod !i rezisten$ ledul va lumina.
Connecting LED diodes to PORTB microcontroller
Pagina anterioar Con!inut Pagina urmtoare
9astatura
9astaturile sunt dispozitive mecanice utilizate pentru a executa o ntrerupere sau pentru a realiza o conexiune
ntre dou puncte. Ele au diferite mrimi !i au diferite scopuri. 9astele care sunt utilizate aici sunt denumite
?taste dip@. Ele sunt lipite direct pe o plac de circuit !i sunt deseori ntlnite n electronic. 8u patru pini 2doi
pentru "iecare contact#$ ceea ce le ofer stabilitate mecanic.
Exemplu pentru conectarea tastelor la pinii microcontrolerului
Funcia tastei este simpl. #n momentul n care apsm o tast$ dou contacte sunt unite !i se realizeaz o
conexiune. 9otu!i$ nu toate lucrurile sunt simple. Problema const n natura tensiunii ca valoare$ !i n
imperfeciunea contactelor mecanice. #nainte ca un contact s fie realizat sau decuplat$ exist o perioad scurt
de timp cnd pot aprea vibraii 2oscilaii4 ca rezultat al imperfeciunii contactelor mecanice$ sau din cauza
vitezei diferite de apsare 2acest lucru depinde de persoana care apas tasta4. 9ermenul atribuit acestui
fenomen este denumit s%itc& 'contact# de(ounce. ;ac acest lucru nu este prevzut n momentul n care un
pro"ram este conceput$ poate aprea o eroare sau pro"ramul poate produce mai mult dect un sin"ur impuls la
ie!ire pentru o sin"ur apsare de tast. Pentru a evita acest lucru$ putem introduce o mic ntrziere cnd
detectm nchiderea unui contact. 8ceasta va asi"ura faptul c apsarea unei taste este interpretat ca un
sin"ur impuls. #ntrzierea de de(ounce este produs n softare !i durata ntrzierii depinde de buton !i de
scopul butonului. Problema poate fi parial rezolvat prin adu"area unui condensator n paralel la tast$ dar un
pro"ram bine realizat ofer rezultate mai bune. Pro"ramul poate fi a1ustat pn cnd detecia fals este complet
eliminat. #n anumite cazuri o simpl ntrziere poate fi suficient dar dac vrei ca pro"ramul s se ocupe de
mai multe lucruri n acela!i timp$ o simpl ntrziere va nsemna c procesorul nu va face nimic pe o lun"
perioad de timp !i poate rata alte intrri sau poate decupla portul de ie!ire ctre un afi!or. 7oluia este s avem
un pro"ram care s urmreasc apsarea unei taste ct !i decuplarea unei taste. +acroul de mai 1os poate fi
folosit pentru )e*press de(ounce.


Pagina anterioar Con!inut
0ptocuplor
0ptocuplorul combin un *E; !i un fototranzistor n aceea!i capsul. >olul unui optocuplor este acela de a
separa dou pri de circuit.
8ceasta este realizat pentru un numr de motiveA
Inter"eren!a+ 0 parte a unui circuit poate fi ntr:o zon unde este influenat de interferene 2cum ar fi
cele de la motoarele electrice$ echipamente de sudur$ motoare termice etc.4. ;ac ie!irea acestui circuit
trece printr:un optocuplor spre alt circuit$ numai semnalele dorite vor trece prin optocuplor. 7emnalele de
interferen nu vor avea destul ?putere@ s activeze *E;ul din optocuplor !i de aceea ele sunt eliminate.
Exemplele tipice sunt unitile industriale care au mai multe interferene care afecteaz semnalele pe
cablu. ;ac aceste interferene afecteaz funcia unei seciuni de control$ vor apare erori !i unitatea nu
va mai funciona.
,eparare simultan -i intensitatea semnalului+ Cn semnal mai mic de 3v este capabil s activeze un
optocuplor !i ie!irea optocuplorului poate fi conectat la o linie de intrare a microcontrolerului.
+icrocontrolerul are nevoie de un impuls de intrare de .v !i n caz semnalul de 3v este amplificat la .v.
Poate fi folosit pentru a amplifica curentul semnalului. Citai:v mai 1os pentru utilizarea unei linii de
ie!ire a microcontrolerului pentru amplificare de curent.
,eparare de tensiune mare+ 0ptocuploarele au caliti nnscute pentru separarea tensiunilor mari.
;eoarece *E;ul este complet separat de fototranzistor$ optocuploarele pot da dovad de izolare de
tensiune de 3Iv sau chiar mai mare.
0ptocuploarele pot fi folosite ca dispozitive de intrare sau ie!ire. Ele au funcii adiionale cum ar fi 7chmitt
tri""erin" 2ie!irea unui 7chmitt tri""er este ' sau 5 % se schimb ncet ridicnd !i cobornd forma de und n
valori definite *0J sau =ID=4. 0ptocuploarele sunt mpachetate ca o sin"ur unitate sau n "rupuri de dou sau
mai multe ntr:o sin"ur capsul. Ele mai sunt denumite foto:ntreruptoare n care un disc cu fante este
introdus ntr:un lca! ntre *E; !i fototranzistor !i de fiecare dat cnd lumina este ntrerupt$ tranzistorul
produce un impuls. Fiecare optocuplor are nevoie de dou alimentri pentru a funciona. Ele pot fi folosite cu o
alimentare$ dar capacitatea de izolare a tensiunii este pierdut.
0ptocuplor pe o linie de intrare
+odul de funcionare este simpluA cnd a1un"e un semnal$ *E;ul din optocuplor este aprins !i lumineaz pe
baza fototranzistorului din aceea!i carcas. #n momentul n care tranzistorul este activat$ tensiunea dintre
colector !i emitor cade la '..v sau mai puin !i microcontrolerul sesizeaz acest lucru ca zero lo"ic pe pinul >86.
Exemplul de mai 1os este un contor$ folosit pentru numrarea produselor de pe o linie de producie$ pentru
determinarea vitezei motorului$ pentru contorizarea numrului de revoluii a unei axe etc. Considerm senzorul
ca un microntreruptor. ;e fiecare dat cnd ntreruptorul este nchis$ *E;ul este luminat. *E;ul ?transfer@
semnalul ctre fototranzistor !i operaia fototranzistorului livreaz *0J ctre intrarea >86 a microcontrolerului.
Cn pro"ram n microcontroler va fi necesar pentru a preveni contorizrile false !i un indicator conectat la oricare
dintre ie!irile microcontrolerului va indica starea curent a contorului.
Exemplu de linie de intrare cu optocuplor
0ptocuplor pe o linie de ie!ire
Cn optocuplor poate fi folosit pentru a separa semnalul de ie!ire a unui microcontroler fa de un dispozitiv de
ie!ire. 8cest lucru poate fi necesar pentru separarea tensiunilor nalte sau pentru amplificare. Ie!irea unor
anumite microcontrolere este limitat la &.m8. 0ptocuplorul va lua semnal de curent sczut din microcontroler
!i tranzistorul de ie!ire va comanda un *E; sau un releu$ cum este exemplificat mai 1osA
Output line optocoupler example
Pro"ramul pentru acest exemplu este simplu. Prin livrarea unui K5L lo"ic n pinul 6 al portului 8$ *E;ul se va
aprinde !i tranzistorul va fi activat n optocuplor. 0rice dispozitiv conectat la ie!irea optocuplorului va fi activat.
Curentul limit pentru tranzistor este n 1ur de &.'m8.

Pagina anterioar Con!inut Pagina urmtoare
>eleul
>eleul este un dispozitiv electromecanic care transform un semnal electric ntr:o mi!care mecanic. El este
alctuit dintr:o bobin din conductori izolai nf!urai pe un nucleu metalic !i o armtur metalic cu unul sau
mai multe contacte. #n momentul n care o tensiune de alimentare este aplicat la bornele unei bobin$ curentul
circul !i va fi produs un cmp ma"netic care mi!c armtura pentru a nchide un set de contacte !iMsau pentru
a deschide un alt set. Cnd alimentarea este dezactivat din releu$ cade fluxul ma"netic din bobin !i se produce
o tensiune nalt n direcia opus. 8ceast tensiune poate strica tranzistorul de comand !i de aceea este
conectat o diod cu polarizare invers de:a lun"ul bobinei pentru a scurtcircuita vrfurile de tensiune n
momentul n care apar.
Conectarea unui releu la microcontroler prin intermediul unui tran.istor
+ulte microcontrolere nu pot comanda un releu direct !i de aceea un tranzistor de comand este necesar. Cn
=ID= pe baza tranzistorului activeaz tranzistorul !i acesta la rndul lui activeaz releul. >eleul poate fi conectat
la orice dispozitiv electric prin intermediul contactelor. >ezistena de 5'I din baza tranzistorului limiteaz
curentul dinspre microcontroler la o valoare solicitat de tranzistor. >ezistena de 5'I dinspre baz !i bara
ne"ativ previne ca tensiunile de z"omot aplicate n baza tranzistorului s activeze releul. ;e aceea numai un
semnal clar de la microcontroler va activa releul.
Connecting t&e optocoupler and rela* to a microcontroller
Cn releu poate fi de altfel activat prin intermediul unui optocuplor care n acel!i timp amplific curentul provenit
de la ie!irea microcontrolerului !i ofer un "rad nalt de izolare. 0ptocuploarele /I0/ CURRE1T deobicei conin
un tranzistor cu o ie!ire ?;arlin"ton@ pentru a oferi curent mare de ie!ire. Conectarea prin intermediul unui
optocuplor este recomandat n mod special pentru aplicaiile microcontroler unde motoarele sunt activate !i
z"omotulele de comutaie provenite de la motor pot a1un"e n microcontroler prin intermediul liniilor de
alimentare. 0ptocuplorul comand un releu iar releul activeaz motorul. Fi"ura de mai 1os arat pro"ramul
necesar pentru activarea releului !i include cteva din macrourile de1a discutate.

Pagina anterioar Con!inut
Denerarea unui sunet
Cn buzzer piezo poate fi adu"at la o linie de ie!ire a unui microcontroler pentru a livra tonuri ?audio@$ piuituri !i
semnale. Este important de !tiut c sunt dou mari tipuri de dispozitive piezoelectrice emitoare de sunet. Cna are
componente active nuntrul carcasei !i are nevoie numai de alimentare de curent continuu pentru a emite un ton sau
un beep. #n "eneral tonurile sau beep:urile emise de aceste difuzoare sau piuitoare nu pot fi schimbate % ele sunt fixe
din cauza circuitelor interne. 8cesta nu este tipul despre care discutm n acest articol. Cellalt tip const dintr:un
buzzer piezo !i necesit semnal livrat n ea pentru a funciona. ;epinznd de frecvena formei de und$ ie!irea poate fi
ton$ melodie$ alarm sau chiar un mesa1 vocal. Pentru ca ele s funcioneze trebuie s livrm un ciclu care este alctuit
din semnale =ID= !i *0J. 9ranziia de la =ID= la *0J sau de la *0J la =ID= cauzeaz mi!cri diafra"mei pentru a
produce secvene de sunete. Forma de und poate avea o schimbare fin de la o valoare la alta 2denumit und
sinusoidal4 sau o schimbare rapid 2denumit und dreptun"hiular4. Cn calculator este ideal pentru producerea de
unde dreptun"hiulare. *ivrarea de unde dreptun"hiulare produce o ie!ire u!or "rosier. Conectarea unui buzzer piezo
este foarte u!oar. Cn pin este conectat la linia ne"ativ$ iar cealalt la o ie!ire a microcontrolerului$ dup cum este
ilustrat n fi"ura de mai 1os. 8cesta va livra o form de und de .v ctre buzzerul piezo. Pentru a produce o tensiune
mai mare$ forma de und trebuie amplificat !i aceasta necesit un tranzistor de comand !i o bobin.
Conectarea unui (u..er pie.o la un microcontroler
Ca !i n cazul tastaturii$ putei folosi un macro care va furniza o rutin GEEP ntr:un pro"ram cnd va fi necesar.
Pagina anterioar Con!inut Pagina urmtoare

>e"i!trii de deplasare
Exist dou tipuri de re"i!trii de deplasareA de intrare -i de ie-ire. Regi-trii de intrare ncarc datele paralel$
prin intermediul a - linii$ !i apoi le trimite serial prin intermediul a dou linii ctre microcontroler. Regi-trii de
ie-ire opereaz n direcie opusA primesc date serial !i la un semnal pe linia ?latch@$ transform datele n date
paralele. >e"i!trii de deplasare sunt folosii n "eneral pentru a mri numrul de intrri % ie!iri ale unui
microcontroler. Ei nu prea mai sunt folosii pentru c microcontrolerele moderne au un numr mare de linii
intrare % ie!ire. 0ricum$ utilizarea lor cu microcontrolere cum ar fi PIC5)F-6 este foarte important.
>e"i!trii de deplasare de intrare ,6=C.<,
>ei!trii de deplasare de intrare transform datele paralele n date seriale !i le transfer ctre microcontroler.
+odul lor de funcionare este simplu. 7unt patru linii pentru transferul datelorA cloc)$ latc&$ load -i data.
;atele sunt citite de la pinii de intrare de un re"istru intern prin intermediul unui semnal ?latch@. 8poi$ cu un
semnal ?load@$ datele sunt transferate de la re"istrul ?latch@ de intrare ctre re"istrul de deplasare$ iar de acolo
sunt transferate serial ctre un microcontroler prin intermediul liniilor ?data@ !i ?clocN@.
0 schem de le"tur a re"istrului de deplasare ,6=C.<, la un microcontroler este prezentat mai 1osA
2odalitatea de conectare a unui registru de deplasare de intrare la un microcontroler
>e"istru de deplasare de ie!ire
>e"i!trii de deplasare de ie!ire transform datele seriale n date paralele. Pe fiecare front cresctor al tactului$
re"istrul de deplasare cite!te valoarea de la linia de date$ o memoreaz ntr:un re"istru temporar$ apoi repet
acest ciclu de - ori. *a un semnal de la linia ?latch@$ datele sunt copiate din re"istrul de deplasare n re"istrul de
intrare$ apoi datele sunt transformate din date seriale n date paralele.
0 schem a re"istrului de deplasare este prezentat mai 1osA
Conectarea unui registru de deplasare de ie-ire la un microcontroler
Pagina anterioar Con!inut Pagina urmtoare

8fi!a1 cu , se"mente 2multiplexare4
7e"mentele ntr:un afi!a1 cu , se"mente sunt aran1ate astfel nct s formeze un sin"ur di"it de la ' la F$ dup
cum se observ n desenA
Putem afi!a un numr pe mai muli di"ii prin conectarea de afi!a1e adiionale. Chiar dac este mult mai
confortabil s lucrm cu *C;uri$ afi!a1ele cu , se"mente sunt nc un standard n industrie. 8ceasta din cauza
rezistenei la temperatur$ vizibilitii !i un"hiului lar" de observare. 7e"mentele sunt marcate cu litere miciA a$
b$ c$ d$ e$ f$ " !i dp$ unde dp este punctul zecimal. Cele - *E;uri din cadrul fiecrui afi!a1 pot fi aran1ate cu catod
comun sau cu anod comun. *a un afi!a1 cu catod comun$ catodul comun trebuie s fie conectat la linia de 'v !i
*E;urile sunt activate cu unu lo"ic. 8fi!a1ele cu anod comun trebuie s prezinte anodul comun conectat la linia
de /.v. 7e"mentele sunt activate cu zero lo"ic. ;imensiunea afi!a1ului este msurat n milimetriO se msoar
doar nlimea di"itului 2nu carcasa$ doar di"itulP4. 8fi!a1ele sunt disponibile cu di"ii de nlimi de ,$ 5'$ 53..$
&' sau &. milimetri. 7unt de diferite culori incluzndA ro!u$ portocaliu !i verde. Cea mai simpl metod pentru a
comanda un afi!a1 este prin intermediul unui driver de afi!a1. 8cestea sunt disponibile pentru pn la 6 afi!a1e.
8lternativ$ afi!a1ele pot fi comandate de un microcontroler$ !i$ dac este necesar mai mult dect un afi!a1$
metoda de comandare se nume!te ?multiplexare@. Principala diferen dintre cele dou metode este numrul de
linii de comand. Cn driver special poate avea numai o sin"ur linie de tact !i inte"ratul de comand va accesa
toate se"mentele !i va incrementa afi!a1ul. ;ac avem doar un sin"ur afi!a1 de comandat de ctre
microcontroler$ vor fi necesare , linii plus una pentru punctul zecimal. Pentru fiecare afi!a1 zecimal$ este
necesar doar cte o linie n plus. Pentru a produce un afi!a1 cu 6$ . sau ) di"ii$ toate afi!a1ele cu , se"mente
vor fi conectate n paralel. *inia comun 2linia catodului comun4 este conectat separat !i aceast linie este
conectat la zero lo"ic pentru o perioad scurt de timp pentru a activa afi!a1ul. Fiecare afi!a1 este activat de
5'' ori pe secund !i vor da impresia c toate afi!a1ele sunt active n acela!i timp. #n timp ce fiecare afi!a1 este
activat$ informaia trebuie livrat astfel nct el va afi!a informaia corect. Pot fi accesate pn la ) afi!a1e n
acest mod fr ca strlucirea fiecrui afi!a1 s fie afectat. Fiecare afi!a1 este activat efectiv pentru 5M) din timp
!i persistena vizual a ochilor d impresia c afi!a1ul este pornit tot timpul. 9oate semnalele de sincronizare
pentru afi!a1 sunt produse de pro"ram$ avanta1ul unui afi!a1 controlat de un microcontroler este flexibilitatea.
8fi!a1ul poate fi confi"urat ca un contor cresctor$ contor descresctor$ !i poate produce un numr de mesa1e
folosind literele alfabetului care pot fi u!or de afi!at.
Exemplul de mai 1os arat cum s controlm dou afi!a1e.
Conectarea unui microcontroler cu a"i-a3e cu 4 segmente 5n mod multiplexat
Fi!ierul *E;.IBC conine dou macrouriA *E;QInit !i *E;Q;isp&. Primul macro este folosit pentru initializarea
afi!a1ului. 8ici este definit perioada de remprosptare ct !i pinii microcontrolerului utilizai pentru conectarea
afi!a1elor.
Exemplu6 *E;Q;isp& 'x36
Bumrul 36 va fi afi!at.
>ealizarea macroului arat modalitatea de utilizare a macrourilor ntr:un pro"ram. Pro"ramul afi!eaz numrul
K&5L n & di"ii cu 4 segmente.
Pagina anterioar Con!inut Pagina urmtoare

8fi!a1 *C;
+ulte dispozitive cu microcontroler folosesc *C;uri
inteli"ente pentru a afi!a informaia vizual. Crmtorul
material se ocup de conectarea unui afi!a1 *;C =itachi la
un microcontroler PIC. 8fi!a1ele *C; proiectate cu
=;66,-'$ modulul pentru *C; fabricat de =itachi$ nu sunt
scumpe !i sunt u!or de folosit$ !i chiar posibil s produc
verificarea datelor afi!ate folosind cei -x-' pixeli ai
afi!a1ului. 8fi!a1ele *C; =itachi conin un set de caractere
87CII plus simboluri 1aponeze$ "rece!ti !i matematice.
A 78x9 line /itac&i /D::4;< displa*
Fiecare dintre cei )6' de pixeli ai afi!a1ului trebuie s poat fi accesat individual !i aceasta se poate realiza cu un
numr de inte"rate 7+; pentru control montate pe spatele afi!a1ului. 8ceasta ne salveaz de o cantitate
enorm de fire !i de un control adecvat astfel nct sunt necesare doar cteva linii pentru a accesa afi!a1ul.
Putem comunica cu afi!a1ul prin intermediul unui bus de date pe - bii sau de 6 biti. Pentru un bus de - biti$
afi!a1ul are nevoie de o tensiune de alimentare de /.v !i 55 linii IM0. Pentru un bus de 6 bii sunt necesare doar
liniile de alimentare !i , linii. Cnd afi!a1ul *C; nu este pornit liniile de date sunt 9>I:7989E$ ceea ce nseamn
c ele sunt n stare de nalt impedan 2ca !i cum ar fi deconectate4 !i astfel nu interfereaz cu
funcionabilitatea microcontrolerului cnd afi!a1ul nu este adresat. *C;ul necesit de altfel 3 linii de control de la
microcontroler.
*inia Ena(le 'E# permite accesul la afi!a1 prin intermediul liniilor >MJ !i >7. Cnd aceast linie este *0J$ *C;ul
este dezactivat !i i"nor semnalele de la >MJ !i >7. Cnd linia 2E4 este =ID=$ *C;ul verific starea celor dou
linii de control !i rspunde corespunztor.
*inia Read/=rite 'R/=# stabile!te direcia datelor dintre *C; !i microcontroler. Cnd linia este *0J$ datele
sunt scrise n *C;. Cnd este =ID=$ datele sunt citite de la *C;.
Cu a1utorul liniei Register select 'R,#$ *C; interpreteaz tipul datelor de pe liniile de date. Cnd este *0J$ o
instruciune este scris n *C;. Cnd este =ID=$ un caracter este scris n *C;.
Citirea datelor de la *C; se realizeaz similar$ cu deosebirea c linia de control >MJ trebuie s fie =ID=. Cnd
trimitem un =ID= ctre *C;$ el se va reseta !i va accepta instruciuni. Instruciunile tipice care sunt transmise
ctre un afi!a1 *C; dup reset suntA pornirea afi!a1ului$ activarea cursorului !i scrierea caracterelor de la stn"a
spre dreapta. #n momentul n care un *C; este iniializat$ el este pre"tit sa primeasc date sau instruciuni.
;ac recepioneaz un caracter$ el l va afi!a !i va muta cursorul un spaiu la dreapta. Cursorul marcheaz
locaia urmtoare unde un caracter va fi afi!at. Cnd dorim s scriem un !ir de caractere$ mai nti trebuie s
setm adresa de start$ !i apoi s trimitem cte un caracter pe rnd. Caracterele care pot fi afi!ate pe ecran sunt
memorate n memoria video ;; >8+ 2;ata ;isplaR >8+4. Capacitatea memoriei ;; >8+ este de -' bRtes.
8fi!a1ul *C; mai conine )6 bRtes CD >8+ 2 Character
Denerator >8+4. 8ceast memorie este rezervat
pentru caracterele definite de utilizator. ;atele din CD
>8+ sunt reprezentate sub form de caractere bitmap
de - biti. Fiecare caracter ocup maxim - bRtes n CD
>8+$ astfel numrul total de caractere pe care un
utilizator poate s le defineasc este -. Pentru a afi!a
caracterul bitmap pe *C;$ trebuie setat adresa CD
>8+ la punctul de start 2de obicei '4 !i apoi s fie scrise
datele n afi!a1. ;efinirea unui caracter KspecialL este
exemplificat n fi"ur.
#nainte de a accesa ;; >8+$ dup definirea unui caracter special$ pro"ramul trebuie s seteze adresa n ;;
>8+. 0rice scriere !i citire a datelor din memoria *C; este realizat de la ultima adres care a fost setat$
folosind instruciunea set:adress. 0dat ce adresa ;; >8+ este setat$ un caracter nou va fi afi!at n locul
potrivit pe ecran. Pn acum am discutat operaia de scriere !i citire a memoriei unui *C; ca !i cum ar fi o
memorie obi!nuit. 8cest lucru nu este adevrat. Controlerul *C; are nevoie de 6' pn la 5&' microsecunde
2us4 pentru scriere !i citire. 8lte operaii pot dura pn la . ms. #n acest timp microcontrolerul nu poate accesa
*C;ul$ astfel un pro"ram trebuie s !tie cnd un *C; este ocupat. Putem rezolva aceasta n dou metode.
0 metod este verificarea bitului GC7S de pe linia de date ;,. 8ceasta nu este cea mai bun metod pentru c
*C;ul se poate bloca !i pro"ramul va sta ntr:o bucl infinit verificnd bitul GC7S. 0 alt metod este
introducerea unei ntrzieri n pro"ram. #ntrzierea trebuie s fie destul de lun" pentru ca *C;ul s termine
operaia n desf!urare. Instruciunile pentru scriere !i citire cu memoria *C;ului sunt afi!ate mai sus. *a
nceput am menionat c avem nevoie de 55 linii IM0 pentru a comunica cu un *C;. 0ricum$ putem comunica cu
un *C; printr:un bus de 6 linii. Putem reduce numrul total de linii de comunicaie la ,. 7chema pentru
conectarea printr:un bus de 6 biti este n ima"inea de mai 1os. #n acest exemplu folosim un afi!a1 *C; cu &x5)
caractere$ denumit *+5)x&5& fabricat de productorul 1aponez 7harp. +esa1ul KcharacterL este scris pe prima
linie urmat de dou caractere speciale KTL !i KUL. Pe a doua linie este scris cuvntul KmiNroEleNtroniNaL.
Conectarea unui a"i-a3 la un microcontroler
Fi!ierul LCD+inc conine un "rup de macrouri pentru lucrul cu afi!a1ele *C;.
Exemplu6 *C;line &
Cnd lucrm cu microcontrolere numerele sunt reprezentate n form binar. ;in aceast cauz ele nu pot fi
afi!ate. Pentru aceasta este necesar s schimbm numerele dintr:un sistem binar ntr:un sistem zecimal pentru
ca ele s fie u!or de neles. 7ursele celor dou macrouri LCD>al?<; !i LCD>al?78 sunt prezentate mai 1os.
+acroul LCD>al?<; realizeaz conversia unui numr binar de - bii ntr:un numr zecimal de la ' la &.. !i l
afi!eaz. Este necesar s declarm urmtoarele variabile n pro"ramul principalA 9E+P5$ 9E+P&$ *0$ *0Q9E+P$
GchecN. Bumrul binar de - bii este n variabila *0. Cnd macroul este executat$ echivalentul zecimal al acestui
numr este afi!at. Ferourile precedente numrului nu sunt afi!ate.
+acroul LCD>al?78 realizeaz conversia unui numr binar de 5) bii ntr:un numr zecimal de la ' la )..3. !i l
afi!eaz. Crmtoarele variabile trebuie declarate n pro"ramul pricipalA 9E+P5$ 9E+P&$ 9E+P3$ *0$ =I$ *0Q9E+P.
=IQ9E+P$ GchecN. Bumrul binar de 5) bii este n variabilele *0 !i =I. Cnd macroul este executat$ echivalentul
zecimal al acestui numr este afi!at. Ferourile precedente numrului nu sunt afi!ate.

Pagina anterioar Con!inut Pagina urmtoare

Convertor analo" % di"ital de 5& bii
;eoarece totul n lumea microcontrolerelor este reprezentat cu ' !i 5$ ce facem cu un semnal care este '.. sau
'.,,V 8proape toat lumea exterioar unui calculator consist din semnale analo"ice. #n afar de vorbire !i
muzic$ sunt multe cantiti care trebuie cuantificate ntr:un calculator. Cmiditatea$ temperatura$ presiunea
aerului$ culoarea$ tur(idit*$ !i concentraia metanului sunt doar o parte. >spunsul este s lum un numr de
linii di"itale pe care s le combinm asfel nct ele s exprime o valoare analo"ic. 0 valoare analo"ic este
orice valoare dintre ' !i 5. 0 putei numi ?valoare fracional@. 9oate cantitile de mai sus trebuie s fie
convertite la o valoare cuprins ntre ' !i 5 astfel s fie utilizat ntr:un calculator. 8cesta este conceptul cel mai
rspndit. El devine ceva mai puin complex n aplicaii. ;ac lum - linii !i le aran1m astfel nct s accepte
valori binare$ rezultatul total va fi &.) 2acesta este obinut de o numrare pn la &.. plus valoarea '4. ;ac
conectm aceste - linii ntr:o ?cutie nea"r@$ vor fi numite linii de ie!ire !i astfel trebuie s:i furnizm o sin"ur
linie de intrare. Cu acest aran1ament putem detecta pn la &.. incrementri ntre ?'@ !i ?5@. 8ceast cutie
nea"r este denumit C0B(E>90> !i pentru c noi convertim din Analo" n Di"ital$ convertorul se nume!te
convertor AD sau ADC 'Analo" to Di"ital Convertor4. Convertoarele 8; pot fi clasificate dup parametrii diferii.
Cei mai importani parametri sunt precizia !i modul de transfer al datelor. >eferitor la precizie$ domeniul esteA -
bii$ 5' bii$ 5& bii$ 56 bii$ 5) bii. ;eoarece conversia pe 5& bii este un standard industrial$ exemplul de mai
1os a fost realizat cu a1utorul unui convertor pe 5& bii. Cellalt parametru important este modul prin care datele
sunt transferate n microcontroler. Poate fi paralel sau serial. 9ransmisia paralel este mai rapid. 0ricum$ aceste
convertoare sunt deobicei mai scumpe. 9ransmisia serial este mai lent$ dar considernd preul sczut !i
numrul redus de linii de intrare la un microcontroler$ este transmisia preferat pentru multe aplicaii. 7emnalele
analo"ice pot dep!i limitele de intrare ale unui 8;C. 8ceast lucru poate duce la stricarea convertorului. Pentru a
prote1a intrarea sunt conectate dou diode$ dup cum se observ n schem. 8cestea vor prote1a de tensiuni de
peste .( !i sub '(. #n exemplul nostru am folosit *9C5&-)$ un 8;C pe 5& biti 2*inear 9echnolo"R4. Convertorul
este conectat cu microcontrolerul prin intermediul a trei liniiA data$ clocN !i C7 2Chip 7elect4. *inia C7 este
folosit pentru a selecta un dispozitiv de intrare ca s fie posibil s fie conectate !i alte dispozitive de intrare 2ex.
re"istru de deplasare de intrare$ re"istru de deplasare de ie!ire$ 8;C serial4 pe acelea!i linii ale
microcontrolerului. Circuitul de mai 1os arat cum s conectm un 8;C$ tensiune de referin !i un afi!a1 *C; la
un microcontroler. 8fi!a1ul *C; a fost adu"at pentru a vizualiza rezultatele conversiei 8;.
Conectarea unui con>ertor AD cu tensiune de re"erin! la un microcontroler
Pagina anterioar Con!inut Pagina urmtoare

Comunica!ia serial
,CI este o a(re>ire pentru ,erial Communication Inter"ace$ -i ca un su(sistem special exist la
ma3oritatea microcontrolerelor+ C@nd nu este disponi(il$ cum ar "i 5n ca.ul lui PIC78A;:$ poate "i creat 5n
so"t%are+
Ca -i 5n ca.ul comunica!iei &ard%are$ "olosim "ormatul standard 1RB '1on Return to Bero# cunoscut ca
; 'C#D1D7 sau ; sau C (i!i de date$ "r paritate -i cu un (it de stop+ Linia li(er este de"init starea unu
logic+ ,tartul transmisiei E Bitul de ,tart$ are starea .ero logic+ Dup (i!ii de date care urmea. (itului
de start 'primul (it este cel mai pu!in semni"icati> (it# urmea. un Bit de ,top care are starea unu
logic+ Durata (itului de stop FTG depinde de >ite.a transmisiei -i este a3ustat dup necesit!ile
transmisiei+ Pentru o >ite. de transmisie de C8<< (aud$ T este 7<:us+
7+ CD 'Carrier Detect#
9+ RHD 'Recei>e Data#
I+ THD 'Transmit Data#
:+ DTR 'Data terminal Read*#
J+ 01D '0round#
8+ D,R 'Data ,et Read*#
4+ RT, 'ReKuest To ,end#
;+ CT, 'Clear To ,end#
C+ RI 'Ring Indicator#
Descrierea pinilor ai unui conector R,9I9
Pentru a conecta un microcontroler la un port serial al unui calculator PC$ tre(uie s a3ustm ni>elul
semnalelor pentru ca s ai( loc comunica!ia+ 1i>elul semnalului la un PC este D7<L pentru .ero logic -i
M7<L pentru unu logic+ Din cau. c ni>elul semnalului la un microcontroler este de MJL pentru unu
logic -i <L pentru .ero logic$ a>em ne>oie de un stadiu intermediar care s reali.e.e con>ersia
ni>elurilor+ Un integrat special proiectat pentru aceast sarcin este 2AH9I9+ ,c&ema inter"e!ei este 5n
diagrama de mai 3os6
Conectarea unui microcontroler la un PC prin intermediul unei inter"e!e reali.ate cu 2AH9I9+
Ai-ierul R,9I9+inc con!ine un grup de macrouri "olosite pentru comunica!ia serial+

Pagina anterioar Con!inut Pagina urmtoare

S-ar putea să vă placă și