INFORMAȚIEI AUTOMATICĂ, ELECTRONICĂ ȘI MECATRONICĂ [602066]
1
UNIVERSITATEA DIN CRAIOVA
FACULTATEA DE AUTOMATICĂ, CALCULATOARE ȘI
ELECTRONICĂ
DEPARTAMENTUL DE [CALCULATOARE ȘI TEHNOLOGIA
INFORMAȚIEI / AUTOMATICĂ, ELECTRONICĂ ȘI MECATRONICĂ ]
PROIECT DE DIPLOMĂ
Spuza Emanuela Lavinia
COORDONATOR ȘTIINȚIF IC
Conf.univ.dr.ing. Elena Doicaru
Iulie 2015
CRAIOVA
2
UNIVERSITATEA DIN CRAIOVA
FACULTATEA DE AUTOMATICĂ, CALCULATOARE ȘI
ELECTRONICĂ
DEPARTAMENTUL DE [CALCULATOARE ȘI TEHNOLOGIA
INFORMAȚIEI / AUTOMATICĂ, ELECTRONICĂ ȘI
MECATRONICĂ ]
Frecventmetru Numeric
Spuza Emanuela Lavinia
COORDONATOR ȘTIINȚIFIC
Conf.univ.dr.ing. Elena Doicaru
Iulie 2015
CRAIOVA
3
„Învățătura este o comoară care își urmează stăpânul pretutindeni .”
Proverb popular
4
DECLARAȚIE DE ORIGINALITAT E
Subsemnatul Spuza Emanuela Lavinia student: [anonimizat], Calculatoare și Electronică a Universit ății din Craiova, certific prin prezenta
că am luat la cunoșt ință de cele prezentate mai jos și că îmi asum, în acest context, originalita tea
proiectului meu de licență :
cu titlul Frecventmetru Numeric ,
coordonată de Conf.univ.dr.ing. Elena Doicaru ,
prezentată în sesiunea Iulie 2015
La elaborarea proiectului de licență, se consideră plagiat una d intre următoarele acțiuni:
reproducerea exactă a cuvintelor unui alt autor, dintr -o altă lucrare, în limba română sau prin
traducere dintr -o altă limbă, dacă se omit ghilimele și referința precisă,
redarea cu alte cuvinte, reformularea prin cuvinte propr ii sau rezumarea ideilor din alte
lucrări , dacă nu se indică sursa bibliografică,
prezentarea unor date experimentale obținute sau a unor aplicații realizate de alți autori fără
menționarea corectă a acestor surse,
însușirea totală sau parțială a unei lu crări în care regulile de mai sus sunt respectate, dar care
are alt autor.
Pentru evitarea acest or situații neplăcute se recomandă:
plasarea într e ghilimele a citatelor directe și indicarea referinței într -o listă corespunzătoare la
sfărșitul lucrării,
indicarea în text a reformulării unei idei, opinii sau teorii și corespunzător în lista de referințe
a sursei originale de la care s -a făcut preluarea,
precizarea sursei de la care s -au preluat date experimentale, descrieri tehnice, figuri, imagini,
statistici, tabele et caetera ,
precizarea referințelor poate fi omisă dacă se folosesc informații sau teorii arhicunoscute, a
căror paternitate este unanim cunoscută și acceptată.
Data , Semnătura candidat: [anonimizat] ,
5
UNIVERSITATEA DIN CRAIOVA
Facu ltatea de Automatică, Calculatoare și Electronică
Departamentul de [Calculatoare și Tehnologia Informației /
Automatică, Electronică și Mecatronică]
Aprobat la data de
…………………
Șef de departament,
Prof. dr. ing.
Marius BREZOVAN /
Emil PETRE
PROIECTUL DE DIPLOMĂ
Numele și prenumele student: [anonimizat]/ -ei:
Spuza Emanuela Lavinia
Enunțul temei:
Frecventmetru Numeric
Datele de pornire:
[Descrierea datelor inițiale de la care s -a început activitatea
de cercetare/dezvoltare a tezei ]
Conținutul proiectu lui:
[Descrierea succintă a conținutului fiecărui capitol al
lucrării ]
Material grafic obligatoriu:
Consultații:
[Periodice/zilnice/săptămânale/lunare ]
Conducătorul științific
(titlul, nume și prenume, semnătura): Șef lucrări dr. ing. Marius MAR IAN
Data eliberării temei :
01.12.2011
Termenul estimat de predare a
proiectului :
01.06.2012
Data predării proiectului de către
student și semnătura acestuia:
6
UNIVERSITATEA DIN CRAIOVA
Facultatea de Automatică, Calculatoare și Electronică
Departamentul de [Calculatoare și Tehnologia Informației /
Automatică, Electronică și Mecatronică]
REFERATUL CONDUCĂTORULUI ȘTIINȚIFIC
Numele și prenumele candida tului/ -ei: Spuza Emanuela Lavinia
Specializarea: Electronica Aplicata
Titlul proiectulu i: Frecventmetru Numeric
Locația în care s -a realizat practica de
documentare (se bifează una sau mai
multe din opțiunile din dreapta): În facultate □
În producție □
În cercetare □
Altă locație: [se detaliază ]
În urma analizei lucrării cand idatului au fost constatate următoarele:
Nivelul documentării Insuficient
□ Satisfăcător
□ Bine
□ Foarte bine
□
Tipul proiectului Cercetare
□ Proiectare
□ Realizare
practică □ Altul
[se detaliază ]
Aparatul matematic utilizat Simplu
□ Mediu
□ Complex
□ Absent
□
Utilitate Contract de
cercetare □ Cercetare
internă □ Utilare
□ Altul
[se detaliază ]
Redactarea lucrării Insuficient
□ Satisfăcător
□ Bine
□ Foarte bine
□
Partea grafică, desene Insuficient ă
□ Satisfăcătoare
□ Bună
□ Foarte bun ă
□
Realizarea
practică Contribuția autorului Insuficientă
□ Satisfăcătoare
□ Mare
□ Foarte mare
□
Complexitatea
temei Simplă
□ Medie
□ Mare
□ Complexă
□
Analiza cerințelor Insuficient
□ Satisfăcător
□ Bine
□ Foarte bine
□
Arhitectur a Simplă Medie Mare Complexă
7
□ □ □ □
Întocmirea
specificațiilor
funcționale Insuficientă
□ Satisfăcătoare
□ Bună
□ Foarte bună
□
Implementarea Insuficientă
□ Satisfăcătoare
□ Bună
□ Foarte bună
□
Testarea Insuficientă
□ Satisfăcătoare
□ Bună
□ Foarte bună
□
Funcționarea Da
□ Parțială
□ Nu
□
Rezultate experimentale Experiment propriu
□ Preluare din bibliografie
□
Bibliografie Cărți
Reviste
Articole
Referințe web
Comentarii
și
observații
În concluzie, se propun e:
ADMITEREA PROIECTULUI
□ RESPINGEREA PROIECTULUI
□
Data, Semnătura conducătorului științific,
8
CUPRINSUL
1 INTRODUCERE …………. ………….. ……………………. ………………………………………………….1
1.1 Schema bloc de principiu pentru masurarea frecventei. Notiuni
introductive ……… ………………………… ………….. ………………………… ……………………………2
2 Descrierea proiectului ………………. …………….. ……………… …………………………………. ……3
2.1 Schema bloc a frecvenmetrului cu PIC Microcontroler. …………….. ……………3
2.2 Schema blo c avansata a frecvenmetrului numeric ………….. ………………. ……….4
2.3 Specificatii. …………… ………….. ……………………….. ……… ………………………………….4
2.4 Schema Electronica …………………… ……….. . ……………….. ………………….. ………….5
2.5 Cablaj placa de achizitie si pozitionarea pieselor pe placa …………………. ……..6
2.6 Layout -ul Schemei …………. ……………………… …………………………. …………….. …….7
2.7 Tehnica de masurare a frecventei …………………………. ……….. …….. …………… …..7
2.7.1 Semnalul de intrare si perioada masurata ………….. …………………. ………..7
2.7.2 Calculul PPM ……….. ……… …………………. …….. …………………………………. ….8
2.8 Cristalul ……………………….. ……………….. ………… ……………………………………………8
2.8.1 Cristale foarte precise. TCXO ………………… …………… ………….. ………………9
2.8.2 Cristalul OCXO …………. ………………………. …………………. ………… …………… 9
2.8.3 Compararea preciziei cristalului oscillator ………. ……………………… ……….9
2.9 Cerintele numaratorului de frecventa ……………………………………..10
2.9.1 Numararea de evenimente ……………………………………………..10
2.9.2 Masurarea timpulu i…………………………………………………….10
2.9.3 Intreruperi ………………………………………………………. ………………………….. 10
2.9.4 Intarzierile de timp ……………………………………………………. ..11
2.10 Componente folosite …………… ………………………………………………………………………13
3 Microcontroller -ul PIC 16F877A ……………. …………………………………………………..14
3.1 Introducere …………………………………… …………………………….14
3.2 Diagrama pinlor ……………………………………………………………14
3.3 Caracteristici ……………………………………………………………….15
3.4 Caracteristici periferice ……………………………………………………16
3.5 Diagrama pinilor(model 2 )…………………………………………………18
3.6 Descrierea pinilor de iesire …………………………………………… ……19
3.7 Caracte risticile dispozitivelor ……………………………………………..22
3.8 Diagrama bloc …………………………………………………………… …24
3.9 Organizarea memoriei ……………………………………………………..25
9
4 LMN 7805 ………………………………………………………………29
4.1 Diagrama blo c……………………………………………………………. ..29
4.2 Maximul evaluarilor absolute ……………………………………………3 0
4.3 Caracteristicile LM7805 …………………………………………………..30
4.4 Caracteristicile performantei tipice ………………………….…………..31
4.5 Aplicatii tipice ………………………………………………………………32
5 LCD -UL……………….. ……………….. ……………….. ……………….. ………………. 33
5.1 Specificatii generale ………………………………………………………..33
5.2 Descrierea LCD -ului……………………………………………………….35
5.3 Interfata functiilor PIN ……………………………………………………36
5.4 Diagrama
PIN…………………………………………………………………………..37
5.5 Dimensiun ea si diagrama bloc …………………………………………….38
5.6 Descrierea functiei …………………………………………………………39
5.7 Busy flag(BF) ………………………………………………………………39
5.8 Adress Counter (AC) ………………………………………………………39
5.9 Relatiile dintre adrese si pozitiile DDRAM de pe LCD …………………40
5.10 Pozitia adresei DDRAM ……………………………………………40
5.11 Generator de caractere ROM …………………………………… …41
5.12 Tabela de instructiuni ………………………………………………42
5.13 Caracteristicile timing -ului…………………………………………43
5.13.1 Operatia de scriere …………………………………………………..43
5.13.2 Operatia de citire ……………………………………………………44
5.14 Initial izarea LCM ………………………………………………………..45
10
LIST A FIGURILOR
1. Figură 1. Schema bloc de principiu a unui frecventmetru numeric ………… …2
2. Figură 2. Schema bloc a frecventmetrului cu PIC Microcontroler… ………….. 3
3. Figură 3. Schema bloc avansata… …………………… …………………………… 4
4. Figură 4. Schema electronica… ……………………………………………………. 5
5. Figură 5. Cablaj placa de achizitie si pozitionarea pieselor… …………………… 6
6. Figura 5.1. Layout -ul schemei… …………………………………………………… 7
7. Figură 6 Semnalul de intrare si perioada masurata … ……………………………. 7
8. Figură 7. Exemplu de 4 cadre multiple de sapte segmente… ……………………. 11
9. Figură 8. Diagrama pinilor 40 -PIN PDIP… ……………………………………… 14
10. Figură 9. Diagrama pinilor …………………………………………… ….………..18
11. Figură 10. Diagrama pinilor … ……………………………………………………. 18
12. Figură 11. Diagrama bloc PIC16F877A … ……………………………………….. 24
13. Figură 12. Organizarea m emoriei… ………………………………………………. 25
14. Figură 12. LMN 7805…… ……………………………………………….….. ……..30
15. Figură 13. Diagrama bloc a LMN7805……… …………………………………. ….31
16. Figură 14. Caracteristicile performantei……… …………………………………..32
17. Figură 15. Aplicatii tipice…… ………………………………………………….. …33
18. Figură 16 . LCD……… ………………………………………………………… ….34
19. Figură 17. Diagrama PIN……… ………………………………………………. ….38
20. Figură 18 Schita dimensiunilor si diagrama bloc …… ………………………. …..39
21. Figură 19. Relatiile dintre adrese si pozitiile DDRAM de pe LCD………… …..41
11
22. Figură 20 Operatia de scriere a timing -ului……… …………………………… .44
23. Figură 21. Operatia de citire a timing -ului… ……………………………….. ….45
24. Figură 22 . Initializarea LCD -ului……… ……………………………………… .46
25. Figură 23. Initializarea LCD -ului……… …………………………………..…. ..47
26. Figură 24. Frecventmetru numeric functionabil………… ……………… …….48
27. Figură 25. Spatele proiectului practice…… …………………………………… 49
12
LISTA TABELELOR
1. Tabel 1. Spec ificatii………………………………………………………………….……….4
2. Tabel 2. Compararea preciziei cristalului oscillator……………… .………… .….………9
3. Tabel 3. Componente folosite…… ……………………………………………….….. ……..13
4. Tabel 4. Cara cteristici Pic16F877A……… …………………………………… ….……….17
5. Tabel 5 .Caracteristicile dispozitivelor PIC16F873A/PIC16F876A/PIC16F877A… ……22
6. Tabel 5. Banci multiple… ……………………………………………………………….. …26
7. Tabel 6. Registrul functii lor special… …………………………………………………. ….27
8. Tabel 7. Registrul functiilor special …………………………………………………. ……28
9. Tabel 8. Registrul functiilor special ……………………………………………………. …29
10. Tabel 8. Maximul evaluarilor absolute…… ……………… ……………………………. …31
11. Tabel 9. Caracteristicile stabilizatorului de tensiune… ……………………………… ….31
12. Tabel 10. Sistemul modului de codificare…. ………………………………………………………….. ….35
13. Tabel 11. Descrierea LCD… ……………………………………………………………… ..36
14. Tabel 12. Interfata functiilor PIN…… ……………………………………………………………………… …37
15. Tabel 13. Descrierea functiei… …………………………………………………………. …40
16. Tabel 14. Pozitia DDRAM… …………………………………………………………… …..41
17. Tabel 15 Generator de caractere ROM ……………………………….……..………… ….42
18. Tabel 16. Tabe la de instructiuni… …………………………………………..………… …..43
19. Tabel 17. Operatia de scriere a timing -ului… ……………………………..………….. ….44
20. Tabel 18. Operatia de citire a timing -ului… …………………………………………….. ..45
1
1 INTRODUCERE
Proiectul m eu consta in masurarea frecventei de pana la 50 MHz . Masurarea numerica a frecventei
consta in numararea perioadelor semnalui prezentat la intrare intr -un interval de timp precizat.
Parametrii frecventmetrului numeric sunt:
1) Exactitatea ce genereaza v alori masurate apropiate de valoarea reala rezultand o eroare de
indicatie ce consta in diferenta dintre valaoarea indicata si valoarea reala.
2) Precizia definita ca fiind valoarea minima posibila exprimata in procente din limita superioara
a domeniului mas urat. Imediatele erori ar fi realizate de etalonul de frecventa, triggerul de
intrare, numarul de digiti ai afisorului, sursa de alimentare, factorii de amplificare etc.
3) Rezolutia ce ne indica variatia maxima a marimii de intrare ce realizeaza un salt al s emanlului
final. Este cea mai mica variatie realizata in domeniul respectiv.
4) Viteza de masurare consta in raportul dintre numarul ordinelor numerice afisate(n) si timpul
de masurare : v=k*n/td , unde k este constanda de proportionalitate, td este intervalu l de timp
masurat din momentul aplicarii la intrarea frecventmetrului.
5) Stabilitatea ce consta in variatia etalonarii frecventmetrului numeric tinand cont de
temperatura,semale parazite, umiditate,etc. Frecventmetrul lucreaza la temperatura cumprinsa
intre 5grade C ~ 40grade C.
6) Sensibilitatea considerata panta dreptei si avem sensibilitate absoluta si sensibilitate relativa.
7) Fidelitatea este calitatea de influenta minima in actiunea temperaturii sau semnalelor parazite.
8) Finetea reprezinta minimul de influent a a marimii fizice ce necesita determinata.
9) Pragul de sensibilitate ce reprezinta minimul variatiei a marimii de intrare ce poate determina
o variatie sesizabila a marimii de iesire. Acesta nu poate sa scada sub limita minima impusa
de zgomotul de agitatie termica si depinde foarte mult de zgomotul circuitelor electronice.
2
1.2 Shema bloc de principiu pentru masurarea numerica a frecventei .
Notiuni generale.
Figură 26. Schema bloc de principiu a unui frecventmetru numeric
AF reprezinta amplificatorul formator; CP este circuitul poarta; ND este numit numaratorul decatic; A
reprezinta afisajul; OC reprezinta oscilatorul cuart; DF este divizorul de frecventa ; CB este un circuit
basculant.
Frecventa semnalului masurat este am plificata si transformata in impulsuri dreptunghiulare de catre
amplificatorul formator. Acestea ajung la numaratorul decadic ND prin circuitul poarta CP si sunt
numarate in intervalul in care la a doua intrare a CP se aplica impulsul produs de circuitul b asculant
CB. Prin divizarea oscilatorului de cuart OC impulsul are o durata etalon , durata ce este stabilita de
divizorul de frecventa DF. Se pot face modificari de exterior in cadrup raportului de divizare in
functie de frecventa semnalului masurat, iar precizia duratei impulsurilor este egala cu precizia
oscilatorului OC. Rezultatul numararii este afisat de un dispozitiv de afisaj A.
3
2 DESCRIEREA PROIECTUL UI
2.1 Schema bloc a frecventmetrului ales de mine cu PIC Microcontroler
Figură 27. Schema bloc a frecventmetrului cu PIC Microcontroler
Microcontrolerul ales trebuie sa indeplineasca urmatoarele proprietati:
-trebuie sa contine un timer0 si timer1
-trebu ie sa contina module hardware
-trebuie sa contin a suficienta memorie pentru a mentine in program aproximativ 1.6k cuvinte
In proiectul ales de mine folosesc un microcontroler PIC 16F877A ce contine un timer1 ce imi
masoara semnalul de intrare si un timer0 ce imi masoara perioada de timp. Cristalul osci lator folosit
este compus dintr -un simplu cristal si doua condensatoare conectate la porturile microcontroler -ului
OSC1 si OSC2. Condensatorii pot avea aceleasi val oare cu exceptia cazului in care dorim sa ii reglam
folosind o referinta a frecventei (daca avem o referinta fixa putem utiliza condensatoare fixe).
Cristalul ales este de 4MHz (Fosc),iar ceasul procesorului intern este de 1MHz (Fosc/4). Numarand
timpii procesorului (timer0) obtinem o secunda pe perioada. In acest moment timpul final masurat
este de fapt frecventa de intrare a semnalului.
Ecranul LCD utilizeaza interfata in 4 biti, deci avem nevoie doar de 4 linii de date si 3 linii de control
rezultand un singur port de 8 biti.
Ledul este comutat pentru a indica viata procesorului .Daca nu este semnal de intrare pe ecranul LCD
se afiseaza 0.
4
2.2 Schema bloc avansata a frecventmetrului numeric
Figură 28. Schema bloc avansata
2.3 Specificatii
Tabel 19. Specificatii
5
2.4 Schema electronica
Figură 29. Schema electronica
6
2.5 Cablaj placa de achizitie si pozitionarea pieselor pe placa
Figură 30. Cablaj placa de achizitie si pozitionarea pieselor
7
2.6. Layout -ul Schemei
2.7 Tehnica de masurare a frecventei
O simpla masurare a frecventei se realizeaza prin verificarea muchiilor unui semnal de intrare pe o
perioada definite de timp T. Frecventa este definit a ca fiind (numarul de evenim ente)/(timpul i n
secunde) totul masurat in Hz.
2.7.1 Semnalul de intrare si perioada masurata
Figură 31
Putem masura foarte usor frecvente pana la 65.536 Hz datorita cipului din microcontroller, acesta
realizea za 65.535 fara ca procesorul sa se supra -incarce si s a nu poate faca fata cerintelor(overflow) .
8
Se asteapta o secun da pana ce numarul ajunge la 65.535 , se citeste si se afiseaza pe ecran. Frecventa
afisata va fi in Hertz. Peste aceasta valoare, 65 535 kHz , trebuie sa monitorizam valoarea de overflow
si in acelasi timp sa monitorizam intarzierea in timp exact. Masurare a se face la 1 Hz. Marind timpul
T, de exemplu la 10 secunde avem o rezolutie de 0,1 Hz, iar daca timpul ia valoarea de 0.1secunde
ne rezulta o rezolutie de 10 Hz.
2.7.2 Calculul PPM
Din notiunuile invatate in cei patru ani de facultate ppm -ul se defineste ca fiind o unitate de masura a
concentratiei. Este in general folosita pentru a exprima cantitatea chimica de substanta sau de
contaminant aflat intr -o cantitate de apa.
Adica ppm-ul reprezinta concentratia unei substante diluate in alta substan ta exprimata in ppm sau
parti la un million. Avem 50 ppm+/ – pentru un cristal de 4MHz. Eroarea pe care o poate avea cistalul (
presupunand ca acest cristal este incarcat cu capacitatea corecta) o sa fie in intervalul urmator:
Eroarea maxima posibila: 4MHz + (4MHz*50* ( -1)e6)=4.0002e6
Rezultand : -(4MHz*50*1e6= 39998e6
Deci cristalul poa te oscila in orice frecventa a in tervalului 4000200Hz si 3999800Hz. De retinut este
ca aceasta frecenta poate fi schimbata prin modificarea capacit atii de incarcare a cristalului.
O reactie importanta este intarzierea in timp asa ca pentru cristal (fosc/4) si pentru durata ciclului de
timp al PIC -uui (1 MHz nominal) avem :
Maximul ciclului de timp : 1/(1.00005e6) sau 1(1MHz + 50ppm)
Minimul ciclului de timp : 1/(0.99995e6) sau 1/(1MHz – 50ppm)
Observam ca mult mai simplu este sa folosim valoarea ppm fara a mai calcula toate etapele
intermediare.
Timpul de intarziere minim: 1e6/(1.00005e6) 0.99995s sau (1s – 1s*50ppm) secunde
Timpul de intarz iere maxim: 1e6/(9.9995e6) 1.00005s sau (1s + 1s*50ppm) secunde
2.8 Cristalul
De obicei cristalele disponibile au sarcini le ppm intre +/ -30 ppm si +/ -50 ppm( parti la un million),
dar putem folosii cristal cu sarcina ppm +/ -20. Cu cat valoarea ppm este mai mica ( eroarea mai
mica) cu atat mai bine, mai precis sau exact, putem ma sura frecvevnta. Coeficientul de temperature
9
este +/ -50 ppm, asta in cauzul in care nu folosim un ceas al cristalulu i cu coeficientul de temperatura
intre 0.034+/ -0.006 ppm/grade C. Daca tem peratura nu se schimba prea mult atunci aceasta nu va
afecta precizia de exemplu intr -o cladire controlata de temperatura.
2.8.1 Cristale foarte precise. TCXO
Temperatura este controlata de cristalul oscilator. Acesta este u n simplu cristal , sigilat intr -un
pachet, localizat langa o sursa de caldura si un sensor si tot ce realizeaza este sa mentina o
temperature relativ constanta.
2.8.2 Cristalul OCXO
Deoarece aceste modelul aceste este foarte exact se folosest e un alt calcul si anume, in locul ppm se
foloseste ppb -parts per billion (parti foarte mici ale unei substante diluate in alta substanta – parti la un
milliard). Folosesc o camera incalzita la o temperature constanta ,indiferent de temperatura de afara si
ajuta ca in interioru l componentelor electronice (si cristalul) sa lucreze cu cea mai precisa iesire pe
care o poate folosii cristalul. In consecinta OCXO -urile sunt foarte scumpe. Parametrii utili sunt
timpul warm -up(deoarece contine o sursa de incalzi re si dureaza cateva minute pentru a ajunge la
temperatura corecta). Prin urmare echipamentul nu poate fi folosit imediat cum este pornit.
2.8.3 Compararea preciziei cristalului oscillator
In afara de parametrul warm -up mai avem si Aging ce descri e modificarea frecventei in timp datorita
imbatranirii componentelor.
Tabel 20. Compararea preciziei cristalului oscilator
10
2.9 Cerintele numaratorului de frecventa.
Exista doua mari cerinte:
1. Evenimentele numaratorului de intrare(margi nile)
2. Masurarea timpului
2.9.1 Numararea de evenimente
Timerul 1 este ideal pentru masurarea frecventei (numararea marginilor) deoarece
functio neaza ca un cont or in 16 biti avand intrare directa in pinul portului.
Putem folosii timer -ul 0 daca timerul1 nu este disponibil. Singura diferenta este aceea ca
timer0 este in 8 biti(imbunatatita la 16 biti in 18F parti)
Numaratoarea maxima a pin ului timer este de 65535, cu un numar in plus seteaza steagul
overflow(adica atunci timerul citeste 0 din nou). Numarand valorile de overflow ofera
numarator ului un multiplu de 65536 si se citeste valoarea TMR, iar la sfarsit obtinem
totalul muchiilor numerate pe perioada T.
2.9.1 Masurarea timpului
Exista doua modalitati de numarare a timpului
1) Folosind intreruperi
2) Intarzierile de timp in cod
2.9.2 Intreruperi
Designul actual al contorului de f recventa LCD foloseste timer -ul1 ca fiind co ntorul de evenime nte,
iar timer 0 fiind contorul de timp. Utilizand LCD -ul obtinem o modalitate destul de usoara pentru
afisar ea rezultatelor in limbaje la nivel inalt , de obicei include driverele pentru LCD.Folosindu -l nu
mai avem nevoie nici de tehnici special e si poate f i actualizat foarte usor.Functioneaza atata timp cat
nu ratam un eveniment ( timer 1 sa nu aiba intreruperi rapide,dar sa poate primii semnale foarte
rapide).Din moment ce overflow este un contor de 16 bit, intreruperile actuale procesorului sunt lente
oricum..
Timerul este numarat folosind 1MHz al ceasului intern la 256 overflow s( timer0) asa ca n u este foarte
rapid nici acesta.
11
2.9.3 Intarzierile de timp
Aceasta metoda nu se recomanda, dar functioneaza.Datorita procesorului ce are un timp definit pentru
fiecare instructiune putem crea intarzierile pe care ni le dorim. Daca vrem sa cream o intar ziere de o
secunda atunci numarul evenimentelor numerate in aceasta intarziere va fi frecventa masurata in Hz.
Putem vedea aceasta metoda utilizata in desenele de pe web c are folosesc 16F84( care are doar un
timer si anume timer 0).Observam de asemenea cele 7 segmente afisate driverului si frecventa
numarata.
Pentru a afisa multiple de 7 afiseaza segmente ce se bazeaza pe persistenta de viziune. ( o modalitate
de a descrie cum percepe ochiul uman lumina)
Cu un singur ecran de 7 segmente putem lega toate conexiunile direct la microcontroller si avem
nevoie in total de 8 conexiuni si cu doua segmente avem nevoie de 16 conexiuni ,iar cu 8 segmente
avem nevoie de 64 de conexiun i.
Bineinteles majoritatea microcontrolerelor nu au 64 de pini si avem nevoie de o metoda diferita.
Raspunsul este de a utiliza multiplexarea,care se defineste ca fiind modaltatea de pini de recic lare.
Toate acestea sapte segmente sunt conectate la acelasi port de 8 biti. Apoi afisarile sunt multiplexate
adica fiecare ecran este pornit pentru o perioada scurta de timp , iar apoi se stinge. De obicei
schimbam cele 7 segmente afisate pornind de la un transistor conectat la catodul comun al
ecranului(masa). Ca nd tranzistorul este setat pe “on” toate ledurile sunt activate, ledul corespunzator
se apr inde, atunci cand un pic al portului de 8 biti este mare.
Exemplu de 4 ecrane multiple de sapte segmente folosind doar 12 pini (fara multiplexare am avea 32
de pini) .
Figură 32. Exemplu de 4 cadre multiple de sapte segmente
12
Pentru a realiza iluzia ca ledurile sa fie aprinse tot timpul, ledurile trebuie actualizate atat de
repede incat ochiul nostru sa nu observe diferente. Trebu ie reactualizat afisorul la aproape 50Hz
bazandu -se pe persistenta de viziune, adica imaginea afisata nu trebuie sa fie constanta atata timp cat
este repetata destul de repede.
Trucul in conducerea afisorului multiplexat pentru aplicatia frec ventei numarate este acela
ca rutina de multiplexare sa lucreze intr -un timp constant. Perioada de intarziere T poate incorpora
actualizarea celor sapte segmente ale afisorului(display -ului). Timpu con stant este necesar in accelasi
masura in care avem nevoie si val orile overflow ale timer -ului.
13
2.10 Componente folosite
Componentele folosite sunt prezentate in tabelul de mai jos:
Tabel 21. Componente folosite
14
3 Microcontroller -ul PIC 16F877A
3.1 Introdu cere
Este componenta majoritara. Realizeaza aproape toate comenzile proiectului meu.
Numele real al acestui microcontroler este PICmicro(Interfata periferica a controlerului). A
fost conceput in 1975 de catre General Instruments. Toate microcontrolerele P IC folosesc
arhitectura Harvard, ceea ce demonstreaza ca programul lor de memorie este conectat la
procesorul central prin mai mult de 8 linii. In functie de latimea magistralei avem
microcontrolere cu 12,14 si 16 biti. Apoape toate microcontrolerele PIC c u arhitectura
Harvard cu 8 biti apartin celor 3 grupuri si anume cu 12,14,16 biti. Exceptie fac PIC
24FXXXX si PIC 24HXXX.
3.2 Diagrama pinilor
Figură 33
15
3.3 Caracteristici
Numai 35 de intructiuni formate dintr -un singur cuvant;
Performanta ridicata RISC CPU
Instructiunile ciclice singulare existente, exceptand partile de programe care sunt bi –
ciclice
Viteza de operare : DC ~ 20 MHz timing
DC ~ 200 ns ciclu de instructiuni
Compatibilitate de iesire cu PIC16C73B/74B/76/77
Capabilitate de intrerupere ( de pana la 14 surse)
Pana la 8K x 14 cuvinte de memorie Program Flash
Pana la 368 x 8 biti de memorie de Date (RAM)
Pana la 256 x 8 biti de memorie de date EEPROM
Gama de Hardware pe 8 nivele
Modele de adresare directe,indirecte si relative
Resetare pronire (POR)
Timing pornire (PWRT) si timing pornire oscilator (OST)
Timing de supraveghere (WDT ) cu propriul cip RC, oscilator pentru singure
operatiuni
Mod de SLEEP pentru economisire energie
Protectie de cod programabila
Optiuni selectibile de oscilator
Tehnologie low -power, de inalta viteza CMOS FLASH/EEPROM
Design static complet
16
Putere de progra mare in serie In -Circuit Serial Programming (ICSP) prin doua ace
Putere de programare in serie de 5V
Debug In -Circuit prin doua ace
Procesor de scriere/citire pentru accesarea memoriei de program
Putere de voltaj mare : 2V ~5.5V
Curent de inalta sursa: 25 mA
Valori de temperatura comerciala, industriala si extinsa
Economie energetica: – mai mica de 0.6 mA tip @3V, 4 MHz
– 20 uA de tip @3V, 32 kH
– Mai mic de 1 uA d e tip curent de standby
100.000 de cicluri stergere si scriere ale programului de memorie Enhanced Flash
1.000.000 de cicluri stergere si scriere ale memoriei EEPROM
Retentie de date a memoriei EEPROM > 40 de ani
Controlul softwere auto -reprogramabil
3.4 Caracteristici periferice
Timer0 : 8 biti numarator cu prescala de 8 biti
Timer1 : 16 biti numarator cu prescala ce poate fi incrementat in timpul
functiei de Sleep prin ceasul extern
Timer2 : 8 biti numarator cu perioada de inregistrare de 8 biti cu
portscala
Dubla captura : 16 biti si rezolutie maxima de 12.5 ns
17
Comparare : captura de 16 biti cu rezolutie maxima de 200ns
Modul PWM : PWM maxim cu rezolutie de 10 biti
Convertor analog -digital multicanal
Port serial cu sincronizare cu SPI (master mode) si I2C(master/slave)
Emitator si receptor cu adrese de detectie de 9 biti
Port Slave paralel (PSP) cu largime de 8 biti cu RD extern, WR si CS de
control (40/44 de pini)
Circuit de detectie Brown -out pentru reset Brown -out (BOR)
Caracteristici PIC 16F877
Tabel 22. Caracteristici Pic16F877A
18
3.5 Diagrama pinilor (model 2)
Figură 34
19
Figură 35
3.6 Descrierea pinilor de iesire
OSC1/CLK1 : Cristalul Oscilator sau intrarea ceasului exterm ;
OSC1 : Intrarea cristalului oscillator sau sursa de intrare a ceasului extern. Cand este configurat in
modul RC avem buffer ST, altfel CMOS ;
CLK1 : sursa de intrare a ceasului extert asociata intotdeauna cu functia pinului OSC1 ;
OSC2/CLK0 : Cristalul oscillator sau iesirea ceasului ;
OSC2 : iesirea cristalului oscillator; se conecteaza la cristal sau resonator in modul cristalului
oscillator ;
20
CLK0 : in modul RC avem pinii de iesire ai OSC1 care are frecventa egala cu ¼ si denota rata ciclului
de instruire ;
MCLR/VPP : tensiunea de programare(iesire) sau Masterul clear adica de stergere(intrare) ;
MCLR : Master clear (Reset) este un pin active al dispozitivului cu reset scazut ;
VPP : alimentarea la intrare ;
PORTA – port bidirectional I/O ;
RA0/AN0 : Digital I/O ; intrarea analogica 0 ;
RA1/AN1 : Digital I/O ; intrarea analogica 1 ;
RA2/AN2/VREF -/CVREF : digital I/O ; intrarea analogica 2 ; A/D tensiunea de referinta de intrare
(scazuta) ; Iesirea comparatorului VREF ;
RA3/AN3/VREF+ : digital I/O ; intrarea analogica 3 ; A/D tensiunea de referinta (ridicata) la intrare ;
RA4/T0CKI/C1OUT : digital I /O – open -drain cand este configurat ca iesire ; intrarea ceasului extern
timer0 ; iesirea 1 a comparatorului ;
RA5/AN4/SS/C2OUT : digital I/O ; intrarea analogica 4 ; SPI slave selectat la intrare ; iesirea 2 a
comparatorului;
RB0/INT : digital I/O; intreru perea externa;
RB1 : digital I/O ;
RB2 : digital I/O ;
RB3/PGM : digital I/O ; programarea ICSP de joasa tensinue ce activeaza pinul;
RB4 : digital I/O;
RB5 : digital I/O;
RB6/PGC : digital I/O; intrarea in circuit debugger si ICSP ceasului programabil ;
RB7/PGC : digital I/O; intrarea in circuit debugger si ICSP ceasului programabil ;
RC0/T1OSC/T1CKI : digital I/O ; iesirea oscilatoare a timerului 1; intrarea in ceasul extern timer1;
21
RC1/R1OSI/CCP2 : digital I/O ; iesirea oscilatoare a timerului1 ; captura2 intrare ; captura2 iesire;
iesirea PWM2;
RC2/CCP1 : digital I/O ; captura 1 intrare/iesire ; PWM 1 iesire ;
RC3/SCK/SCL : digital I/O ; serialul intrare/iesire al ceasului sincron pentru modul SPI ; serialul
intrare/iesire al ceasului sincron pentru modul I ^2C ;
RC4/SDI/SDA : digital I/O ; SPI date intrare; I ^2C I/O;
RC5/SDO : digital I/O;SPI date iesire ;
RC6/TX/CK : digital I/O; USART asincron transit; USART1 ceas sincron;
RC7/RX/DT : digital I/O ; primeste USART asincron; USART sincron data;
RD0/PSP0 : digital I/O ; date paralele slave port ;
RD1/PSP1 : digital I/O ; date paralele slave port ;
RD2/PSP2 : digital I/O ; date paralele slave port ;
RD3/PSP3 : digital I/O ; date paralele slave port ;
RD4/PSP4 : digital I/O ; date paralele slave port ;
RD5/PSP5 : digital I/O ; d ate paralele slave port ;
RD6/PSP6 : digital I/O ; date paralele slave port ;
RD7/PSP7 : digital I/O ; date paralele slave port ;
RE0/RD/AN5 : digital I/O; citeste controlul pentru portul paralel slave; intrarea analogica 5 ;
RE1/WR/AN6 : digital I/O; citeste controlul pentru portul paralel slave ; intrarea analogica 6;
RE2/CS/AN7 : digital I/O ; selectia cipului de control pen tru portul paralel slave; intrarea analogica 7;
VSS: masa de referinta logica si pinii I/O;
VDD: alimentarea pozitiva logica si pinii I/O ;
NC:acesti pini nu sunt conectati intern si este recomandat sa ramana neconectati ;
I: input~intrare;
22
O: output~iesire;
I/O:input/output ;
P: power~puterea;
ST:intrarea trigger -lui Schmitt
3.7 Caracteristicile dispozitivelor
PIC16F873A/PIC16F874A/PIC16F876 A/PIC16F877A
Tabel 5 .Caracteristicile dispozitivelor PIC16F873A/PIC16F876A/PIC16F877A
OBSERVATII:
Dispozitivul PIC16F873A/876A este disponibil numai in 28 de pini,iar PIC16F876A/77A este
disponibil in 40 ~ 44 pachete de pini.
Dispozitivele PIC16f873A s i PIC16F874A au jumatate din memoria totalaa PIC16F676 si
PIC16F877A.
23
Dispozitivele de 28 de pini au 14 intreruperi in timp ce dispozitivele cu 40~44 de pini au 5 intreruperi.
Dispozitivele de 28 de pini au 5 canale de intrare A/D, in timp ce dispozitivel e cu 40~44 de pini au 8.
Portul Paralel Slave este implementat numai in dispozitivele cu 40 ~ 44 de pini
Informatii suplimentare pot fi gasite in PIC ® Mid-Range Reference Manual (DS33023) care poate fi
obtinut de la reprezentantul Microchip sau descarcat de pe site -ul acestuia.
24
3.8 Diagrama Bloc
Figură 36
25
3.8 Organizarea memoriei.
Exista trei blocuri de memorie in fiecare dispozitiv PIC16F87XA si anume: memoria de
program si date ce are trasee separate, astfel incat accesul concomitant poate aparea si poate
fi detaliat in aceasta sectiunesi ultima, memoria EEPROM ce este detaliata in versiunea 3.0
a “Data EEPROM and FLASH Program Memory”
Figură 37
26
Organizarea memoriei de date este impartin e in banci multiple ce contin ca registru scopuri generale
si functia speciala de registre.
Biti: RP1(STATUS<6>) si RP0(STATUS<5>)
Tabel 23. Banci multiple
Fiecare banca se intinde pana la 7Fh (128 de biti). SPECIAL FUNCTION REG ISTER ( functiile
speciale registrului) sunt rezervate pentru cele mai joase locatii ale fiecarei banci. In afara de acestea
mai avem si GENERAL FUNCTION REGISTER (functiile generale registrului) ce sunt
implementate static ca RAM. Registrele de functii de la o banca pot fi reflectate in alta banca pentru o
27
reducere de cod si un acces mult mai rapid.
Tabel 24. Registrul functiilor speciale
28
Tabel 25. Registrul functiilor speciale
29
Tabel 26
30
4 LMN 7805
Figură 38. LMN 7805
LMN 7805 este frecvent folosit in circuitele electronice care necesita o reglare a sursei de
alimentare . Are o putere de 5 volti.
Caracteristici:
Curentul de iesire este de pana la 1A;
Tensiunea de iesire : 5,6 ,8,9,10,12,15,18,24 V;
Protectie la suprasarcina terminca;
Protectie scurt circuit;
Iesire sigura a tranzistorului operand in zona deprotectie;
4.1 Diagrama bloc
Figură 39. Diagrama bloc a LMN78 05
31
4.2 Maximul evaluarilor absolute
Tabel 27. Maximul evaluarilor absolute
4.3 Caracteristicile LM7805
Tabel 28. Caracteristicile stabilizatorului de tensiune
32
4.4 ) Caracteristicile performantei tipice.
Figură 40. Caracteristicile performantei
33
4.5 Aplicatii tipice
Figură 41. Aplicatii tipice
34
5 LCD -UL
Figură 42 . LCD
Ecranul LCD (Liquid Crystal Display) este un modul de afisare electronica si de a gasii o gama larga
de aplicatii. Un LCD 16×2 inseamna ca poate afisa 16 caractere pe linie si sunt doua linii. Fiecare
caracter este afisat in matrice 5×7 de pixeli. Contine doua registre: registrul de comanda si registrul de
date. Registrul de comanda stocheaza intructiunile de comanda date de LCD, instructiuni ca :
initializare,stergere, pozitia cursorului, controlul display -ului etc. Registrul de date stocheaza date ce
sunt afisate pe Lcd ,mai exact datele cu valoarea ASCII.
Afisajul folosit este un display LC D, simbolul original fiind RC1602B -GHW -CSX. Este de tip
alfanumeric de culoare gri -alb, produs de RAYSTAR OPTRONICS.
5.1 Specificatii generale
Dimensiuni: 84.0 x 44.0 x 13.2 (maxim) mm3
Zona fereastra de afisare: 66.0 x 16.0 mm2
Zona activa: 56.20 x 11.5 mm2
Numarul de caractere: 16 caractere x 12 linii
Dimensiune dot: 0.55 x 0.65 mm2
Pasul dot : 0.60 x 0.70 mm2
Dimensiune caracter : 2.95 x 5.55 mm2
Caracter pas : 3.55 x 5.95 mm2
35
Tipul LCD: STN Positive
Numar pini: 16
Tip dispunere pini : 1 x 16
Unghiul de ve dere: 6 o’clock
Iluminare: LED
Numar de semne (coloane x rand): 16 x 2
Pas pini: 2.54mm
Culoare lumina de fundal: alb
Culoare fundal: gri
Tabel 29. Sistemul modului de codificare
36
5.2 Descrierea LCD -ului
Tabel 30. Descrierea LCD
37
5.3 Interfata functiilor PIN
Tabel 31. Interfata functiilor PIN
38
5.4 Diagrama PIN
Figură 43. Diagrama PIN
5.5 Dimensiuni si diagrama bloc
39
Schita dimens iunilor si diagrama bloc
Figură 44
40
5.6 Descrierea functiei
Modul de afisare al LCD -ului este alcatuit dintr -un controler LSI, controler ce are doua registre de 8
biti, un registru de instructiuni notat cu IR si un registru de data notat cu DR. Exemplu de coduri de
instructiuni IR: afisarea clara, shiftul cursorului,adresele informationale pentru ecranul de date RAM
(DDRAM) si generatorul de caractere (CGRAM).
IR-ul poate fi scris sau citit numai din DDRAM sau CGRAM. Atunci cand ad resa informatiilor este
scrisa in IR, datele sunt stocate in DR -ul din DDRAM sau CGRAM, iar prin semnalul selector
inregistrare (RS) aceste registre pot fi selectate.
Tabel 32. Descrierea functiei
5.7 Busy Flag (BF)
Cand busy fl ag este 1, atunci cotrolul LSI -ului reprezinta modul intern de operatie si instructiunuile
ce urmeaza nu pot fi acceptate.
Cand RS=0 si R/W=1 rezulta ca busy flag este iesirea la DB7. Instructiunea urmatoare trebuie scrisa
dupa ce ne asiguram ca busy flag este 0.
5.8 Adress Counter (AC)
Adresa counter -ului atribuie adrese atat generatorului de caractere, cat si DDRAM -ului. Acest
DDRAM este folosit in stocarea datelor de afisare reprezentate in 8 biti. Extindere a capacitatii ajunge
la 80 x 8.
41
5.9 Relatiil e dintre adrese si pozitiile DDRAM de pe LCD.
Figură 45. Relatiile dintre adrese si pozitiile DDRAM de pe LCD
5.10 Pozitia adresei DDRAM
Tabel 33. Pozitia DDRAM
Generatoru de caractere RAM (CGRAM)
In GCRAM utilizatorul poate rescrie caracterele programului. Pentru 5 x 8 puncte, opt caractere pot fi
scrise, pentru 5 x 10 se pot scrie doar 4 caractere.
Generatorul de caractere ROM (CGROM)
CGROMul poate genera 5 x 8 sau 5 x 10 puncte de caractere de la co durile de 8 biti.
42
5.11 Generator de caractere ROM
Tabel 34 Generator de caractere ROM
43
5.12 Tabela de instructiuni
Tabel 35. Tabela de instructiuni
44
5.13 Caracteristicile Timing -ului
5.13.1 Operatia de scriere.
Citeste date din MPU.
Figură 46 Operatia de scriere a timing -ului
Tabel 36. Operatia de scriere a timing -ului
45
5.13.2 Operatia de citire
Citeste date din ST7066U
Figură 47. Operatia de citire a timing -ului
Tabel 37. Operatia de citire a timing -ului
46
5.14 Initializarea LCM
Figură 48 . Initializarea LCD -ului
47
Figură 49. Initializarea LC D-ului
48
6 PREZENTAREA PROIECTU LUI PRACTIC
Figură 50. Frecventmetru numeric functionabil
49
Figură 51. Spatele proiectului practice
7 CODUL SURSA
#include "bit.h"
#include "delay.h"
#include "bcd.h"
// If t he following are local the compiler optimses them out.
// Declare as global so not optimised by new compiler:
unsigned long ldmy=0; // force compiler to keep these
unsigned short sdmy=0; // force compiler to keep these
////////////////////////////////// //////////////////////////////////////
void init_ports(void) {
50
ADCON1 = 0x06; // all digital outputs
PORTA = 0;
TRISA = 0xFC; // inputs except RA1,RA0 p to 4017
PORTB = 0;
TRISB = 0; // out
PORTC = 0x01; // b0 = 1 for 7seg
TRISC = 0x81; // B7 = i/p for USART, RC0 T1CKI -Timer1 i/p.
PORTD = 0;
TRISD = 0; // out
PORTE = 0;
TRISE = 0; // out
}
////////////////////////////////////////////////////////////////////////
//
// gate_loop
//
// Action:
51
// Reads t he overflow flag in constant time
// and causes a measurement time just short of 1 second.
// Returns the overflow count from TIMER1
//
// GATE and REFRESH
//
// TUNE THIS GATE TIME to 1 second approx
//
// 1. Set the inner loop time to 999us
// Break on statement "gt –"
// Reset stopwatch
// step until reach the original statement "gt –"
// Adjust inner loop contents until have a loop time of 999us.
//
unsigned long gate_loop(unsigned int gt) org 200 {
unsigned long oc = 0;
do {
gt–;
// test for overflow
sdmy = PIR1 & (1<<TMR1IF);
52
asm {
CLRW ; // needed to lket simulator update var 5.0.0.3
}
if (sdmy!=0) {
PIR1 &= ~(1<<TMR1IF); // cle ar the bit.
oc += 1; // increase high count.
} else {
sdmy &= ~(1<<TMR1IF);
ldmy += 1;
asm {
CLRW ;
}
}
delay_500_us();
delay_100_us();
delay_100_us();
delay_100_us();
delay_100_us();
delay_10_us();
delay_10_us();
delay_10_us();
delay_10_us();
53
delay_10_us();
asm {
CLRW
CLRW
CLR W
}
} while (gt>0);
return oc;
}
////////////////////////////////////////////////////////////////////////
// Start here
//
void main() org 400 {
char op[12] ; // Display string for ascii converted long.
unsigned sho rt st_TMR1L ; // Store Timer 1 low byte (after calced).
unsigned short st_TMR1H ; // store Timer 1 high byte time.
unsigned long st_TMR1_ovfl=0 ; // store timer 1 overflows – multiples of 65536.
unsigned long df = 0 ; // display frequ ency value to use.
unsigned short blinkc=0 ; // blink counter
char lcdop[4];
54
init_ports();
// Timer 1
// prescale = 0, oscillator off, timer on, external clock, unsynchronized.
T1CON = (1<<TMR1ON) | (1<<TMR1CS) | (1<<T1SYNC);
// Ena ble Timer 1 interrupt flag so that the flag is updated
// interrupt not used just its output.
PIE1 = (1<<TMR1IE) ; // TMR1 overflow flag is enabled and can be polled.
// Note: actual interrupts not enabled.
Lcd_Config(&PORTB,0,2,1,7,6,5,4); // PORT,RS,EN,WR,D7,D6,D5,D4
LCD_Cmd(LCD_CLEAR);
LCD_Cmd(LCD_CURSOR_OFF);
for(;;) {
// blink the led on port C.
if (blinkc>0) { // processor alive indicator
PORTC=0xff;
} else {
PORTC=0x00;
}
55
blinkc=~blinkc;
////////////////////////////
// Calculate frequency from timer
//
if (!(st_TMR1L==0 && st_TMR1H==0 && st_TMR1_ovfl==0) ) {
df = st_TMR1L+(st_TMR1H<<8)+(st_TMR1_ovfl<<16);
} else {
df = 0;
}
ulong2bcd(df);
process_ulong2str(op);
LCD_Out(1,1,"FREQ:");
LCD_Out(1,6,op);
// Initialize ready for next gate time
st_TMR1L = 0;
st_TMR1H = 0;
st_TMR1_ovfl = 0;
TMR1H = 0; // clear timer1 high count. stop overflow
56
PIR1 &= ~(1<<TMR1IF); // clear overflow bit.
TMR1L = 0; // clear timer1 low count.
///////////////////
//
// Note tune the gate time to exactly 1second
// 1. Break on st_TMR1_ovfl = gate_l oop();
// 2. Reset stopwatch
// 3. step until reach statement "st_TMR1L = TMR1L;"
// 4. Adjust statements between start and finish to give 1second.
//
////////////////////
// Start of gate time
st_TMR1_ovfl = gate_loop(1000);
// tune delay (to exactly 1 second at and).
delay_500_us();
delay_100_us();
delay_100_us();
delay_10_us();
asm {
CLRW
CLRW
57
CLRW
CLRW
}
st_TMR1L = TMR1L; // get counter values before it updates
st_TMR1H = TMR1H;
// End of gate time
////////////////////
// test for overflow after tune delay
if ( PIR1 & (1<<TMR1IF) ) {
PIR1 &= ~(1<<TMR1IF); // clear the bit.
st_TMR1_ovfl += 1; // increase high count.
}
}
}
58
8 CONCLUZII
Autorul prezintă concluziile sale…
59
9 BIBLIOGRAFIE
1) A.Silard Aparate electronice de masura si control -Curs pentru uzul studentilor,
Facultatea de E lectronica si Telecomunicatii,Bucuresti 1990
2) M.Antoniu -Masurari electronice -EdituraSATYA
3) High Speed Digital Design Author: Howard Johnson
4) The Art of Electronics Author: Paul Horowitz, Winfield Hill
5) Datasheet -urile componentelor
6) Pic-16f877a.pdf
60
10 REFERINȚE WEB
1) regielive.ro.
2) Scribd.com/Frecvenmetru -numeric -cap1 -2
61
A. CODUL SURSĂ
În această anexă se adaug ă codul sursă al aplicației…
INDEX
62
B
Bibliografie ………………………….. …………………….. 59
C
CUPRINSUL ………………………….. …………………… ix
F
Figuri ………………………….. ………………………….. ….. 4 L
LISTA FIGURILOR ………………………….. ………… xii
L
LISTA TABELELOR ………………………….. ……… xiii
R
Referințe web ………………………….. ………………….. 60
S
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: INFORMAȚIEI AUTOMATICĂ, ELECTRONICĂ ȘI MECATRONICĂ [602066] (ID: 602066)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
