Sunteți pe pagina 1din 32

SENZORUL DE TURATIE

Nume Prenume: Filip Alina


Grupa: 8315

Facultatea: UPB Trnaporturi


Departamentu: Telecomenzi si electronica in transporturi
CUPRINS

Capitolul 1.
- Introducere
- Traductoare analogice electrodinamice de turatie
 Tahogeneratorul de curent continu
 Tahogeneratoare de curent alternativ
 Tahogeneratorul cu curenţi turbionari
- Tahometrul auto
 Ce este un tahometru pentru autovehicul?
 Motive pentru care este necesar un tahometru intr-o masina
 Principiul de functionare
Capitolul 2.

- Proiectarea
 Proiectarea tahometrului
 Cum este conectat tahometrul la senzorii auto
- 2.3 Tahogeneratori TDP 13
 Caracteristici
 Date tehnice-proiectare electrica
 Date tehnice - proiectare mecanica
 Numarul piesei
 Date in functie de tip
 Schema de comutare de inlocuire
 Dimensiuni

Capitolul 3.

- Schema bloc
- Scheme de proiecatre/asamblare
- Coduri sursa
Capitolul 1.

1.1. Introducere.

In functie de precizia dorită, pentru a masura viteza de turatie pe cale electrica, exista o gama mare
de mijloace. Tahometrul complet sau sistemul de masura a turatiei include traductorul de turaie,
circuitele auxiliare si instrumentul de ieşire.

Traductorul are la baza modificarea transferului de energie in funcţie de turatie. Circuitele auxiliare
sunt surse de excitatie, amplificatoare, demodulatoare etc. Traductoarele de turaţie se clasifică în
traductoare analogice şi digitale. Traductoarele de turaţie analogice convertesc turatia intr-un semnal
electric a carui amplitudine este dependenta linear de valoarea acesteia. Traductoarele digitale de
turatie convertesc turatia intr-un semnal electric a carui frecventa, perioada sau intervalul de timp intre
doua impulsuri succesive este dependenta de turatie.

Tema aleasa pentru acest proiect este ‘’Senzorul de turatie’’ si pentru a realiza aceasta proiectare o sa
volosesc un traductor Tahogenerator.
1.2 Traductoare analogice electrodinamice de turatie

1.2.1. Tahogeneratorul de curent continu:


Este o micromasina cu colector, al carui indus este rotit de arbore unde se masoara viteza
unghiulara. Excitatia masinii este facuta cu ajutorul unor magneti permanenti ce formeaza inductoare
cu una sau mai multe perechi de poli. Fluxul magnetic fiind constant la perii (5-30 V) este proportional cu
turatia indusului. Aceasta proportionalitate se pastreaza si pentru sarcini relativ mari conectate la periile
masinii. Turatia este indicata de un voltmetru ce se conecteaza la tahogenerator prin intermediul unor
rezistentece stabilestei domeniul de masurare.

fig(1)

Schema constructiv a unui


tahogenerator de c.c.
K – carcasa; MP – magnei
permaneni; SM – şunturi
magnetice; C – colector;
P – perii; R - rotor
Schema constructiv a unui
tahogenerator de c.c.
K – carcasa; MP – magnei
permaneni; SM – şunturi
magnetice; C – colector;
P – perii; R - rotor
Schema constructiv a unui
tahogenerator de c.c.
K – carcasa; MP – magnei
permaneni; SM – şunturi
magnetice; C – colector;
P – perii; R - rotor
Schema constructiv a unui
tahogenerator de c.c.
K – carcasa; MP – magnei
permaneni; SM – şunturi
magnetice; C – colector;
P – perii; R - rotor
Schema constructiv a unui ta
Schema

Schema constructive a unui tahogenerator fig(1);

K- carcasa;

MP- magneti permanenti;

SM-sumturi magnetice;

C- colector;

P- perii;

R- rotor.

Polaritatea tensiunii depinde de sensul de rotaţie al masinii, acesta putand fi determinat fara
scheme aditionale. Erorile de baza ale tahogeneratorului de curent continu sunt cauzate de variatia
temperaturii. Aceasta intervene la modificarea fluxului magnetului permanent si a rezistentei . Variatia
rezistentei poate fi neglijata dacă pentru masurare sunt utilizate voltmetre cu rezistenţa interna mare.

1.2.2. Tahogeneratoare de curent alternativ:


Sunt cunoscute următoarele tipuri:

A) Tahogeneratorul sincron mono si trifazat


B) Tahogeneratorul cu rotorul ce are forma de pahar.

Tahogeneratorul sincron monofazat se infasoara pe stator, iar rotorul format dintr-un magnet
permanent cu mai multi poli este cuplat pe ax unde se masoara turatia. Rotorul produce un camp
magnetic.

Schema unui tahogenerator in curent alternativ sincron fig(2):


fig(2)

Caderea tensinunii la bornele tahogeneratorului in sarcina depind de turatia masurata,


caracteristica de transfer este neliniara si se noteaza cu U(n). Reducerea acestei neliniaritati se poate
realiza prin utilizarea unui instrument de masurare cu rezistenta de intrare mare, regimul
tahogeneratorului trebuind sa difere cat mai putin de cel de gol. Indicatorul de iesire poate fi folosit
frecventmetrul deoarece frecventa tensiunii generate este dependenta de turatie, erorile datorate
temperaturii sau invariabilitatii parametrilor circuitului magnetic sunt neglijabile.

Din cauza ca nu are perii colectoare, tahogeneratoarele in curent alternativ lucreaza la viteze mai
mari (aproximativ pana la 5000 rot/min) fata de masinile in curent continu ce se opresc la 2000 rot/min,
tensiunea de iesire avand valori de V cu liniaritate (0.4÷4)%.

Structura unor astfel de traductoare. Conversia intensiune continua proportionala cu turatia:

fig (3)

Tensiunea alternativa obsinuta la iesirea unui tahogenerator se converteste in frecventa cu ajutorul


unui limitator sau multivibrator, dupa care fie e redresat, integrat si filtrat , astfel se obtine o tensiune
continua unipolara direct proportionala cu turatia sau filtrat obtinandu-se un semnal continuu bipolar
direct proportional cu turatia cu semnul dependent de sensul de rotatie. Tahogeneratoarele in curent
alternativ sunt des utilizate in masurarea.

Tahogeneratorul cu rotorul in forma de pahar are o constructie similara cu servomotorului cu


rotorul in pahar. Functionarea se bazeaza pe aparitia unei infasurari de iesire ce are frecveta constanta,
dar este modulata de viteza de rotaţie – n – a paharului, fata de infasurarea statorica fixa.
1.2.3. Tahogeneratorul cu curenţi turbionari :
Consta intr-un magnet permanent multipolar ,ce se pune in miscare de arbore a carui turatie este
masurata cu ajutorul unei cuple flexible) si cu linii de camp intersectand un disc sau un pahar metalic din
cupru sau din aluminiu induc tensiuni propotionale cu turatia . Interactiunea dintre curenti turbionari
cauzati de aceste tensiuni si de campul magnetic permanent, creaza un cuplu de torsiuni proportional cu
turatia:

Tahogeneratorul au curenti turbionari ce se utilizeaza pentru masurarea turatiilor in domenii


cuprinse intre 20 şi 10000 rot/min, ce asigura precizii de 0.5÷1.5%, cu compensarea erorilor de
temperatura si 1.5÷3% in lipsa compensarii.

1.3. Tahometrul auto.

1.3.1. Ce este un tahometru pentru un autovehicul?

Un tahometru este un dispozitiv conectat la arbore cotit motor, ce masura frecventa de


rotatie a acesteia. Cel mai des intalnit, functiile acestui dispozitiv sunt folosite de soferii ce
adepta o conducerea mai rapida. La o transmisie manuala sau la o transmisie automata in
modul manual, este posibil sa „rotiti” motorul la viteza maxima pentru a obtine cea mai buna
dinamica la schimbarea angrenajelor.

1.3.2 Motive pentru care este necesar un tahometru intr-o masina


A) Ajuta la funcționarea motorului cu ardere interna la viteza redusa (pana la 2000 rpm) reduce
semnificativ consumul de combustibil, dar acest lucru va rezulta probleme conexe. Amestecul
de combustibil din camera de ardere este distribuit inegal, si arde slab. Drept urmare - formarea
funinginii pe butelii, bujii și pistoane. La viteze reduse, pompa de ulei creeaza o presiune
insuficientă pentru a lubrifia motorul, din care apare neaunsul de ulei, iar ansamblurile arborelui
cotit se uzeaza rapid.

B) Ajuta la funcționarea continua a motorului la viteze crescute (mai mult de 4000) duce la
consumul excesiv de combustibil si nu numai, dar reduce semnificativ resursele acestuia. In acest
mod, motorul cu ardere interna se supraincalzeste, uleiul isi va pierde proprietatile, iar piesele se
vor degrada rapid.
C) Cum sa determinam indicatorul optim in care putem „roti” motorul? Intrebarea vine cu un
raspuns simplu si direct, se instaleaza un tahometru in mașini, un indicator in intervalul de la 1/3
la 3/4 de rotatii la care motorul furnizeaza putere maxima ce este optim pentru un motor. Acest
interval difera pentru fiecare mașina, in acest mod soferul trebuie ghidat de recomandarile venite
de la producator. Pentru determinarea unei valori, scara tahometrului este impartita in trei zone -
verde, galben si rosu.

fig(4)

Mașinile moderne regleaza creșterea sau scaderea turelor a motorului pentru o calatorie afisand
in schimbarea vitezei pe un ecrad digital, fara a fi prezenate cele trei culori.

1.3.3 De ce este necesar un tahometru?


Prezența dispozitivului nu afecteaza funcționarea vehiculului și a sistemelor sale. Este un
dispozitiv ce permite soferului sa aibe sub control funcționarea motorului.

Mare parte din mașinile moderne au o izolatie excelenta a zgomotului, chiar si sunetul motorului
este slab auzibil. Din cauza ca functionarea constanta a motorului la turatii mari este plina de
defectiuni ale unitatii siacest parametru trebuie monitorizat. O situatie in care dispozitivul va fi util
estein determinarea timpului de pornire a unei trepte de urcare sau de coborare atunci cand
accelerate.

Un tahometru este instalat in tabloul de bord, conceput pentru un motor specific. Acest dispozitiv
poate indica numarul optim de rotații pentru un anumit tip de masina. Funcționarea pe termen lung
a motorului cu ardere interna nu este prea droit, pentru ca fiecare motor are propriile limite de
viteza, tahometrul trebuie, să fie adaptat la parametrii unitații de putere.
1.3.4. Principiul de functionare
Se pornește sistemul de aprindere motor si amestecul aer-combustibil din camera de ardere, ce
conduce tijele grupului de pistoane. Acestea o sa roteasca arborele cotit. Senzorul o sa citeasca indicatorul
de viteza al arborelui cotit, apoi genereaza impulsuri și le va trimite unitatii de control. Ajunse la unitatea
de control semnalul o sa fie activat si deplasat de-a lungul scarii, dand o valoare digitala care este afișata
pe ecranul corespunzator al tabloului de bordului.

CAPITOL 2.

2.0 PROIECTARE
2.1. Proiectarea tahometrului

Tahometrele sunt impartite in trei categorii:


1. Mecanic. Este intalnita la mașinile și motocicletele vechi. Partea principala in acest caz este
cablul ce se conecteaza la arborele cu came sau arborele cotit si celalat capat a cablului este fixat
intr-un mecanism de primire situat în spatele scarii dispozitivului. In timp ce se roteste arborele,
miezul central se transforma in interiorul carcasei. Acest momentul este transmis angrenajelor la
care este conectat sageata ce o pune in miscare. Acest tip de dispozitiv a fost pe motoare cu viteza
mai mica, astfel scala din ele este imparțita in segmente cu o valoare de 250 rpm.

Tahometru mecanic. Fig(5)

2. Electronice. Este considerat cel mai precis, consta intr-un numar mai mare de elemente in
comparatie cu restul. Tahometrul electronic este un senzor care citeste rotatia arborelui pe care
este instalat si genereaza impulsuri care sunt transmise catre:

 Procesor = prelucreaza datele si transmite semnalul;

 Transforma impulsurile electrice in semnale luminoase;

 Afișeaza un indicator pe care șoferul il poate citi si intelege. Rezultatul pote fi afisat sub forma
de numere cat si sub forma scalara;

Cel mai des masinile modern au tahometrul digital si este conectat la o unitate electronica de control.
Pentru a nu lasa dispozitivul sa consume energiea bateriei atunci cand contactul este oprit, acesta se
oprește automat.
Tahometru electronic. Fig(6)

3. Si ultimul tip este cel analog, cel care va fi prezentat in acest proiect.
Acest tip de tahometru e prezentat la masini cu o vechime de peste 20 de ani. Din punct de vedere vizual,
aceasta e similara cu tahometrul mecanic. Diferenta cea mai mare intre un tahometru analog si un
tahometru mecanic este in mecanismul de transmisie a indicatorului de viteza. Astfel de dispozitive
constau din patru noduri:

 Senzor. Se conecteaza la arborele cotit pentru a citi turatia;

 Bobina magnetica. Se afla situate in carcasa contorului. Un sensor A este primit de la un


sensor B, ce se transforma intr-un camp magnetic;

 Sageți. Echipat cu un mic magnet care reactioneaza la puterea campului generat in bobina.
Sageata fiind astfel deviata la nivelul corespunzator;

 Cantare. Diviziunile sunt aceleasi ca in cazul unui analog mecanic, este de 200 sau 100 rpm;

Totusi este un model mai avansat in cida faptului ca este foarte similar cu tahometrul mecanic, dar difera
prin principiul transmiterii valorii cuplului catre actionarea sagetii. Astfel are si o parte electronica ce este
conectat la senzorul de pozitie al arborelui cotit. Exista o bobina magnetica in interiorul tahometrului care
deviaza acul cu cantitatea necesara. Astfel de tahometre au o eroare mare pana la 500 rpm.
(tahometru analog) fig(7)

Modelele acestea de dispozitive pot fi standard și la distanta. In cazul unu, acestea sunt montate in tabloul
de bord de langa vitezometru. In al doilea caz modificarea poate fi instalata in orice loc posibil de pe
tabloul de bord.

2.2. Cum este conectat tahometrul la senzorii auto


Se conecteaza firele la unul dintre urmatorii senzori:

 Senzor arbore cotit. Se fixeaza pozitia manivelelor in cilindrul motorului si se da impuls electric.
Semnalul se indreapta dupa spre bobina magnetica sau catre procesor in functie de caz, impulsul
acolo se transforma intr-o valoare si se afiseaza in cadran. Am sa ma folosesc de senzorul
arborelui cotit in proiectare.
 Senzor la ralanti. Valva este conectata, este responsabila pentru transportul de aer la galeria de
admisie si ocolind supapa de acceleratie. La unele motoare ca cele cu carburator, acest regulator
controleaza transmiterea de combustibil la franarea motorului, acesta inchizand fluxul de benzina.
In funcție de cantitatea de combustibil care este reglata de supapa,rezulta viteza motorului.
 ECU. Tahometrele noii sunt conectate la o unitate de control electronica, ce primeste semnale de
la toti senzorii conectati la motor. Cu cat primeste mai multe date, cu atat masuratorile vor fi mai
precise. In acest caz, indicatorul va fi transmis cu o eroare minima .
2.3 Tahogeneratori TDP 13

2.3.1 Caracteristici:

- Timp de raspuns scazut;

-Tensiune circuit deschis 20 ... 200 mV pe rpm;

-Ax solid ø14-18 mm cu flansa;

-Calitate ridicata a semnalului datorit LongLife brevetat tehnologie;

-Cu rulmenti proprii;

-Nu este necesara o sursa de energie auxiliara.

2.3.2 Date tehnice-proiectare electrica:

- Toleranta la inversare ≤0,1%


- Toleranta la linearitate ≤0,15%

- Coeficient de temperatura ± 0,05% / K (circuit deschis)

-Clasa de izolare B

-Toleranta de calibrare ± 3%

-Test climatic caldura umeda, constanta (IEC 60068-2-3, Ca)

-Tensiune in circuit deschis 20 ... 200 mV pe rpm

-Imunitate la interferente EN 61000-6-2

-Interferente emise EN 61000-6-3

-Aprobari CE, RoHS

TDP 13
-Performanta 40 W (viteză ≥2000 rpm)
-Circuit de armatura timpul constant <0,4 µs

2.3.3. Date tehnice - proiectare mecanica:


-Dimensiune (flansa) ø120 mm, ø165 mm,ø175 mm

-Tip arbore ø14 ... 18 mm arbore solid

- Flansa B5, B5k, B5s, B10 si B10w flansa

-Protectie DIN EN 60529 IP 55

-Viteza de functionare ≤6000 rpm

-Sarcina axiala ≤80 N axială ≤100 N radial

-Materiale Carcasa: oțel Ax: oțel inoxidabil

-Temperatura de funtționare -30 ... + 130 ° C

-Rezistenta IEC 60068-2-6

-Vibratii 10 g, 10-2000 Hz IEC 60068-2-27

-Soc 100 g, 6 ms

-Conexiune terminal cutie TDP 13

TDP 13
-Momentul de inerție al rotorului 0,4 kgcm²

-Greutate aprox. 8,5 kg


- Cuplu 2,5 Ncm

2.3.4 Numarul piesei:

Tensiune in circuit deschis:


15 20 mV pe rpm

17 65 mV pe rpm

6 100 mV pe rpm

3 175 mV pe rpm

2 200 mV pe rpm

2.3.5 Date in functie de tip:

2.3.6 Schema de comutare de inlocuire:


Polaritate pentru directia de rotatie pozitiva:
A1 (1A1*, 2A1*): + A2 (1A2*, 2A2*): - (VDE)
fig(8)

Atribuirea terminalelor:

-Vizualizare A - Terminal de conectare

-Polaritate pentru directia de rotatie pozitiva

fig (9)

Accesorii:

-Perii de carbon

-Accesorii de montare: K 50 Cuplaj de disc cu arc pentru arbore solid ø11 ... 16 mm

K 60 Cuplaj disc arc pentru arbore solid ø11 ... 22 mm


2.3.7 Dimensiunii:

- TDP 13 - Versiune cu flanșă B10

fig(10
)

- TDP 13 - Versiune cu flanșă B5km

fig(11)
Capitolu 3.
Schema bloc:

START LED VERDE


SISTEM ON/OFF
0X1000rmp

DISEL

BENZINA

LED VERDE LED ROSU

0X1000rmp 4X1000rmp

x X

4x1000rmp 6x1000rmp LED VERDE


LED ROSU
0x1000rmp
6x1000rmp
x
X
CITIRE CITIRE 6x1000rmp
SENZOR SENZOR 9x1000rmp

AFISARE AFISARE
CITIRE CITIRE
SENZOR SENZOR

STABIL SCADE
TURATIA
AFISARE AFISARE

STABIL APA DIN MOTOR


ICEPE SA FIARBA.

APARE RISCUL CA
AUTOVEHICULUL
SA I-A FOC.
Pentru a realiza aceasta schema bloc la nivel de asamblare, proiectare si programare o sa ma ajut de
programele: Proteus si Simulide, iar pentru programare Atmel si Dev C++ .

1. Prima schema realizata este un Turometru Open Source.


Componentele montajului:

- ATmega328P
- Un ecran LCD
- Doua condensatoare
- Trei rezistente
- Doua tranzistoare 2N222
- Ground TLE2425

In lipsa unui GND clasic am folosit aceasta componenta U2 TLE2425 pentru a conecta AVCC din
ATmega328P la o iesire OUT si rezistentele R2 si R3 sunt conectate la o intrare IN.

   Timpul de refresh este dat de o functie Delay(),dar acest timp poate fi considerat "timpul de poarta"
sau viteza de refresh a citirilor.
     Stocarea valorilor citite sunt adunate intr-un vector si face media a 5 citiri pentru o precizie mai

ridicata si medierea valorilor date de erorile aleatoare aparute.

Acest desen/schema este formata in mare din 2 blocuri principale. Blocul de conditionare a

semnalului, declansarea fiind realizata pe panta descendenta a impulsului. Al doilea bloc este format

dintr-un ecran LCD si componentele adiacente necesare, present avem un resistor de reset al

impreuna cu potentiometrul de contrast necesar ecranului.

Putem conecta orice senzor pentru citirea impulsurilor.

Am atasat senzorul nostrum TDP13. Pe ecranul LCD trebuia sa apara doua linii pentru afisarea intr-un
format usor de citit si intuitiv a turatiei.

Din pacate nu am reusit sa finalizez conexiunile pana la final, nu am regasit in program un Vcc

pentru a fi conectat la pinul 1 TDP13 si o masa pentru a fi conectata la pinul 5 de la ecranul LCD, o

masa legata la potentiometru RV1 si o masa legata la TDP13.


CODUL:

int led = 13; // pinul 13 de pe placa ATMEGA328P are conectat ecranul LCD
void setup()
 {              
  pinMode(led, OUTPUT);    
}
void loop() // loop este parcursa la o perioada de timp determinata de numarul si valoarea delay-urilor
prezente
{
  digitalWrite(led, HIGH);   // Aprinde ledul HIGH piniului 13)
  delay(1000);               
  digitalWrite(led, LOW);    // Stinge ledul LOW pinului 13)
  delay(1000);
}
2. A doua schema reprezinta un sensor de turatie:

Componentele montajului:

- ATMEGA 32
- Four Segment-67
- ResistorDip-66 size x8
- Doua leduri rosii
- Doua leduri verzi
- Patru resitoare 330 Ohm
- Un package la care s-au adaugat doi pini + / - devenind senzorul npstru TDP13
- Un package la care s-au adaugat doi pini RX / TX devenind portul conectat la PC RS-

232
Cu ajutorul acestei scheme desenata in Simulide o sa incercam sa aprindem ledurile in fuctie de turatia
senzorului astfel sa apara si ecranul led turatia in rpm (rotatii pe minut) a voltajului intr-un anumit
moment.

Primele doua leduri sunt reprezentate motorului pe benzina.

Daca ledul verde este aprins inseamna ca turatia se afla in parametri stabili de functionare 0x1000rpm-
6x1000rpm.

Daca ledul rosu este aprins inseamna ca turatia se afla in conditii de risc a functionarii 6x1000rpm-
9x1000rpm.
Urmatoarele doua leduri sunt reprezentate de motorul disel.

Daca ledul verde este aprins inseamna ca turatia se afla in parametri stabili de functionare 0x1000rpm-
4x1000rpm.

Daca ledul rosu este aprins inseamna ca turatia se afla in conditii de risc a functionarii 4x1000rpm-
6x1000rpm.

Conform senzorului nostrum, este un sensor de turatie mai mica sit imp de raspun scazut. Are o capacitate
maxima de 200 mV.

Dupa ce am introdus in schema codul de asmablare notat mai jos, dam click dreapta apasam pe load
firmware si introducem fisierul nostru salvat cu extensia .hex si dam RUN.
Pe ecran s-a afisat un numar reprezentamt rotatiile pe minut si viand o valoare de mijloc pentru
ambele situatii. Senzorul se afla in parametri astfel incat led-ul verde este aprins, turatiia fiind intre
3x1000rpm-4x1000rpm.
Prin urmare o sa notam:

0x1000rpm- 0V

2x1000rpm-5V

3x1000rpm-10V

4x1000rpm-15V

5x1000rpm-20V

6x1000rpm-25V

7X1000rpm-30V

8x1000rpm-35V

9x1000rpm-40V

COD SURSA:

#include "m32def.inc"
.equ wireport = PORTB
.equ wirepin = PB4
.equ wirectrl = DDRB
.equ wirein = PINB
.def tur=r18
.def tur1=r19
.def tur2=r24
.def digit1=r0
.def digit2=r1
.def digit3=r2
.def digit4=r3
.def mux=r4
.MACRO _1us
nop
nop
nop
nop
nop
nop
nop
nop
.ENDMACRO
.MACRO wwrite_1
sbi wirectrl,wirepin
cbi wireport,wirepin
_1us
_1us
_1us
_1us
_1us
_1us
sbi wireport,wirepin
ldi r16,50
wwrite_1_loop1:
_1us
dec r16
brne wwrite_1_loop1
.ENDMACRO
.MACRO wwrite_0
sbi wirectrl,wirepin
cbi wireport,wirepin
ldi r16,50
wwrite_0_loop1:
_1us
dec r16
brne wwrite_0_loop1
sbi wireport,wirepin
_1us
_1us
_1us
_1us
_1us
_1us
_1us
_1us
_1us
_1us
_1us
.ENDMACRO
jmp reset
jmp reset
jmp reset
jmp reset
jmp reset
jmp reset
jmp reset
jmp citire_tur
jmp reset
jmp reset
jmp refresh
jmp reset
jmp reset
jmp reset
jmp reset
jmp reset
jmp reset
jmp reset
jmp reset
jmp reset
jmp reset
cifre: .DB 0b00111111, 0b00000110
.DB 0b01011011, 0b01001111
.DB 0b01100110, 0b01101101
.DB 0b01111101, 0b00000111
.DB 0b01111111, 0b01101111
reset:
ldi r16,high(RAMEND)
out SPH,r16
ldi r16,low(RAMEND)
out SPL,r16
in r16,SFIOR
ori r16,0b00000100
out SFIOR,r16
ldi r16,0xFF
out DDRC,r16
out DDRD,r16
ldi r16,0x0F
out DDRA,r16
sbi wirectrl,wirepin
sbi wireport,wirepin
cbi PORTD,0
clr digit1
clr digit2
clr digit3
clr digit4
ldi r16,0b00001000
mov mux,r16
main:
cli
ldi r16,0b00001000
out TCCR0,r16
in r16, TIMSK
andi r16,0b11111100
ori r16,0b00000010
out TIMSK, r16
ldi r16,0b00000000
out TCCR1A,r16
ldi r16,0b00001000
out TCCR1B,r16
in r16, TIMSK
andi r16,0b11000011
ori r16,0b00010000
out TIMSK, r16
ldi r16, 0x3D
out OCR1AH,r16
ldi r16, 0x0A
out OCR1AL,r16
in r16,TCCR1B
andi r16,0b11111101
ori r16,0b00000101
out TCCR1B,r16
ldi r16,0x00
out TCNT0,r16
ldi r16, 0x7D
out OCR0,r16
in r16,TCCR0
andi r16,0b11111000
ori r16,0b00000011
out TCCR0,r16
sei
bucla:
rjmp bucla
refresh:
in r20,SREG
out PORTA,mux
ldi r16,0b00001000
cp mux,r16
brne PC+3
mov r17,digit1
rjmp refresh_out
ldi r16,0b00000100
cp mux,r16
brne PC+3
mov r17,digit2
rjmp refresh_out
ldi r16,0b00000010
cp mux,r16
brne PC+3
mov r17,digit3
rjmp refresh_out
mov r17,digit4
refresh_out:
ldi ZH,high(2*cifre)
ldi ZL,low(2*cifre)
ldi tur1,0x00
add ZL,r17
adc ZH,tur1
lpm tur1,Z
ldi r16,0b00000010
cp mux,r16
brne PC+2
ori tur1,0b10000000
out PORTC,tur1
lsr mux
ldi r16,0x00
cp mux,r16
brne PC+3
ldi r16,0b00001000
mov mux,r16
out SREG,r20
reti
citire_tur:
in r20,SREG
call wire_reset
ldi tur,0xCC
call wire_write
ldi tur,0x44
call wire_write
cbi wirectrl,wirepin
tur_wait:
sbis wirein,wirepin
rjmp tur_wait
call wire_reset
ldi tur,0xCC
call wire_write
ldi tur,0xBE
call wire_write
call wire_read
call wire_reset
ldi r17,0x00
lsr tur
brcc PC+2
ldi r17,0x05
mov digit4,r17
ldi r16,0x00
mov digit1,r16
mov digit2,r16
mov digit3,r16
tur_bucla1:
inc digit4
ldi r16,0x0A
cp digit3,r16
brne bucla1_next
clr digit3
inc digit2
ldi r16,0x0A
cp digit2,r16
brne PC+3
clr digit2
inc digit1
bucla1_next:
dec tur
breq PC+2
rjmp tur_bucla1
out SREG,r20
reti
wire_reset:
sbi wirectrl,wirepin
cbi wireport,wirepin
cli
ldi r16,34
ldi tur2,10
wr_loop1:
_1us
dec tur2
brne wr_loop1
ldi tur2,10
dec r16
brne wr_loop1
cbi wirectrl,wirepin
ldi r16,50
wr_loop2:
_1us
dec r16
brne wr_loop2
sbis wirein,wirepin
rjmp PC+3
sbi PORTD,0
rjmp PC+2
cbi PORTD,0
ldi r16,29
ldi tur2,10
wr_loop3:
_1us
dec tur2
brne wr_loop3
ldi tur2,10
dec r16
brne wr_loop3
sei
ret
wire_write:
cli
ldi tur2,0x08
ww_send1:
lsr tur
brcs PC+2
rjmp ww0
wwrite_1
rjmp ww_nextbit
ww0: wwrite_0
ww_nextbit: dec tur2
breq PC+2
rjmp ww_send1
sei
ret
wire_read:
cli
ldi tur2,0x08
wr_get1:
sbi wirectrl,wirepin
cbi wireport,wirepin
_1us
_1us
_1us
_1us
_1us
_1us
_1us
cbi wirectrl,wirepin
_1us
_1us
_1us
_1us
_1us
_1us
_1us
_1us
_1us
sec
sbis wirein,wirepin
clc
ror tur
ldi r16,50
wre_loop1:
_1us
dec r16
brne wre_loop1
dec tur2
breq PC+2
rjmp wr_get1
sei
ret

Bibliografia

- https://curs.upb.ro/pluginfile.php/424855/mod_resource/content/2/microcon
trolere_laborator%204_2020.pdf
- https://curs.upb.ro/pluginfile.php/471341/mod_resource/content/1/microcon
trolere_laborator%206_2020.pdf
- https://curs.upb.ro/pluginfile.php/471341/mod_resource/content/1/microcon
trolere_laborator%206_2020.pdf
- http://iota.ee.tuiasi.ro/~czet/Lucrari%20de
%20laborator/SenzTrad/L8%20TRADTUR.pdf
- http://webbut.unitbv.ro/Carti%20on-line/BSM/BSM/capitol4.pdf
- https://dailydriven.ro/ce-inseamna-cand-turometrul-masinii-ajunge-pe-rosu

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