Documente Academic
Documente Profesional
Documente Cultură
Automatizari Proiect-Teorie
Automatizari Proiect-Teorie
2
INTRODUCERE.......................................................................................................................................................2
SISTEME DE ACIONARE ELECTRIC. GENERALITI..............................................................................2
LANURI CINEMATICE........................................................................................................................................2
Caracteristicile lanurilor cinematice....................................................................................................................3
Asocierea lanurilor cinematice.............................................................................................................................5
MAINI ELECTRICE..............................................................................................................................................7
ACIONRI CU MAINI SINCRONE..................................................................................................................8
Generaliti............................................................................................................................................................8
MOTORUL SINCRON.............................................................................................................................................9
Pornirea motorului sincron....................................................................................................................................9
Frnarea motorului sincron.................................................................................................................................10
Motoare sincrone speciale...................................................................................................................................10
Motoare sincrone reactive (MSR).......................................................................................................................10
Motoarele pas cu pas (MPP)...............................................................................................................................11
ACIONRI CU MAINI ASINCRONE.............................................................................................................12
Generaliti..............................................................................................................................................................12
MOTORUL ASINCRON........................................................................................................................................12
Pornirea motorului asincron trifazat....................................................................................................................12
Pornirea motorului asincron monofazat..............................................................................................................13
ACIONRI CU MOTOARE DE CURENT CONTINUU..................................................................................13
DESCRIEREA I FUNCIUONAREA MOTORULUI DE CC...........................................................................14
Ecuaiile de funcionare.......................................................................................................................................14
Caracteristicile de funcionare ale motorului de curent continuu.......................................................................15
A. Motorul cu excitaie n derivaie................................................................................................................15
Motorul cu excitaie serie........................................................................................................................................18
La acest motor nfurarea rotoric este n serie cu nfurarea de excitaie, (fig. 1.5)..................................18
Motorul cu excitaie mixt......................................................................................................................................18
Pornirea motoarelor de curent continuu..................................................................................................................19
Regimul de frnare la motorul de curent continuu..............................................................................................21
Regimul de frnare la motorul de curent continuu cu excitaie n derivaie...................................................21
Frnarea cu recuperare....................................................................................................................................22
Frnarea n contracurent..................................................................................................................................22
Frnarea dinamic...........................................................................................................................................23
Regimul de frnare la motorul de curent continuu cu excitaie serie..................................................................23
Frnarea cu recuperare de energie...................................................................................................................23
Frnarea dinamic...........................................................................................................................................23
Frnarea n contracurent..................................................................................................................................24
REGLARE A TURAIEI MOTORULUI DE CURENT CONTINUU.................................................................25
Reglajul turaiei mcc cu excitaie derivaie.............................................................................................................25
Reglajul turaiei motorului de curent continuu cu excitaie serie.......................................................................27
Sisteme de reglare a vitezei m.c.c. alimentate prin impulsuri.............................................................................29
PROIECTUL TEHNIC...........................................................................................................................................32
Generaliti..............................................................................................................................................................32
Prile componente ale schemei..............................................................................................................................33
Microcontroller PIC16F874....................................................................................................................................35
ALGORITMUL DE PROGRAMARE...................................................................................................................59
Schema algoritmului...........................................................................................................................................59
1
PROIECTAREA UNUI SISTEM DE ACIONARE CU
MOTOR DE CURENT CONTINUU
INTRODUCERE
LANURI CINEMATICE
2
Caracteristicile lanurilor cinematice
Ecuaia de transfer:
x e xi i
3
n2
i
n1
4
i T max i R max
CR sau CR
iT min i R min
Pentru a putea asocia lanurile cinematice se impune ca dou viteze ale mrimilor de
ieire din lanurile cinematice s pstreze un anumit raport ntre ele.
Condiia economic, dar i condiiile de precizie i fiabilitate, impun ca ntr-un lan
cinematic s existe un numr minim de mecanisme.
Exist trei moduri de asociere:
Asocierea serie:
5
Figura 7. Asocierea n parallel a lanurilor cinematice
Dou sau mai multe lanuri cinematice sunt asociate n paralel (fig.7) atunci cnd ntre
mrimile de ieire trebuie s existe anumite relaii, sau cnd ntre mrimile de intrare exist
anumite relaii.
Lanurile cinematice asociate n paralel se pot subgrupa, n ceea ce privete legtura
dintre mrimile de ieire, ca fiind:
lanuri cinematice cu legtur condiionat cinematic (fig.7.a) lanuri cinematice care
asigur micarea de rotaie i de translaie pentru obinerea directoarei elicoidale, ale cror
viteze s satisfac raportul vT / vA = tg.
lanuri cinematice cu legtur necondiionat cinematic lanuri cinematice care
asigur viteza de achiere i de avans, ntre care nu exist o condiionare ca n cazul
precedent.
n figura 7.b este prezentat o variant de asociere n paralel rezult din considerente
economice.
Asocierea mixt:
6
Figura 8. Asocierea mixt a lanurilor cinematice
Asocierea mixt a lanurilor cinematice reprezint o asociere ntre lanurile cinematice
legate n serie i lanurile cinematice legate n paralel.
n funcie de numrul mrimilor de ieire furnizate la captul de ieire avem:
asociere mixt cu o mrime de ieire (fig.8.a);
asociere mixt cu dou sau mai multe mrimi de ieire (fig.8.b)
Asocierea mixt cu o singur mrime de ieire (fig.8.a), const n lanuri cinematice
asociate n paralel, ale cror mrimi se nsumeaz pentru a furniza o singur mrime de ieire
lanului urmtor, care este legat n serie cu precedentele, ceea ce ar permite i denumirea de
asociere paralel-serie.
nsumarea algebric a mrimilor de ieire se obine printr-un mecanism de nsumare,
care poate fi: mecanism diferenial, mecanism cu clichet, cuplaj cu role, etc. ca mecanisme
mecanice sau diferite tipuri de sertrae hidraulice care permit nsumarea debitelor, precum i
orice alt mecanism care permite nsumarea a dou mrimi de aceeai natur sau de natur
diferit.
Asocierea mixt cu dou sau mai multe mrimi de ieire (fig.8.b), const n asocierea
de lanuri cinematice n serie cu lanuri cinematice n paralel, astfel aceasta poate fi denumit
i asociere serie-paralel.
MAINI ELECTRICE
Prin main electric se nelege o main, n general, rotativ, care transform puterea
mecanic n putere electric sau invers. Mainile electrice se mpart n maini de curent
continuu i maini de curent alternativ, dup felul energiei electrice ce ia parte n conversia
electromecanic realizat de main.
Orice main electric este reversibil din punct de vedere al conversiei energiei
realizate; ea poate funciona fie ca generator, fie ca motor. Prin generator electric se nelege o
main electric, care transform puterea mecanic n putere electric. Prin motor electric se
definete o main electric care transform puterea electrica n putere mecanic. Unele
maini pot funciona si ca frna electric i n aceast situaie maina primete att putere
mecanic ct i putere electric, pe care le transform n timp n cldur, realiznd n acelai
timp un cuplu electromecanic realizat la arbore.
Mainile de curent alternativ se mpart n doua mari clase: sincrone si asincrone.
Maina sincron se caracterizeaz prin faptul c n regim permanent frecvena curentului
schimbat cu reeaua de curent alternativ se afla n raport constant cu viteza unghiular de
rotaie a mainii, indiferent de gradul de ncrcare al mainii. Maina asincron se
7
caracterizeaz printr-o vitez unghiular care nu se menine n raport constant cu frecventa
reelei electrice, ci variaz odat cu schimbarea regimului de funcionare sau cu modificarea
gradului de ncrcare al mainii.
Generaliti
Figura 9. Schema electric a indusului i diagramele fazoriale pentru maina sincron cu poli apareni
8
Maina sincron cu poli apareni dezvolt un cuplu de anizotropie magnetic chiar i
dac maina nu este excitat (E0 = 0), care st la baza funcionrii mainii sincrone reactive.
Maina sincron dezvolt un cuplu numai dac rotorul se rotete sincron cu cmpul
magnetic nvrtitor rezultant i n acelai sens. n concluzie: maina sincron nu poate porni
singur pentru c nu dezvolt cuplu.
Exist urmtoarele tipuri constructive de MS:
a) cu excitaie electromagnetic, format din bobine concentrate pe miez de fier
alimentate n curent continuu i piese polare pentru fiecare pol, asemntoare constructiv cu
excitaia motorului de curent continuu. n construcie normal excitaia mainii este n rotor,
dar exist i construcii inversate;
b) excitat static cu magnei permaneni. Se renun la cele dou perii i inelele
colectoare necesare pentru alimentarea rotorului n curent continuu. Mainile sincrone excitate
cu magnei permaneni (MSMP ) sunt la fel de robuste ca i MAS.
c) cu reluctan variabil (MSRV), (bariere nemagnetice); rolul barierelor nemagnetice
este de a mri anizotropia magnetic pe cele dou axe ale mainii.
Problemele MSMP sunt: deprecierea proprietilor magneilor permaneni odat cu
creterea temperaturii i compensarea reaciei indusului pentru a pstra punctul de funcionare
optim al magnetului permanent.
Problemele MSRV sunt legate de realizarea unei construcii rigide a rotorului n
condiiile extinderii barierelor nemagnetice.
MOTORUL SINCRON
9
Cnd alunecarea s<350,05 se alimenteaz excitaia (contactul K2 se nchide i
simultan se deschide contactul K1). Apare un regim tranzitoriu de accelerare a rotorului n
decursul cruia acesta este atras n sincronism de cuplul sincron - Ms. Colivia de pornire iese
din funcionare, iar MS se prinde n sincronism.
Motoarele pas cu pas au nfurri statorice concentrate (ca la MCC) care transform
impulsurile de tensiune n deplasri unghiulare sau liniare discrete numite pai. Motoarele pas
10
cu pas sunt convertoare-amplificatoare de informaie numeric. Clasificarea motoarelor pas cu
pas: active, care sunt excitate cu magnei permaneni i reactive;
11
Generaliti
MOTORUL ASINCRON
12
Pornirea motorului asincron monofazat
13
Mp
Mn i Mp =f(t)
durata procesului tranzitoriu
economicitatea pornirii din punct de vedere al energiei disipate, al costului aparatajului i al
fiabilitii.
b) Caracteristicile de funcionare sunt : = f(M) i n = f(I) n condiiile meninerii
constante a UA=UN, Re, RA.
Se adaug caracteristica mecanic n = f(M) esenial pentru studiul acionrilor
electrice.
c) Caracteristici de reglare a vitezei:
domeniul (plaja) de reglare nmax / nmin
modul de reglare : continuu sau n trepte
economicitatea reglrii din punct de vedere al pierderii de energie, costul aparatajului i a
fiabilitii.
d) Caracteristicile de frnare: constau n extinderea caracteristicii mecanice n=f(M)
pentru trei regimuri speciale de lucru: frn propriu-zis, generator supraturat i frnare
dinamic n regim de generator.
Ecuaiile de funcionare
14
diA
UA = RAIA + LA dt
-E
E = -Ken
M = KI (1)
d
M - Mr = J
dt
= f(I, ie) ,
n care:
Mr = Mr + Mm + MFe - reprezint cuplul rezistent total ce se opune antrenrii
rotorului compus din cuplul rezistent Mr, dat n general grafic sau analitic, cuplul datorat
frecrilor n lagre i frecrii vscoase cu aerul i cuplul corespunztor pierderilor n fier.
n regim staionar de funcionare, cnd mrimile electrice i mecanice obin valori
constante, ecuaiile de funcionare devin:
UA = RAIA E
M = Mr (2)
Prin eliminarea variabilei E ntre primele dou ecuaii ele sistemului (1) se obine
ecuaia caracteristicii turaie-curent.
UA R AIA UA R I
n (1 A A ) (3)
Ke Ke UA
Substituind curentul prin cuplul corespunztor rezult ecuaia caracteristicii turaie-
cuplu.
UA RA
n M (4)
Ke KeK 2
Explicarea relaiei fluxului magnetic n cazul diferitelor tipuri de motoare conduce la
ecuaii particularizate ale caracteristicilor.
Aceste ecuaii sunt parametrice, deci pot fi modificate prin aciunea direct n scopul
obinerii caracteristicilor artificiale necesare regimurilor tranzitorii (pornirea, reglarea vitezei,
frnare) urmate de funcionarea stabil a motorului pe caracteristica natural.
15
Figura 15. MCC compensat cu excitaie independent
circuitele electrice; b) schema electric echivalent rotoric; 1 poli principali; 2 poli
auxiliari; 3 nfurare de compensaie.
Din schema echivalent a motorului rezult:
V = k + RaI (5)
unde constanta electric k este:
(6)
n care: p este numrul de perechi de poli, N numrul total de conductoare pe periferia
mainii, a numrul de ci de curent, fluxul considerat constant la curentul de excitaie Ie
constant, I curentul rotoric, - viteza rotoric i Ra- rezistena nfurrii rotorice. n cazul
= const, se poate scrie k = K, unde K este denumit constanta electromagnetic a
mainii. Momentul electromagnetic al mainii este proporional cu curentul rotoric:
M = kI = KI. (7)
n aceste condiii rezult:
(8)
care este o variaie liniar i constituie ecuaia caracteristicii mecanice naturale a motorului de
curent continuu cu excitaie derivaie prezentat sub forma f(I), respectiv = f (M). n aceste
relaii s-a notat:
(9)
Dac se intercaleaz o rezisten Rx n serie cu rezistena rotoric Ra, se obin caracteristicile
mecanice artificiale, sub forma:
(10)
16
Figura 16. Caracteristica mecanic natural a mcc cu excitaie independent
1 - caracteristica compensat; 2 - caracteristica insuficient compensat.
17
n cazul figurii 17, b, prin slbire de flux 2 < 1 caracteristica de tensiune se
deplaseaz prin translaie n sus i invers.
n cazul figurii 1.4, c, prin intercalare de rezistene se obin caracteristici din ce n ce mai moi,
ajungnd s frneze i s opreasc motorul.
18
UA R AIA
n (11)
Ke( d s )
Aceast expresie ilustreaz diversitatea caracteristicilor ce pot fi obinute, cuprinse
ntre caracteristicile motorului serie i caracteristicile motorului derivaie. Caracteristica
mecanic este semimoale, scznd cu creterea cuplului la solenaii de acelai semn
(compund) i crescnd la solenaii opuse ale nfurrilor de excitaie (anticompund).
n figura 19 s-au reprezentat sintetic urmtoarele caracteristici mecanice: 1 - motor cu
excitaie mixt; 2 motorul serie; 3 motorul derivaie
3
1 2
Pornirea motoarelor de curent continuu se face manual sau prin comand automat, prin
controlul uneia din mrimile care pot fi msurate i care variaz n acest interval: curent,
vitez, timp.
19
Figura 20. Comanda pornirii a mcc cu excitaie independent funcie de vitez
a) schema de for; b) schema de comand.
Se prezint n figura 20 schema de for i de comand n funcie de vitez. Vitezele
1 , 2 , 3, indicate n diagram sunt proporionale cu tensiunile electromotoare e1 = Ki , i
=1, 2, 3, tensiuni care pot fi evideniate de releele de tensiune d1, d2 i d3, care anclaneaz la
atingerea acestor nivele. Se apas pe butonul a1, contactorul c nchide contactele principale
1c i 2c din circuitul rotoric i maina pornete. La atingerea vitezei 1 anclaneaz d1 i
astfel contactorul c1 anclaneaz i scurtcircuiteaz prin contactul su 1d1 tronsonul R3 al
reostatului, .a.m.d. Releele termice d4 i d5 au rol de protecie la suprasarcin.
Pornirea motorului de curent continuu serie se realizeaz utiliznd trepte de rezistene
conectate n serie cu circuitul rotoric, ca i la motorul derivaie.
Acest motor este utilizat cu precdere n acionrile electromecanice din traciunea
minier, urban i feroviar.
Pornire prin conectare direct la reea: este cea mai simpl metod de pornire.
n procesul pornirii:
UA = RAIA + Ken
diA
UA = RAIA + LA dt
+ Ken
n care:
LA, RA, reprezint parametrii electrici ai ntregului circuit al rotorului.
20
Ecuaia de cupluri n regim dinamic este:
d
M - Mr = J
dt
n care:
Mr = Mr + Mm + MFe reprezint cuplul rezistent total la arbore.
Ecuaiile de funcionare n regim dinamic dovedesc c procesul de pornire al
motorului este caracterizat de dou regimuri tranzitorii:
regimul tranzitoriu electromagnetic determinat de variaia n timp a mrimilor electrice prin
circuitele motorului (indus plus excitaie).
regimul tranzitoriu mecanic determinat de creterea turaiei n.
Motoarele cu excitaie serie pornesc cel mai repede pentru c odat cu curentul
indusului crete i fluxul de excitaie.
Pornirea motoarelor cu excitaie mixt se face similar cu a motoarelor cu excitaie n
derivaie.
Pornire cu reostat: este utilizat la motoare de puteri medii i mari i const din nscrierea
unui reostat de pornire n circuitul rotoric, care se scoate treptat din circuit pe msur ce
motorul se tureaz. Reostatul este metalic, cu ploturi, deci cu rezisten variabil n trepte, i
numai n cazuri speciale prezint o rezisten variabil continuu.
n studiul procesului pornirii cu reostat se neglijeaz regimul tranzitoriu electric, deci
se admite c la modificarea rezistenei indusului se modific brusc curentul prin indus, dar
turaia i pstreaz valoarea anterioar, dei se modific lent.
Pornirea oricrui motor se poate efectua n sarcin sau n gol.
La pornirea n gol cu reostat se restrnge domeniul de variaie al curentului n timpul
pornirii, iar la pornire n sarcin se utilizeaz dimensionarea rezistenei de pornire.
Pornirea prin alimentare cu tensiune progresiv corespunztoare: se utilizeaz la maini de
mare putere sau instalaii speciale. Instalaia electric necesit acelai aparataj ca i la reglarea
turaiei.
n traciunea electric se utilizeaz conectarea n serie a mai multor motoare de curent
continuu. Dup intrarea n turaie motorul de curent continuu se conecteaz automat la
tensiunea reelei.
21
Figura 21. Regimurile de funcionare n cele patru cadrane a) i funcionarea n regim de motor la: b)
mecanism de ridicare-coborre i c) mecanismul de translaie
. Se deosebesc urmtoarele metode de frnare:
1. Frnare cu recuperare
2. Frnare n contracurent
3. Frnare reostatic
Frnarea cu recuperare
RA
Prin urmare curentul din indus IA are sens invers, deci M = KI A < 0 are sens invers.
Regimul de funcionare este de motor cu sens invers.
Frnarea n contracurent
22
a) La mecanismul ridicare coborre, frnarea se comand prin mrirea rezistenei conectat
n serie cu indusul. Cuplul electromagnetic i curentul i pstreaz sensul, dar se inverseaz
sensul tensiunii electromotoare rezultnd:
U EA
I AF A
RA RF
Curentul de frnare IAF scade odat cu creterea rezistenei de frnare RF.
b) La mecanismul de tip reactiv frnarea se realizeaz prin inversarea polaritii tensiunii U =
UA de alimentare a indusului (rotorului) concomitent cu nserierea unei rezistene RF. Frnarea
n contracurent este foarte puternic dar poate produce ocuri n transmisie care pericliteaz
prile mecanice ale instalaiei.
Frnarea dinamic
Funcionarea unui motor de curent continuu cu excitaie n serie nu poate trece din
cadranul I n cadranul II prin mrirea vitezei pentru a se obine tensiunea electromotoare E >
U, deoarece odat cu creterea vitezei cuplul va scdea, deci i curentul prin indus va scdea,
va scdea i fluxul de excitaie, i tensiunea electromotoare, prin urmare viteza de rotaie se va
menine aproximativ constant. Excitaia se poate conecta separat la reea printr-o rezisten
tampon sau se poate alimenta de la o surs de tensiune redus.
n cazul motorului de curent continuu cu excitaie mixt nfurarea de excitaie n
derivaie permite frnarea cu recuperare. Deoarece curentul prin indus i schimb sensul
nfurarea de excitaie serie va avea aciune demagnetizant. n practic se aplic dou
soluii:
a) la frnare se inverseaz conexiunea bornelor nfurrii de excitaie serie;
b) nfurarea de excitaie serie se deconecteaz de la alimentare;
Frnarea dinamic
23
Expresia caracteristicii mecanice este:
R A R Fd
IA
k
Frnarea n contracurent
Are modaliti diferite de realizare, dup cum sarcina este de tip potenial sau rezistiv.
a) Pentru sarcini reactive la frnarea n contracurent se schimb bornele de alimentare ale
indusului, iar sensul fluxului de excitaie se menine neschimbat. Rezistena RF conectat n
serie cu indusul va limita curentul de frnare. Caracteristica mecanic are ecuaia:
U R A R Fd
I AF
k k
b) Pentru sarcini poteniale: rezistena de frnare este: RF > RF0. Rezistena de frnare limit
este rezistena pentru care caracteristica mecanic intersecteaz axa cuplului la M=M R.
Ecuaia caracteristicii mecanice este:
U RA RF
2 2
k k
24
REGLARE A TURAIEI MOTORULUI DE CURENT
CONTINUU
n industrie exist maini care lucreaz cu vitez variabil. Reglajul vitezei mainii se
realizeaz de multe ori cu dispozitive mecanice, de exemplu cutii de viteze, dar reglajul prin
variaia turaiei motorului este de cele mai multe ori avantajos tehnologic i economic. Spre
exemplu automatizarea unor procese industriale este foarte greu de conceput cu folosirea
metodelor mecanice de reglaj a vitezei.
Principalele criterii de apreciere a metodei de reglaj a turaie motoarelor sunt:
1. Intervalul de reglaj;
2. Fineea reglajului;
3. Economicitatea reglajului;
4. Stabilitatea funcionrii la turaia dorit;
5. Sensul reglajului;
1. Intervalul de reglaj reprezint raportul turaiei maxime i minime ce se poate obine
prin metoda abordat.
2. Fineea reglajului exprim posibilitatea de a modifica cu valori mici turaia de lucru.
Astfel la motorul asincron cu inele nu se poate obine o finee prea mare a reglajului cu
rezistene n circuitul rotoric, pentru c numrul acestor rezistene nu poate fi prea mare.
3. Economicitatea reglajului se refer la cheltuielile necesare punerii n practic a
metodei de reglaj, ct i la cheltuielile legate de consumul de energie i ntreinere a
dispozitivelor de reglaj.
4. Stabilitatea reglajului reprezint capacitatea motorului de a menine turaia dorit
atunci cnd sarcina variaz. Acest lucru se exprim prin factorul:
M
KS
n
Expresia reprezint panta caracteristicii mecanice n = f(M), unde M reprezint
diferena ntre momentul motor i cel de sarcin pentru o turaie dat. Dac presupunem c
momentul de sarcin nu variaz prea mult odat cu turaia, stabilitatea reglajului se poate
aprecia dup nclinarea caracteristicii mecanice.
5. Sensul reglajului precizeaz dac modificarea turaiei prin metoda analizat se face
prin creterea sau scderea turaiei fa de funcionarea pe caracteristica natural a motorului.
25
Figura 22. Caracteristicile mecanice ale motorului de curent continuu cu excitaie derivaie pentru diferite
rezistene Rp nseriate n rotor la tensiune i flux constant.
b) Metoda de reglaj cu variaia fluxului este mai avantajoas sub toate aspectele, dat
fiind c reglajul se face n circuitul de excitaie unde trece cam a zecea parte din curentul
motorului. Reglajul se face n sensul creterii turaiei, dar aceasta nu poate depii 1,6 2 ori
turaia nominal, fiind posibil distrugerea motorului. Caracteristicile mecanice sunt acelea
din fig. 2.2.
Figura 23. Caracteristicile mecanice ale motorului de curent continuu cu excitaie derivaie obinute prin
scderea curentului statoric pentru tensiunea U constant i fr rezistene nseriate rotorului
c) Metoda de reglaj prin variaia tensiunii de alimentare este superioar celorlalte n ce
privete intervalul de reglaj, la fineea i stabilitatea reglajului apar dificulti n asigurarea
sursei de tensiune variabil. Caracteristicile mecanice sunt de forma unor drepte paralele
aflate sub caracteristica natural, ca n fig. 24.
26
Figura 24. Caracteristicile mecanice ale mcc cu excitaie derivaie
Figura 25. Caracteristicile mecanice ale motorului de curent continuu cu excitaie serie obinute
introducnd rezistene n circuitul rotoric
b) Reglarea tensiunii de alimentare a motoarelor serie se face prin legarea lor n serie
sau n paralel la reea sau prin alimentarea acestora de la o surs de tensiune reglabil.
Intervalul de reglaj i fineea n aceast situaie nu sunt prea bune, ns economicitatea i
stabilitatea reglajului sunt bune. Caracteristicile mecanice sunt prezentate n fig 26.
27
Figura 26. Caracteristicile mecanice ale mcc serie variaiile tensiunii
c) Reglajul turaiei prin untarea indusului produce mrirea fluxului de excitaie la
momente de sarcini mici.
28
Figura 28. Reglajul turaiei motorului serie prin untarea excitaiei
Aceast metod are economicitate mai mare dar se sporete pericolul atingerii unor
turaii prea mari, (fig.28).
29
Figura 29. Schema de reglare
Generatorul de tact d la ieire impulsuri dreptunghiulare de tensiune, cu perioada T
(fig.30 a) care se aplic formatorului de impulsuri FI1. Aceasta comand aprinderea tiristorului
auxiliar de stingere TS ori de cte ori tensiunea u GT ncepe cu un nou impuls. Acelai
dispozitiv FI1 genereaz i un semnal de referin u r, n form de dini de fierstru, avnd
aceeai frecven ca a generatorului de tact. (fig.30 c). Acest semnal este introdus prin blocul
logic BL n formatorul FI2 mpreun cu mrimea de comand uc obinut de la regulatorul de
curent. Formatorul FI2 produce un impuls de comand u1 pentru aprinderea tiristorului
principal TP, ori de cte ori semnalul ur este egal cu tensiunea de comand uc.(fig.30 d). n
felul acesta, prin variaia semnalului de comand uc se regleaz momentul de amorsare al
tiristorului principal determinnd variaia duratei de conducie a acestuia i obinerea unor
tensiuni dreptunghiulare, cu durat de acionare reglabil, care se aplic indusului motorului.
(fig.30 e).
30
Figura 30. Formele de und ale semnalelor de reglare
31
PROIECTUL TEHNIC
Generaliti
Figura 31. Pstrarea constant a vitezei unui motor de curent continuu cu ajutorul microcontrolerului
PIC16F874.
32
Valoarea vitezei de rotaie a motorului va fi afiat n binar pe cele 8 leduri ale
microcontrollerului. Astfel, dac motorul nu este pornit toate ledurile sunt stinse, iar dac
motorul funcioneaz la vitez maxim toate ledurile sunt aprinse.
Aprinderea ledurilor ncepe cu ledul 1 i crete odat cu creterea curentului trimis
motorului principal.
33
Funcionarea motorului n circuit
34
Figura 35. Rezonator de 10 MHz
n circuit se folosete un rezonator de 10 MHz, dar acesta nu este direct implicat.
Microcontroller PIC16F874
Descriere general
PIC 16F8XX este un grup n familia microcontrollerelor PIC16CXXX, caracterizat
prin costuri reduse, performane nalte, structur de tip CMOS i operare static. Toate aceste
microcontrollere folosesc arhitectura de tip RISC (Reduced Instruction Set Computing).
35
Caracteristic pentru aceast familie este arhitectura intern n care bus-urile de
instruciuni i de date sunt separate, cel de instruciuni cu lrgime de 14 bii, iar cel de date cu
lrgimea de 8 bii. Aceast arhitectur permite execuia ntr-un singur ciclu main al
instruciunilor cu excepia ramurilor de program care necesit dou cicluri. Sunt disponibile
un numr total de 35 de instruciuni. O alt caracteristic important pentru dezvoltarea de
aplicaii este existena a dou tipuri de memorie program pentru acelai tip de circuit. Primul
tip de memorie este de tip FLASH i permite scrierea ei de un numr foarte mare de ori,
facilitate util n dezvoltarea de aplicaii. Al doilea tip este o memorie CMOS inscriptibil o
singur dat, util pentru lucrul n serie de produse cu aplicaie. Caracteristica de baz a
acestui microcontroller este reprogramarea electric a acestuia de un numr infinit de ori.
Caracteristici principale:
frecvena maxima de operare 20MHz
memoria program (FLASH) 8KB
memoria de date (RAM) 368B
memoria de date EEPROM 256B
ntreruperi 14
porturi intrare - ieire 5 (A,B,C,D,E)
timer-e 3
module captur / comparare / PWM 2
interfa serial USART, MSSP
interfa paralel PSP (parallel slave port)
convertor analog digital (10bii) 8 canale de intrare
set de instruciuni 35 instruciuni (RISC)
Microcontrollerul conine o unitate aritmetic logic ALU de 8 bii i un registru de lucru.
ALU efectueaz funcii aritmetice i booleene ntre datele din registrul de lucru i oricare alt
registru. Registrul de lucru este notat cu w. Acumulatorul nu este un registru adresabil. n
funcie de instruciunea executat, unitatea aritmetico logic (ALU) afecteaz valorile biilor
CARRY (C), DIGIT CARRY (DC) i ZERO (Z) din registrul de stare (STATUS).
Microcontroller-ul PIC16F874 este disponibil ntr-o capsul de 40 pini:
36
Numele Pin Tipul Tipul Descriere
pinului capsul pinulu Buffer
i -ului
OSC1\CLKIN 13 I ST\CM Intrarea oscilatorului
OS
OSC2\CLKO 14 O - Ieirea oscilatorului
UT
MCLR 1 I ST Intrare de iniializare (reset)
RA0/AN0 2 I/O TTL Poate fi folosit i ca intrare analogica
(canalul 0)
RA1/AN1 3 I/O TTL Poate fi folosit i ca intrare analogica
(canalul 1)
RA2/AN2/VR 4 I/O TTL Poate fi folosit i ca intrare analogica
EF- (canalul 2) sau ca referin negativ de
tensiune
RA3/AN3/VR 5 I/O TTL Poate fi folosit i ca intrare analogica
EF+ (canalul 3) sau ca referin pozitiva de
tensiune
RA4/TOCK1 6 I/O ST Poate fi folosit i ca intrare de ceas
pentru Timer 0. Ieirea este de tip open
drain.
RA5/AN4 7 I/O TTL Poate fi folosit i ca intrare analogica
(canalul 4)
RB0/INT 33 I/O ST/TTL Poate fi folosit ca ntrerupere extern
RB1 34 I/O TTL
RB2 35 I/O TTL
RB3/PGM 36 I/O TTL
RB4 37 I/O TTL Genereaz o ntrerupere la schimbarea
valorii
RB5 38 I/O TTL Genereaz o ntrerupere la schimbarea
valorii
RB6/PGC 39 I/O ST/TTL Pin de ceas pentru programarea serial a
microcontroller-ului.
Genereaz o ntrerupere la schimbarea
valorii
RB7/PGD 40 I/O ST/TTL Pin de date pentru programarea serial a
microcontroller-ului.
Genereaz o ntrerupere la schimbarea
valorii
RC0/T1OSO/ 15 I/O ST Intrare de ceas pentru TIMER1 sau
T1CKI ieirea oscilatorului TIMER1
RC1/1OSI/CC 16 I/O ST Ieirea oscilatorului TIMER1, intrarea
P2 de captur 2, ieirea de comparare 2 sau
ieirea PWM 2
RC2/CCP1 17 I/O ST Intrarea de captur 1, ieirea de
comparare 1 sau ieirea PWM 1
RC3/SCK/SC 18 I/O ST Intrare/Ieire de ceas pentru portul
37
L serial SPI sau I 2C
RC4/SDI/SD 23 I/O ST Intrare de date pentru SPI sau
A intrare/ieire de date pentru I 2C
RC5/SDO 24 I/O ST Ieire de date pentru SPI
RC6/TX/CK 25 I/O ST Transmisie asincrona USART sau ceas
pentru modul sincron
RC7/RX/DT 26 I/O ST Recepie asincrona USART sau date
pentru modul sincron
RD0/PSP0 19 I/O ST/TTL Bit 0 de date pentru portul paralel
RD1/PSP1 20 I/O ST/TTL Bit 1 de date pentru portul paralel
RD2/PSP2 21 I/O ST/TTL Bit 2 de date pentru portul paralel
RD3/PSP3 22 I/O ST/TTL Bit 3 de date pentru portul paralel
RD4/PSP4 27 I/O ST/TTL Bit 4 de date pentru portul paralel
RD5/PSP5 28 I/O ST/TTL Bit 5 de date pentru portul paralel
RD6/PSP6 29 I/O ST/TTL Bit 6 de date pentru portul paralel
RD7/PSP7 30 I/O ST/TTL Bit 7 de date pentru portul paralel
RE 0 / RD / AN 5 8 I/O ST/TTL Controlul citirii pentru PSP (portul
paralel)
Poate fi folosit i ca intrare analogica
(canalul 5)
RE1 / WR / AN 6 9 I/O ST/TTL Controlul scrierii pentru PSP (portul
paralel)
Poate fi folosit i ca intrare analogica
(canalul 6)
RE 2 / CS / AN 7 10 I/O ST/TTL CS (cip select) pentru PSP (portul
paralel)
Poate fi folosit i ca intrare analogica
(canalul 7)
VSS 12,31 P - masa
VDD 11,32 P - Potenialul de alimentare +5V
I intrare; O ieire; I/O intrare/ieire; TTL intrare TTL; TS intrare Trigger Schmitt (cu
histerezis); P alimentare (power)
38
Schema bloc a microcontroller-ului
39
Figura 38. Structura unui microcontroler
Organizarea memoriei
Memoria acestui microcontroller este mprit n dou pri:
40
memoria program
memoria de date
Fiecare din aceste blocuri de memorie are propriul su bus. Acest lucru permite aducerea ntr-
un singur ciclu a instruciunilor respectiv datelor din memorie.
Memoria de date se mparte n:
regitri cu funcii speciale (SFR)
memoria RAM general
memoria EEPROM
Organizarea memoriei program (FLASH)
PIC16F874 are un PC (program counter) de 13 bii, capabili s adreseze 8kx14
spaii de memorie program (0000h 1FFFh),
Vectorul de reset este 0000h i vectorul de ntreruperi este 0004h.
41
Memoria de date este organizat n 4 bancuri. Selecia bancului cu care se lucreaz se
face cu ajutorul biilor RP1 i RP0, aparinnd registrului STATUS, al regitrilor SFR. Fiecare
banc este mprit n dou zone: prima zon este alocat regitrilor cu funciuni speciale
(SFR), n timp ce a doua zon este alocat regitrilor cu funciuni generale (GFR).
RP1 Banc
RP0
0 0 0
0 1 1
1 0 2
1 1 3
Primele locaii din fiecare banc sunt rezervate regitrilor cu funcii speciale (SFR):
00h 1Fh pentru bancul 0 (32octei)
80h 9Fh pentru bancul 1 (32octei)
100h 10Fh pentru bancul 2 (16octei)
180h 18Fh pentru bancul 3 (16octei)
Ei sunt folosii de PC i periferice pentru a controla diferite operaii.
Restul memoriei de date este alocat regitrilor de uz general:
20h 7Fh pentru bancul 0 (96octei)
A0h EFh pentru bancul 1 (80octei)
110h 16Fh pentru bancul 2 (96octei)
190h 1EFh pentru bancul 3 (96octei)
Regitri din memoria de date sunt implementai fizic ca memorie RAM statica
(bistabili).
42
Figura 40. Regitrii
43
Descriere general a funciilor
Adre Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
sa
Bancul 0
00h INDF Folosit pentru adresarea indirecta a memoriei de date cu ajutorul registrului
FSR
01h TMR0 Registrul TIMER0 (8 bii)
02h PCL Cei mai puin semnificativi 8 bii ai PC
03h STATU IRP RP1 RP0 TO PD Z DC C
S
04h FSR Adresarea indirecta a memoriei de date
05h PORTA - - Portul A
06h PORTB Portul B
07h PORTC Portul C
08h PORTD Portul D
09h PORTE - - - - - Portul E
0Ah PCLAT - - - Cei mai semnificativi 5 bii ai PC
H
0Bh INTCO GIE PEIE T0IE INTE RBIE T0IF INTIF RBIF
N
0Ch PIR1 PSPIF ADIF RCIF TXIF SSPIF CCP1I TMR2 TMR1
F IF IF
0Dh PIR2 - - EEIF BCLIF - - CCP2I
F
0Eh TMR1L Cei mai puin semnificativi 8 bii ai registrului TIMER1
0Fh TMR1H Cei mai semnificativi 8 bii ai registrului TIMER1
10h T1CON - - T1CKP T1CKP T1OS T1SY TMR1 TMR1
S1 S0 CEN NC CS ON
11h TMR2 Registrul TIMER2 (8 bii)
12h T2CON - TOUT TOUTP TOUTP TOUT TMR2 T2CP T2CP
PS3 S2 S1 PS0 ON S1 S0
13h SSPBU Buffer-ul portului serial sincron
F
14h SSPCO WCO SSPO SSPEN CKP SSPM SSPM SSPM SSPM
N L V 3 2 1 0
15h CCPR1 Captur1 / comparare1 / PWM1 (LSB)
L
16h CCPR1 Captur1 / comparare1 / PWM1 (MSB)
H
17h CCP1C - - CCP1X CCP1Y CCP1 CCP1 CCP1 CCP1
ON M3 M2 M1 M0
18h RCSTA SSPE RX9 SREN CREN ADDE FERR OERR RX9D
N N
19h TXREG Registrul de transmisie USART
1Ah RCREG Registrul de recepie USART
1Bh CCPR2 Captur2 / comparare2 / PWM2 (LSB)
L
1Ch CCPR2 Captur2 / comparare2 / PWM2 (MSB)
H
44
1Dh CCP2C - - CCP2X CCP2Y CCP2 CCP2 CCP2 CCP2
ON M3 M2 M1 M0
1Eh ADRES Cei mai semnificativi 8 bii ai rezultatului conversiei A/D
H
1Fh ADCO ADCS ADCS CHS2 CHS1 CHS0 GO - ADO
N0 1 0 N
Bancul 1
80h INDF Folosit pentru adresarea indirecta a memoriei de date cu ajutorul registrului
FSR
81h OPTIO RBPU INTE TOCS TOSE PSA PS2 PS1 PS0
N DG
_REG
82h PCL Cei mai puin semnificativi 8 bii ai PC
83h STATU IRP RP1 RP0 TO PD Z DC C
S
84h FSR Adresarea indirecta a memoriei de date
85h TRISA Direcia datelor prin portul A (intrare/ieire)
86h TRISB Direcia datelor prin portul B (intrare/ieire)
87h TRISC Direcia datelor prin portul C (intrare/ieire)
88h TRISD Direcia datelor prin portul D (intrare/ieire)
89h TRISE IBF OBF IBOV PSPMO - Direcia datelor prin
DE portul E (I/O)
8Ah PCLAT - - - Cei mai semnificativi 5 bii ai PC
H
8bh INTCO GIE PEIE T0IE INTE RBIE T0IF INTIF RBIF
N
8Ch PIE1 PSPIE ADIE RCIE TXIE SSPIE CCP1I TMR2 TMR1
E IE IE
8Dh PIE2 - - EEIE BCLI - - CCP2I
E E
8Eh PCON - - - - - - POR BOR
8Fh - Registru neimplementat fizic
90h - Registru neimplementat fizic
91h SSPCO GCEN ACKS ACKDT ACKE RCEN PEN RSEN SEN
N2 TAT N
92h PR2 Perioad TIMER 2
93h SSPAD Adresa portului serial sincron (n mod I C )
2
D
94h SSPSTA SMP CKE D/A P S R/W UA BF
T
95h - Registru neimplementat fizic
96h - Registru neimplementat fizic
97h - Registru neimplementat fizic
98h TXSTA CSRC TX9 TXEN SYNC - BRGH TRMT TX9D
99h SPBRG Generator baud rate
9Ah - Registru neimplementat fizic
9Bh - Registru neimplementat fizic
9Ch - Registru neimplementat fizic
9Dh - Registru neimplementat fizic
45
9Eh ADRES Cei mai puin semnificativi 8 bii ai rezultatului conversiei A/D
L
9Fh ADCO ADF - - - PCFG PCFG PCFG PCFG
N1 M 3 2 1 0
Bancul 2
100h INDF Folosit pentru adresarea indirecta a memoriei de date cu ajutorul registrului
FSR
101h TMR0 Registrul TIMER0 (8 bii)
102h PCL Cei mai puin semnificativi 8 bii ai PC
103h STATU IRP RP1 RP0 TO PD Z DC C
S
104h FSR Adresarea indirecta a memoriei de date
105h - Registru neimplementat fizic
106h PORTB Portul B
107h - Registru neimplementat fizic
108h - Registru neimplementat fizic
109h - Registru neimplementat fizic
10A PCLAT - - - Cei mai semnificativi 5 bii ai PC
h H
10B INTCO GIE PEIE T0IE INTE RBIE T0IF INTIF RBIF
h N
10C EEDAT Registrul de date EEPROM (cei mai puin semnificativi 8 bii)
h A
10D EEADR Registrul de adrese EEPROM (cei mai puin semnificativi 8 bii)
h
10E EEDAT - - Registrul de date EEPROM (cei mai semnificativi 6
h H bii)
10Fh EEADR - - - Registrul de adrese EEPROM (cei mai
H semnificativi 5 bii)
Bancul 3
180h INDF Folosit pentru adresarea indirecta a memoriei de date cu ajutorul registrului
FSR
181h OPTIO RBPU INTE TOCS TOSE PSA PS2 PS1 PS0
N DG
_REG
182h PCL Cei mai puin semnificativi 8 bii ai PC
183h STATU IRP RP1 RP0 TO PD Z DC C
S
184h FSR Adresarea indirecta a memoriei de date
185h - Registru neimplementat fizic
186h TRISB Direcia datelor prin portul B (intrare/ieire)
187h - Registru neimplementat fizic
188h - Registru neimplementat fizic
189h - Registru neimplementat fizic
18A PCLAT - - - Cei mai semnificativi 5 bii ai PC
h H
18B INTCO GIE PEIE T0IE INTE RBIE T0IF INTIF RBIF
h N
18C EECON EEPG - - - WRE WRE WR RD
46
h 1 D RR N
18D EECON Registru control EEPROM (nu este un registru fizic)
h 2
18E - Registru neimplementat fizic
h
18Fh - Registru neimplementat fizic
Memoria EEPROM
Microcontroller-ul PIC16F874 are 256B de memorie reprogramabil electric
(EEPROM). Aceast memorie este necesar atunci cnd se dorete pstrarea unor valori i
dup ce cip-ul nu mai este alimentat, ns are urmtoarele dezavantaje:
- memoria nu este direct adresabil, fiind nevoie a se lucra indirect, prin ase regitri
din SFR (EECON1, EECON2, EEDATA, EEADR, EEDATH, EEADRH).
- are o laten mult mai mare dect memoria RAM
Registrul EEDATA pstreaz 8 bii de date pentru citire / scriere, iar registrul EEADR
pstreaz adresa de la locaia EEPROM ului. La scrierea unui cuvnt n memorie se terge
automat locaia i se scrie noua dat (se va terge nainte de scriere), iar timpul de scriere este
controlat de un timer.
Registrul EECON1 este registru de control cu cinci bii mai puini semnificativi,
implementai fizic, iar cei mai semnificativi trei bii, nu exist, fiind citii ca zero.
Registrul EECON2 nu este un registru fizic. El este utilizat exclusiv n secvene de scriere a
memoriei de date EEPROM
Adres Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
a
18Bh INTCON GIE PEIE T0IE INTE RBIE T0IF INTIF RBIF
18Ch EECON1 EEPGD - - - WRERR WREN WR RD
18Dh EECON2 Registru control EEPROM (nu este un registru fizic)
10Ch EEDATA Registrul de date EEPROM (cei mai puin semnificativi 8 bii)
10Dh EEADR Registrul de adrese EEPROM (cei mai puin semnificativi 8 bii)
10Eh EEDATH - - Registrul de date EEPROM (cei mai semnificativi 6
bii)
10Fh EEADRH - - - Registrul de adrese EEPROM (cei mai
semnificativi 5 bii)
0Dh PIR2 - - EEIF BCLIF - - CCP2IF
8Dh PIE2 - - EEIE BCLIE - - CCP2IE
Citirea memoriei de date EEPROM
Pentru a citi o locaie a memoriei de date EEPROM, utilizatorul trebuie s scrie adresa
n registrul EEADR i apoi s seteze pe 1 bitul RD (EECON1<0>) (RD=1 iniializarea
citirii n EEPROM). EEDATA va pstra valoarea pn la o nou citire sau pn este scris de
ctre utilizator (de-a lungul operaiei de scriere).
Exemplu:
BCF STATUS, RP0
BSF STATUS, RP1 ;bancul 2 de regitri
MOVLW adresa ;adresa de la care citesc
MOVWF EEADR
BSF STATUS, RP0 ;bancul 3 de regitri
BCF EECON1, EEPGD
BSF EECON1, RD ;pornesc operaia de citire din EEPROM
BCF STATUS, RP0 ;bancul 2 de regitri
MOVF EEDATA, w
47
Scrierea memoriei de date EEPROM
Pentru a scrie o locaie a memoriei de date EEPROM, utilizatorul trebuie s scrie
adresa n registrul EEADR i data n registrul EEDATA. Apoi utilizatorul trebuie s urmeze
nite secvene speciale pentru a iniializa, scrierea, pentru fiecare bit.
Exemplu:
BSF STATUS, RP0
BSF STATUS, RP1 ;bancul 3 de regitri
TEST
BTFSC EECON1, WR ;atept sa se ncheie ciclul anterior de scriere
GOTO TEST
BCF STATUS, RP0 ;bancul 2 de regitri
MOVF adresa_eeprom, w
MOVWF EEADR
MOVF data_eeprom, w
MOVWF EEDATA
BSF STATUS, RP0 ;bancul 3 de regitri
BCF EECON1, EEPGD
BSF EECON1, WREN
MOVLW 0x55
MOVWF EECON2
MOVLW 0xAA
MOVWF EECON2
BSF EECON1, WR
BCF EECON1, WREN
BCF STATUS, RP0
BCF STATUS, RP1 ;bancul 0 de regitri
Observaie: adresa_eeprom i data_eeprom sunt doi regitri de uz general din bancul 2 unde
scriu adresa, respectiv data care trebuie scris n memoria EEPROM.
Porturile de intrare / ieire
PIC16F874 are cinci porturi: PORTA, PORTB, PORTC, PORTD i PORTE
PORT A
PORTA este bidirecional i are 6 bii. Selectarea intrare/ieire se face setnd respectiv
resetnd n registrul TRISA biii corespunztori portului. Intrrile portului A, cu excepia
RA4, pot fi configurate i ca intrri analogice, portul A fiind asociat cu un convertor analog -
digital.
Funcionarea portului A:
Numele pinului Pin Tip Tip Descriere
pin Buffer
RA0/AN0 2 I/O TTL Poate fi folosit i ca intrare analogica
(canalul0)
RA1/AN1 3 I/O TTL Poate fi folosit i ca intrare analogica
(canalul1)
RA2/AN2/VREF- 4 I/O TTL Poate fi folosit i ca intrare analogica
(canalul2) sau ca referin negativ de tensiune
RA3/AN3/VREF+ 5 I/O TTL Poate fi folosit i ca intrare analogica
(canalul3) sau ca referin pozitiva de tensiune
48
RA4/TOCK1 6 I/O ST Poate fi folosit i ca intrare de ceas pentru
Timer 0. Ieirea este de tip open drain.
RA5/AN4 7 I/O TTL Poate fi folosit i ca intrare analogica
(canalul4)
Exemplu:
CLRF PORTA; iniializarea portului A
BSF STATUS, RP0; selectm bancul 1
MOVLW 0X0F; w 00001111
MOVWF TRISA ; setm RA<3 :0> ca fiind intrri i RA<5 :4>; ca fiind ieire.
ntotdeauna TRISA< 7: 5 > sunt ;citite ca fiind pe zero.
PORT B
PORTB este un port bidirecional pe 8 bii. Registrul corespunztor direciei datelor
este TRISB. Un 1 pe oricare din biii registrului TRISB, pune ieirea corespunztoare n
modul de lucru de nalt impedan, setnd bitul ca bit de intrare. Intrarea este de nivel TTL,
iar ieirea de tip CMOS. Biii RB4 RB7 pot genera ntreruperi la schimbarea strii.
Funcionarea portului B:
Numele Pin Tip pin Tip Descriere
pinului Buffer
RB0/INT 33 I/O ST/TTL Poate fi folosit ca ntrerupere extern
RB1 34 I/O TTL
RB2 35 I/O TTL
RB3/PGM 36 I/O TTL
RB4 37 I/O TTL Genereaz o ntrerupere la schimbarea valorii
RB5 38 I/O TTL Genereaz o ntrerupere la schimbarea valorii
RB6/PGC 39 I/O ST/TTL Pin de ceas pentru programarea serial a
microcontroller-ului.
Genereaz o ntrerupere la schimbarea valorii
RB7/PGD 40 I/O ST/TTL Pin de date pentru programarea serial a
microcontroller-ului.
Genereaz o ntrerupere la schimbarea valorii
Regitri asociai portului B:
Adres Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
a
06h PORTB Portul B
86h TRISB Direcia datelor prin portul B (intrare/ieire)
81h OPTION RBPU INTEDG TOCS TOSE PSA PS2 PS1 PS0
_REG
PORT C
49
PORTC este un port bidirecional pe 8 bii. Registrul corespunztor direciei datelor este
TRISC. Un 1 pe oricare din biii registrului TRISC, pune ieirea corespunztoare n modul de
lucru de nalt impedan, setnd bitul ca bit de intrare.
Funcionarea portului C:
Numele pinului Pin Tip Tip Descriere
pin Buffer
RC0/T1OSO/T1CKI 15 I/O ST Intrare de ceas pentru TIMER1 sau ieirea
oscilatorului TIMER1
RC1/1OSI/CCP2 16 I/O ST Ieirea oscilatorului TIMER1, intrarea de
captur 2, ieirea de comparare 2 sau ieirea
PWM 2
RC2/CCP1 17 I/O ST Intrarea de captur 1, ieirea de comparare 1 sau
ieirea PWM 1
RC3/SCK/SCL 18 I/O ST Intrare/Ieire de ceas pentru portul serial SPI
sau I 2C
RC4/SDI/SDA 23 I/O ST Intrare de date pentru SPI sau intrare/ieire de
date pentru I 2C
RC5/SDO 24 I/O ST Ieire de date pentru SPI
RC6/TX/CK 25 I/O ST Transmisie asincrona USART sau ceas pentru
modul sincron
RC7/RX/DT 26 I/O ST Recepie asincrona USART sau date pentru
modul sincron
Regitri asociai portului C:
Adres Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
a
07h PORTC Portul C
87h TRISC Direcia datelor prin portul C (intrare/ieire)
PORT D
PORTD este un port bidirecional pe 8 bii. Registrul corespunztor direciei datelor este
TRISD. Un 1 pe oricare din biii registrului TRISD, pune ieirea corespunztoare n modul de
lucru de nalt impedan, setnd bitul ca bit de intrare. Portul D poate fi folosit i ca port
paralel.
Funcionarea portului D:
Numele Pin Tip pin Tip Buffer Descriere
pinului
RD0/PSP0 19 I/O ST/TTL Bit 0 de date pentru portul paralel
RD1/PSP1 20 I/O ST/TTL Bit 1 de date pentru portul paralel
RD2/PSP2 21 I/O ST/TTL Bit 2 de date pentru portul paralel
RD3/PSP3 22 I/O ST/TTL Bit 3 de date pentru portul paralel
RD4/PSP4 27 I/O ST/TTL Bit 4 de date pentru portul paralel
RD5/PSP5 28 I/O ST/TTL Bit 5 de date pentru portul paralel
RD6/PSP6 29 I/O ST/TTL Bit 6 de date pentru portul paralel
RD7/PSP7 30 I/O ST/TTL Bit 7 de date pentru portul paralel
50
a
08h PORTD Portul D
88h TRISD Direcia datelor prin portul D (intrare/ieire)
89h TRISE IBF OBF IBOV PSPMODE - Direcia datelor prin portul
E (I/O)
PORT E
PORTE este un port bidirecional pe 3 bii. Registrul corespunztor direciei datelor este
TRISE. Un 1 pe oricare din biii registrului TRISE, pune ieirea corespunztoare n modul de
lucru de nalt impedan, setnd bitul ca bit de intrare. Portul E poate fi folosit i ca port de
control atunci cnd portul D este folosit ca port paralel.
Funcionarea portului E:
Numele pinului Pin Tip pin Tip Descriere
Buffer
RE 0 / RD / AN 5 8 I/O ST/TTL Controlul citirii pentru PSP (portul paralel)
Poate fi folosit i ca intrare analogica
(canalul5)
RE1 / WR / AN 6 9 I/O ST/TTL Controlul scrierii pentru PSP (portul
paralel)
Poate fi folosit i ca intrare analogica
(canalul6)
RE 2 / CS / AN 7 10 I/O ST/TTL CS (cip select) pentru PSP (portul paralel)
Poate fi folosit i ca intrare analogica
(canalul7)
Timer-e
PIC16F874 are 3 timer-e: Timer0
Timer1
Timer2
Timer0
numrtor \ cronometru pe 8 bii (registrul TMR0)
poate fi scris i citit
asociat cu un divizor programabil pe 8 bii (1 - 256)
sursa de tact intern (CLKOUT sau WDT) sau extern (oscilator extern)
genereaz o ntrerupere la trecerea de la FFh la 00h
atunci cnd se lucreaz cu un oscilator extern se poate selecta tranziia pe front
pozitiv sau pe front negativ
Regitri asociai cronometrului Timer0:
51
Adres Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
a
0Bh INTCON GIE PEIE T0IE INTE RBIE T0IF INTIF RBIF
81h OPTION RBPU INTEDG TOCS TOSE PSA PS2 PS1 PS0
_REG
01h TMR0 Registrul TIMER0 (8 bii)
Timer1
numrtor \ cronometru pe 16 bii (TMR1H i TMR1L)
poate fi scris i citit
asociat cu un divizor programabil (1,2,4,8)
sursa de tact intern (fosc/4) sau extern (oscilator extern conectat la RC1,RC2)
poate genera o ntrerupere la trecerea de la FFFFh la 0000h
Timer2
cronometru pe 8 bii (registrul TMR2)
poate fi scris i citit
asociat cu un divizor programabil (1,4,16)
sursa de tact intern (fosc/4)
poate fi folosit ca baz de timp pentru modulul PWM
asociat cu un registru care i stabilete perioada de resetare (PR2)
poate genera o ntrerupere la 116 perioade
52
PWM = Pulse Width Modulation (modularea impulsurilor n durat). Microcontroller-
ul genereaz o tensiune dreptunghiular a crei valoare medie este proporional cu factorul
de umplere
Umed =5V Fu
PIC16F874 are doua module PWM identice. Tensiunea de ieire poate avea o rezoluie
de pana la 10 bii.
53
16h CCPR Captur1 / comparare1 / PWM1 (MSB)
1H
17h CCP1 - - CCP1 CCP1 CCP1 CCP1 CCP1 CCP1
CON X Y M3 M2 M1 M0
1Bh CCPR Captur2 / comparare2 / PWM2 (LSB)
2L
1Ch CCPR Captur2 / comparare2 / PWM2 (MSB)
2H
1Dh CCP2 - - CCP2 CCP2 CCP2 CCP2 CCP2 CCP2
CON X Y M3 M2 M1 M0
87h TRIS Direcia datelor prin portul C (intrare/ieire)
C
Modul asincron
n acest mod USART folosete un format standard al datelor: un bit de start, 8 sau 9
bii de date i un bit de stop. Cel mai uzual format este cel cu 8 bii de date.
Transmisia ncepe cu cal mai puin semnificativ bit (LSB). Partea de transmisie
funcioneaz independent fa de partea de recepie, dar lucreaz la aceeai vitez.
Modul asincron se selecteaz prin tergerea bitului SYNC (TXSTA <4>)
Schema bloc
54
Regitri asociai transmisiei asincrone
Adr Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
esa
0Bh INTC GIE PEIE T0IE INTE RBI T0IF INTIF RBIF
ON E
0Ch PIR1 PSPI ADI RCIF TXIF SSPI CCP1I TMR2 TMR1
F F F F IF IF
18h RCST SSP RX9 SREN CREN AD FERR OERR RX9D
A EN DEN
19h TXRE Registrul de transmisie USART
G
8Ch PIE1 PSPI ADI RCIE TXI SSPIE CCP1I TMR2 TMR1
E E E E IE IE
98h TXST CSR TX9 TXEN SYN - BRGH TRMT TX9D
A C C
99h SPBR Generator baud rate
G
55
F F F F IF IF
18h RCST SSP RX9 SREN CREN - FERR OERR RX9D
A EN
1Ah RCRE Registrul de recepie USART
G
8Ch PIE1 PSPI ADI RCIE TXI SSPIE CCP1I TMR2 TMR1
E E E E IE IE
98h TXST CSR TX9 TXEN SYN - BRGH TRMT TX9D
A C C
99h SPBR Generator baud rate
G
ntreruperi
PIC16F874 are 14 surse de ntrerupere:
ntrerupere extern (RB0/INT)
ntrerupere Timer0
ntrerupere Timer1
ntrerupere Timer2
ntrerupere la schimbarea valorii de intrare (PORTB<7:4>)
56
ntrerupere la scriere EEPROM
ntrerupere generat de portul paralel
ntrerupere generat de convertorul analog numeric
ntrerupere generat de modulul de transmisie serial asincron
ntrerupere generat de modulul de recepie serial asincron
ntrerupere generat de portul serial sincron
ntrerupere generat de modulul CPP1
ntrerupere generat de modulul CPP2
ntrerupere generat la o eroare pe bus-ul de date
Schema bloc
57
Oscilatorul
Tipuri de oscilatoare
PIC16F874 poate lucra n patru moduri diferite, de oscilaie:
LP LOW POWER CRISTAL
XT CRYSTAL / RESONATOR
HS HIGH SPEED CRYSTAL / RESONATOR
RS RESISTOR / CAPACITOR
Selectarea unuia din cele patru moduri se face prin setarea celor doi bii de
configuraie FOSC1 i FOSC2 .
Oscilatorul cu cristal de cuar
Oscilatorul de mare vitez HS se conecteaz intre OSC1/CLKIN i
OSC2/CLKOUT
Figura 45.
Figura 46.
Programarea microcontroller-ului PIC16F874
Pentru scrierea programului n microcontroller este nevoie o interfa hardware
specializat i o interfa software care s o controleze. Interfaa hardware se conecteaz la
calculator (PC), n funcie de tipul ei, pe un port serial, paralel sau USB. Ca interfa software
se folosete un program specializat (Pony Prog, PICSTART Plus, PRO MATE 2, etc.).
Setul de instruciuni
Microcontroller-ul PIC16F874 poate fi programat folosind un set de 35
de instruciuni (limbaj de asamblare). Fiecare instruciune este codificat pe 14
bii.
Cele 35 de instruciuni se mpart n 3 categorii:
instruciuni la nivel de octet (byte)
instruciuni la nivel de bit
instruciuni literale i de control
58
Instruciunea Descriere
Instruciuni la nivel de octet
ADDWF f,d w + f d (destinaie)
ANDWF f,d w & f d (destinaie)
CLRF f terge f
CLRW terge acumulatorul (w)
COMF f,d Complementul lui f d (destinaie)
DECF f,d f -1 d (destinaie)
DECFSZ f,d f -1 d (destinaie) daca nu rezult 0
INCF f,d f +1 d (destinaie)
INCFSZ f,d f +1 d (destinaie) daca nu rezult 0
IORWF f,d w sau f d (destinaie)
MOVF f,d f d (destinaie)
MOVWF f wf
NOP f,d Nici o operaie (ntrziere)
RLF f,d Rotete spre stnga registrul f d (destinaie)
RRF f,d Rotete spre dreapta registrul f d (destinaie)
SUBWF f,d f w d (destinaie)
SWAPF f,d f<3;0> d<7;4> i f<7;4> d<3;0>
XORWF f,d w sau exclusiv f d (destinaie)
Instruciuni la nivel de bit
BCF f,b terge bitul b al registrului f (0 f<b> )
BSF f,b Seteaz bitul b al registrului f (1 f<b> )
BTFSC f,b Sare o instruciune dac f<b>=0
BTFSS f,b Sare o instruciune dac f<b>=1
Instruciuni literale i de control
ADDLW k w+kw
ANDLW k w&f w
CALL k Cheam subrutina k
CLRWDT - terge watchdog timer
GOTO k Salt necondiionat la k
IORLW k w sau k w
MOVLW k kw
RETFIE - Revenire din ntrerupere
RETLW k Revenire din ntrerupere i k w
RETURN - Revenire din subrutin
SLEEP - Standby
SUBLW k kw w
XORLW k w sau exclusiv k w
d=0 destinaia este w
d=1 destinaia este f
59
ALGORITMUL DE PROGRAMARE
Schema algoritmului
60
Selectarea bank urilor de memorie se realizeaz prin selectarea biilor RP0 i RP1
din registrul STATUS. Chiar dac specificarea bank urilor n registrul STATUS este realizat
corect mesajul de specificare a bank lui este afiat.
Definirea etichetelor
n programul nostru sunt definite trei etichete: speed (vitez); change (schimbare);
led.
Prima etichet speed este valoarea de referin a vitezei. Este controlat de valoarea
obinut din conversia analog numeric a tensiunii date de circuitul de intrare.
Eticheta change memoreaz rezultatul comparrii tensiunii circuitului de intrare cu
tensiune de control a motorului (tensiunea de referin). n funcie de aceast valoare se
modific valoarea registrului CCPR1 (registru care controleaz funcia PWM).
Compararea dintre semnalul circuitului de intrare i cel de referin se realizeaz la
fiecare 10 ms.
Cnd se sesizeaz o diferen ntre valoarea tensiunii de control i cea de intrare,
valoarea care a fost specificat de change este adunat sau sczut din valoarea ciclului
PWM.
Variabila led are rolul de a afia n binar valoarea vitezei de rotaie a motorului i de a
te ine la curent cu funcionarea motorului.
Program start
Instruciunea este executat de la adresa 0 din memoria program cnd pic ul este
alimentat cu tensiune. Cnd apare o ntrerupere procesul ncepe de la adresa 4. Fiecare salt n
program se face cu instruciunea goto.
Procesul de iniializare
Procesul de iniializare se realizeaz la pornire
Iniializarea porturilor A, B i C
Se folosete primul pin din portul A ca intrare analogic (RA0). Ceilali pini sunt setai
ca ieiri pentru a evita influena altor porturi de intrare.
Portul B este setat ca ieire pentru controlul ledurilor.
Portul C este setat ca ieire pentru realizarea comparrii dintre valoarea tensiunii de
intrare i valoarea de referin.
Iniializarea conversiei A/D
Deoarece frecvena este de 10 MHz dat de rezonator, rezult c frecvena
convertorului A/D este setat la 10 MHz/32.
Un canal de intrare este setat la AN0. rezultatul conversiei este setat la stnga pentru a
lua cei mai semnificativi 8 bii.
Iniializare PWM
Registrul CCP1 este folosit pentru modulul PWM. Acest registru pstreaz valoarea
dat de variabila change, adic valoarea care mrete sau micoreaz mrimea pulsului.
Iniializarea modului de comparare
Registrul CCP2 este folosit pentru comparare celor dou semnale i genereaz
ntreruperi periodice (o dat la 10 ms).
Iniializarea ntreruperilor
Datorit setrii bitului de validare a ntreruperii din registrul CCP2 este posibil
realizarea ntreruperii.
Se termin procesul de iniializare.
Procesul de ntrerupere
n momentul n care se realizeaz o ntrerupere se seteaz flegul de ntrerupere pe zero
pentru a nu mai putea intra o alt ntrerupere pn nu este terminat aceasta.
Se ateapt pn procesul de conversie A/D este complet. Conversia ncepe simultan
cu apariia ntreruperii.
61
Compararea cu tensiunea de referin
Cnd conversia A/D s-a terminat cei mai semnificativi 8 bii ai rezultatului sunt
comparai cu valoarea de referin a vitezei. Se obine un rezultat care poate fi mai mare sau
mai mic dect valoarea comparat.
Procesul de ncetinire a vitezei
Dac rezultatul obinut este mai mare microcontrolerul scade curentul trimis motorului
i astfel se micoreaz viteza.
Procesul de mrire a vitezei
Dac rezultatul obinut n urma comparrii este mai mic, microcontrolerul crete
curentul transmis motorului i astfel se realizeaz creterea vitezei.
Ambele decizii, att cea de cretere a vitezei ct i cea de micorare sunt luate de
variabila change.
Controlul ledurilor
Dac motorul nu este alimentat toate ledurile sunt oprite. Aprinderea ledurilor ncepe
de la ledul 1 spre ultimul led odat cu creterea curentului transmis motorului.
Procesul de terminare a ntreruperii
Sfritul procesului de ntrerupere se realizeaz cu instruciunea RETFIE.
La sfritul programului se pune instruciunea END.
Programul
list p=pic16f874
include p16f874.inc
__config _HS_OSC & _WDT_OFF & _PWRTE_ON & _LVP_OFF
errorlevel -302 ;Suppress bank warnin;
Label Definition
speed equ d'8' ;Reference speed (5x8/256=0.156V)
change equ d'1' ;Change value (2mV/ms)
led equ h'20' ;LED control data save area;
Program Start
org 0 ;Reset Vector
goto init
org 4 ;Interrupt Vector
goto int; Initial Process init;
Port initialization
bsf STATUS,RP0; Change to Bank1
movlw b'00000001' ; AN0 to input mode
movwf TRISA; Set TRISA register
clrf TRISB; Set TRISB to uotput mode
clrf TRISC; Set TRISC to output mode
bcf STATUS,RP0; Change to Bank0
; A/D converter initialization
movlw b'10000001' ;ADCS=10 CHS=AN0 ADON=ON
movwf ADCON0 ;Set ADCON0 register
bsf STATUS,RP0 ;Change to Bank1
movlw b'00001110' ;ADFM=0 PCFG=1110
movwf ADCON1 ;Set ADCON1 register
bcf STATUS,RP0 ;Change to Bank0
; PWM initialization
clrf TMR2 ;Clear TMR2 register
62
movlw b'11111111' ;Max duty (low speed)
movwf CCPR1L ;Set CCPR1L register
bsf STATUS,RP0 ;Change to Bank1
movlw d'255' ;Period=1638.4usec(610Hz)
movwf PR2 ;Set PR2 register
bcf STATUS,RP0 ;Change to Bank0
movlw b'00000110' ;Pst=1:1 TMR2=ON Pre=1:16
movwf T2CON ;Set T2CON register
movlw b'00001100' ;CCP1XY=0 CCP1M=1100(PWM)
movwf CCP1CON ;Set CCP1CON register
; Compare mode initialization
clrf TMR1H ;Clear TMR1H register
clrf TMR1L ;Clear TMR1L register
movlw h'61' ;H'61A8'=25000
movwf CCPR2H ;Set CCPR2H register
movlw h'a8' ;25000*0.4usec = 10msec
movwf CCPR2L ;Set CCPR2L register
movlw b'00000001' ;Pre=1:1 TMR1=Int TMR1=ON
movwf T1CON ;Set T1CON register
movlw b'00001011' ;CCP2M=1011(Compare)
movwf CCP2CON ;Set CCP2CON register
; Interruption control
bsf STATUS,RP0 ;Change to Bank1
movlw b'00000001' ;CCP2IE=Enable
movwf PIE2 ;Set PIE2 register
bcf STATUS,RP0 ;Change to Bank0
movlw b'11000000' ;GIE=ON PEIE=ON
movwf INTCON ;Set INTCON register
wait
goto $ ;Interruption wait
; Interruption Process
int
clrf PIR2 ;Clear interruption flag
ad_check
btfsc ADCON0,GO ;A/D convert end ?
goto ad_check ;No. Again
movfw ADRESH ;Read ADRESH register
sublw speed ;Ref speed - Detect speed
btfsc STATUS,C ;Reference < Detect ?
goto check1 ;No. Jump to > or = check
check1
btfsc STATUS,Z ;Reference = Detect ?
63
goto led_cont ;Yes. Jump to LED control
;--- control to fast speed ---
movlw change ;Set change value
subwf CCPR1L,f ;CCPR1L - Change value
btfsc STATUS,C ;Underflow ?
goto led_cont ;Jump to LED control
clrf CCPR1L ;Set fastest speed
64
btfsc STATUS,C ;Under ?
goto led7 ;No.
movlw b'00111111' ;Set LED control data
goto int_end ;Jump to interrupt end
led7 movlw b'11100000' ;Set compare data
subwf led,w ;LED - data
btfsc STATUS,C ;Under ?
goto led8 ;No.
movlw b'01111111' ;Set LED control data
goto int_end ;Jump to interrupt end
led8 movlw b'11111111' ;Set LED control data
end
65