Proiect microcontrolere referat













Proiect microcontrolere






Prezentare




Aparatul de fata este un ceas de timp real ce se sincronizeaza cu un ceas de mare precizie din Germania. Acesta este prezent intr-o caseta de plastic ce se poate agata de perete sau poate fi asezat in pozitie oblica sustinut de un suport inclus in pachet.

Aparatul afiseaza succesiv ora si data curenta, precum si temperatura mediului ambiant, pe un ecran vizibil de la o distanta de maxim 10 metri.

Ceasul nu necesita reglare, aceasta facandu-se automat, o data pe zi.

Pentru montare necesita desigilarea atenta, inlaturarea protectiei impotriva socurilor si alimentarea la o sursa de 220V de la distanta prevazuta de cablul de alimentare (2,5 metri).

Caseta in care se afla ceasul este impermeabila, putand fi scoasa si pe un perete exterior, dar atentie acesta trebuie ferit de o furtuna sau fenomene puternice ale naturii (producatoul nu raspunde pentru defectiuni provocate in conditiile de mai sus). Este rezistent la socuri de intensitate medie. Poate fi curatat foarte usor cu o carpa usor umeda. Caseta este prinsa cu suruburi cu terminatii in cruce.


Afisaj:

Ora este afis ata in format "ora : minute : secunde";

Data este afisata in format "zi : luna : an";

Temperatura este afisata in format "grade C (Celsius)


Marimea digitilor








Ecuatia pentru calcularea marimii optime a unui digit in functie de unghi si distanta:


H=2*D*tg (A/2)


Unghiul optim este de 20-22 de minute.

Pentru A=22' si D=10m avem: H=5.8cm



Raportul dintre grosimea unui segment si inaltimea unui digit trebuie sa fie de 1/8 pentru caractere luminate pe un fond intunecat. Pentru H=5.8cm rezulta o grosime de 0.725cm.


Raportul dintre distanta dintre doi digiti si inaltimea lor trebuie sa fie de 1/4. Pentru H=5.8cm avem un spatiu de 1.45cm.


Text Box: Port AText Box: Port C

Text Box: Port BText Box: Port D


Comparare intre sincronizari





1. Radio

Transmisunea radio se realizeaza prin modularea undelor electromagnetice cu frecvente mai mici decat cea a luminii vizibile.

Avantaje:

echipament ieftin

usor de instalat

antena nu trebuie neaparat sa fie instalata inafara cladirii

consumul de energie este relativ mic

Dezavantaje:

semnalul poate sa interfereze cu alte dispozitive care folosesc o frecventa similara

influentat de conditiile meteo


2. GPS

Un receiver GPS isi calculeaza pozitia folosind informatii de la patru sau mai multi sateliti. Fiecare satelit transmite ora la care incepe transmisia mesajului si parametrii pozitiei satelitului. Receiver-ul calculeaza distanta in functie durata transmisiunii.

Avantaje:

datorita satelitilor din jurul pamantului semnalul poate fi receptionat in orice parte a lumii

Dezavantaje:

pret ridicat

dificil de instalat

antena trebuie sa se afle sub cerul liber

consum mare de curent



3. Internet

Cu ajutorul unui soft PC-ul se sincronizeaza de la un ceas atomic dupa care transmite ora exacta prin cablu, IrDa, Bluetooth sau Wi-Fi.

Avantaje:

nu este influentat de conditiile meteo sau de alte dispozitive

Dezavantaje:

necesita prezenta unui PC


Concluzie: Pentru construirea acestui ceas s-a ales sincronizarea prin radio datorita pretului redus al unui receiver radio, dar si datorita simplitatii acestuia fata de alte mijloace de sincronizare.


Comparatie intre microcontrolere


PIC12


Avantaje:

modalitate simpla de inscriere a programului ( seriala, necesitata doar 3 fire);

memoria program continuta in aceeasi capsula;

tehnologia CMOS de realizare( deci consum redus);

pretul relativ scazut;

chip de dimensiuni mici;

Dezavantaje:

un numar destul de redus de instructiuni;

un numar insuficient de pini (8 pini);

exista posibilitatea ca microcontrollerul sa nu aiba viteza suficienta pentru aceasta aplicatie;

optenabilitatea (acest microcontroller este primul din familia PIC si nu mai exista pe piata sau e foarte greu de obtinut);


MC14500(Motorola)


Avantaje:

tehnologia CMOS ce implia un consum redus;

capsula mica;

un numar de 16 pini;

memorie incapsulata;

posibilitatea de a fi alimentat de la o baterie;

pret scazut;

Dezavantaje:

fiind primul microcontroler produs de Motorola, a fost eliminat de pe piata de noile MC RISC;

posibilitatea ca viteza microcontrollerului sa fie insuficienta;



ATMEGA16


Avantaje:

este necesara folosirea doar a microcontrollerului, fara alte circuite suplimentare;

liniile I/0 sunt suficiente (32 de linii I/O);

exista capacitate suficienta de memorare: RAM si ROM;

consum redus (fabricat prin tehnologia CMOS);

microcontrolerul are viteza suficienta pentru aceasta aplicatie;

alimentarea poate fi facuta din aplicatie (de la o baterie);

fiabilitatea si stabilitatea;

microcontrolerul se poate obtine usor, el fiind in productia actuala;

suport din partea constructorului ATMEL (documentatie tehnica, software de utilizare);

seriozitatea constructorului demonstrata intr-un numar indelungat de ani si prin rezultatele financiare pozitive;

Dezavantaje:

pretul mai mare decat microcontrolere anterioare, dar cu un raport bun performante/pret;


Facand o comparatie intre aceste trei microcontrollere echipa a decis folosirea pentru acest proiect a microcontrolerului ATMEGA16 datorita caracteristicilor tehnice avansate si a raportului pret/performante bun.


Descrierea microcontrolerului ATMega16



Unitatea aritmetica logica

Cea mai inalta performanta a AVR ALU( Unitatea Aritmetica Logica) este aceea ca lucreaza direct cu cele 32 de registre. In timpul unui singur ciclu de ceas se efectueaza operatii aritmetice intre registre sau intre registre si o constanta, acestea sunt executate imediat.


Porturile

ATmega 16 este un microcontroler care ofera 32 de linii de I/O organizate in patru porturi (PA, PB, PC, PD).

Port-ul A (PA7PA0) serveste drept port de intrari analogice pentru Convertorul A/D si ca port bidirectional I/O de 8 biti. In cazul in care Convertorul A/D nu este folosit, pinii de port pot fi conectati optional la Vcc prin rezistori interni.

Portul B (PB7PB0) este un port bidirectional cu rezistori interni.

Portul C (PC7PC0) este un port I/O de 8 biti bidirectional cu rezistori interni. Daca interfata JTAG(de depanare) este activata, rezistorii pinilor PC5 (TDI), PC3 (TMS) si PC2 (TCK) vor fi activati, chiar daca are loc o resetare.

Portul D(PD7PD0) este un port I/O de 8 biti bidirectional cu rezistori interni conectati optional la VCC. Portul D indeplineste functii speciale. Buffer-ele de iesire ale celor 4 porturi au caracteristici de amplificare.


Registrele

Registrele R26R31 au cateva functiuni adaugate pe langa cele generale. Aceste regitre au 16 biti de adresa pentru accesarea indirecta a datelor. Cele trei registre pentru adresarea indirecta sunt registrele X, Y, Z.

Registrul de stare contine informatii despre ultima operatie aritmetica efectuata. Aceasta informatie poate fi folosita pentru a alterna de la un program la executarea unei alte operatii prioritare. Situatia registrului este

actualizata dupa fiecare executie a unei operatii aritmetice, asa cum se specifica in setul de instuctiuni.


Memoria

Atmega 16 AVR are doua spatii de memorie principala, spatiul pentru Memoria de Date si pentru Memoria de Program.

Atmega 16 contine o memorie flash reprogramabila de 16 Ko pentru programe care suporta cel putin 10000 de cicluri scriere/stergere. Memoria flash de program impreuna cu intreg blocul de extragere a instructiunilor, decodare si executie comunica printr-o magistrala proprie, separata de magistrala de date mentionata mai sus. Acest tip de organizare este conform principiilor unei arhitecturi Harvard si permite controlerului sa execute instructiuni foarte rapid. Memoria flash (On-chip) permite sa fie reprogramata printr-o interfata seriala SPI, de catre un programator de memorie nonvolatila conventional, sau de catre un program de boot On-chip ce ruleaza pe baza AVR. Primele 96 de locatii ale memoriei de date SDRAM se refera la fisierul de registre, si urmatoarele 1024 de locatii sunt dedicate datelor interne SDRAM.. Atmega 16 contine 512 octeti de memorie de date EEPROM. Este organizata ca spatiu separat de date, in care pot fi cititi si scrisi biti individual. EEPROM-ul are o durata de viata de cel putin 10000 de cicluri scriere /stergere.


Numaratoarele

Acest microcontroler contine doua timere (numaratoare) de 8 biti si un timer de 16 biti. Modulul timer pe 8 biti poate fi utilizat pentru realizarea de temporizari, numararea evenimentelor externe sau generarea de forme de unda. Dintre cele mai importante caracteristici ale modulului Timer pe 8 biti se pot mentiona: un prag independent de comparatie, numararea impulsurilor externe, posibilitatea de auto-initializare si de generare facila a semnalelor Pulse With Modulation(PWM).

Modurile principale ale Timer-ului sunt:

-functionare normala ;

-re-initializare la atingerea valorii de prag(CTC);

-semnal PWM rapid;

-semnal PWM corect in faza.


Modulul timer pe 16 biti poate fi utilizat pentru realizarea de temporizari, numararea evenimentelor externe sau generarea de forma de unda. Dintre cele mai importante caracteristici se poate mentiona faptul ca lucreaza cu registre de 16 biti, are doua praguri independente de comparatie, unitate de captura evenimente, exista posibilitatea de auto-initializare si de generare facila a semnalelor Pulse Width Modulation(PWM).

Modurile de functionare principale ale timer-ului pe 16 biti sunt:

-functionare normala;

-re-initializare la atingerea valorii de prag(CTC);

-semnalul PWM rapid;

-semnalul PWM corect in faza ;

-semnalul PWM corect in faza si frecventa.


Oscilatorul intern

Microcontrolerul Atmega16 dispune si de un oscilator intern RC. Oscilatorul intern functioneaza in timp ce restul dispozitivului este oprit. Acest lucru permite un start foarte rapid combinat cu un consum redus de energie. In modul standby extins (Extended Standby Mode), atat oscilatorul principal cat si cel al timer-ul asincron continua sa functioneze. Modul Power-down salveaza continutul registrelor, dar blocheaza oscilatorul, dezactivand toate celelate functii ale chip-ului pana la urmatoarea intrerupere externa sau Reset hardware. In modul Power-save, timer-ul asincron continua sa mearga , permitand user-ului sa mentina o baza de timp in timp ce restul dispozitivului este oprit.


Convertorul Analog/Digital

Modulul de conversie A/D (ADC - Analog to Digital Convertor) permite transformarea semnalelor analogice aplicate pe anumiti pini ai microcontrolerului in valori numerice. Principalele lui caracteristici sunt:

- mod de lucru pe baza de aproximatii succesive ;

- alimentare separata pe pinul AVCC;

- viteza maxima de 15kbps;

- rezolutie de 10 biti;


- 8 canale multiplexate, ADC0ADC7 corespunzatoare pinilor PA0PA7;

- rezultatul conversiei poate fi aliniat la stanga, simplificand calculele cu pretul reducerii rezolutiei la 8 biti;

- poate genera intrerupere la finalizarea conversiei;

- se pot selecta trei tipuri de nivele de referinta;

- se pot selecta mai multe surse pentru initierea unei conversii, incluzand un mod de functionare permanenta.


Descrierea receiver-ului DCF77



Ceasurile DCF77 controlate prin radio primesc timpul oficial al Germaniei de la Psysikalisch technischen Bundensanstalt (PTB) din Braunschewung si il transmit la calculatoare si sisteme prin diverse interfete.

Sincronizarea radio a transmititorului DCF77 ajunge din Mainfliger (50 01 N, 9 00 0) la o acuratetea pe termen lung a calibrarii standard a PTB de 1x10 E-13 pe saptamana sau mai putin de o secunda in 300.000 de ani. Datorita acuratetii sale, doar acest timp este acceptat ca legatura legal in Germania (Bundesgesetzbtlatt 42/1978, pagina 1110).

Aceasta statie transmite in continuu, exceptand scurtele intreruperi datorate defectiunilor tehnice sau intretinerii. Pauzele mai lungi pot aparea intimpul furtunilor cu tunete care pot "ataca" locatia transmitatorului.


Semnale temporale


Exceptand marcatorul secundei 59, purtatorul este modulat de marcatori de secunda, fiecare minut simbolizand ca marcatorul urmator va fi cel al minutului. La inceputul fiecarei secunde, amplitudinea semnalului se reduce la 25% pentru 100ms sau 200ms. Startul descresterii amplitudinii semnalului marcheaza exact inceputul secundei. Marcatorii secundei sunt sincronizati la faza cu semnalul DCF77. In general, lipsa de acuratete a receptorului DCF77 este comparata cu timpul semnalului emis.

Receptia depinde in principiu de limitarea benzii de unda a transmitatorului semnalului temporal si de alte interferente naturale. La o distanta de cateva sute de kilometri se poate atinge o incertitudine a semnalului temporal mai mica de 0.1 ms.


Caracteristici speciale ale receptorului DCF77, receptorul selectiv DCF77 cu un circuit potential fara antena


Un traductor AM/FM in receptor creste considerabil acuratetea atinsa, compativ cu receptoarele IF. Acuratetea care poate fi atinsa este mai buna decat ±2ms.

Imbatranirea componentelor, fluctuatia de temperatura si puterea campului sunt compensate in metoda de analiza, de un control intern foarte bun ce imbunatateste caracteristicile functionarii in cazul in care transmitatorul se inchide sau sunt probleme de receptie.

Toate valorile de control sunt stocate intr-o memorie sigura. Un ceas de sustinere integrat, suplimentat de un condensator cu folie aurita, sustine sistemul in cazul caderii de tensiune.

Intretinerea este complet gratuita.

Urmatoarele informatii temporale sunt disponibile pentru client:

CEST - Ora de vara din Europa Centrala cu schimbarea si corectia salturilor de secunde sporadic inserate.

CET - Ora din Europa Centrala cu schimbarea la ora de vara si corectie a salturilor de secunda sporadic inserate.

UTC - Coordonarea Timpului Universal (timpul pe glob, inainte GMT) cu corectie a salturilor de secunde inserate sporadic.

Radioemitatorul nostru DCF77 are o raza de functionare de aproximativ 2000 km distanta fata de transmitatorul din Frankfurt (Main). Ceasurile de referinta opereaza si in Islanda, Turcia, Maroc si Moscova.


Senzorul de temperatura DS1820




DS1820 este un circuit integrat produs de firma Dallas Semiconductor cu functionare specializata pentru masurarea temperaturilor mediului ambiant sau a suprafetei cu care se afla in contact. Dintre caracteristicile acestui circuit se pot mentiona:

este disponibil si in capsula de mici dimensiuni tip TO92 cu mumai 3 pini;

interfata de comunicatie se bazeaza pe un protocol "1-Wire" care necesita o conexiune de date cu un singur fir, in afara de masa, la care se pot conecta simultan mai multe dispozitive;

poate fi telealimentat prin conexiunile de date;

gama de masurare cuprinsa intre -55sC si +125sC cu pas la 0,5sC;

poate memora intr-o memorie nevolatila valori de temperatura la depasirea carora va genera automat stare de alarma.


Modul de functionare

Conversia temperaturii se realizeaza dupa un mecanism hardware proprietar imediat dupa ce se primeste o comanda de initiere a acesteia. La finalizarea conversiei, care dureaza aproximativ 200ms, rezultatul va fi reprezentat in forma binara pe un numar total de 16 biti.

Primul octet al rezultatului indica semnul conversiei. Astfel, valoarea FFh semnifica o temperatura negativa care va fi reprezentata in cel de-al doilea octet in complement fata de doi. Indiferent de semnul temperaturii, doar bitii 17 din octetul cel mai putin reprezinta valoare efectiva a conversiei, in timp ce bitul 0 este indicator pentru jumatate de grad.


Protocolul de comunicatie

Comunicatia intre DS1820 si alte dispozitive este de tip serial si necesita conexiune bidirectionala pe care se pot conecta mai multe echipamente. Dintre acestea, unul va avea rolul de master si toate celelalte vor fi slave. Dispozitivul master este cel care initiaza comunicatia iar dispozitivele slave raspund la comenzile primite, fiind identificate prin intermediul unei adrese unice astfel ca la un moment dat comunicatia se desfasoara numai intre un master si un singur slave, cel care a fost adresat.

Din punct de vedere hardware, protocolul necesita o rezistenta de pull-up pe linia de date si respectarea stricta a unor secvente de generare a urmatoarelor tipuri de semnale, privite din punctul de vedere al dispozitivului master:

puls de reset la care dispozitivul slave raspunde prin aducerea liniei in 0 logic;

bit 0 logic;

bit 1 logic;

citire bit de la slave.


Display-ul electronic





Display-ul este format din sase digiti de cate sapte segmente fiecare, segmente construite cu led-uri de 3mm de culoare rosie, ce suporta in regim normal o tensiune de 2,1V si un curent de 20mA, iar in regim fortat un curent maxim de 30mA. Un led ofera o luminozitate de 3000mcd.

Un segment este format din patru led-uri, fiecare inseriat cu cate o rezistenta de 25 Ohmi. Acestea sunt legate in paralel la o distanta de 10mm.

Fiecare segment este legat la colectorul unui tranzistor bipolar pnp de silicon-BD206, pentru a putea fi selectate de catre microcontroler.

La baza tranzistorului este inseriata o rezistenta da 4Ohmi pentru echilibrarea impulsului dat de microcontroler prin pin ul respectiv.

Digitii 2 si 4 au in plus un doua puncte formate fiecare din cate un led, pentru delimitarea orelor, minutelor si secundelor, respectiv a zilei, lunii si anului.

Digitii sunt legati in paralel la colectorul unui tranzistor bipolar npn-SWW 1156-223. Prin intermediul acestui tranzistor ce are inseriata la baza o rezistenta de 7,5 Ohmi, microcontrolerul este capabil sa selecteze cate un digit.

Digitii sunt selectati prin intermediul a sase pini ai portului B, iar segmentele sunt selectate prin intermediul intregului port C (8 pini).

Digitii si segmentele sunt selectate succesiv dar microcontrolerul lucreaza la o viteza mare si se foloseste de unitatile sale de intarziere (timere) astfel incat ochiul uman nu sesizeaza acest lucru si percepe o imagine statica a intregului display.

Display-ul este acoperit cu un ecran de plastic transparent ce il fereste de praf si umiditate.


Transformatorul de retea







Acest circuit are ca scop transformarea tensiunii de alimentare de la priza de curent continuu de 220V/240V in tensiune alternativa de 5V necesara alimentarii circuitului electronic al ceasului.

Bobina din interiorul transformatorului are rolul de a converti tensiunea de la priza in tensiune alternativa de 9V, dupa care se face o limitare in amplitudine a tensiunii cu ajutorul puntii cu diode (redresare), urmand ca stabilitatea sa fie oferita de cele doua condensatoare polarizate.

Transformatoarele de acest tip sunt intalnite la sonerii, televizoare sau alte aparate electronice care nu suporta o diferenta de potential mare, precum si multe alte aparate de uz casnic, jucarii, console de jocuri, DVD play-ere, video play-ere s.a.m.d.

Este necesar ca spirele bobinelor sa nu prezinte pierderi de tensiune ce pot afecta intreg circuitul.

Transformatorul este inchis intr-o carcasa de plastic cu iesire pentru prizele pe stil european, iar la iesirea acestuia un fir de 1m face alimentarea circuitului electronic la tensiunea de 5V.


Cablajul imprimat













Programul sursa



.include 'm16def.inc'


.def digit1 = r1

.def digit2 = r2

.def digit3 = r3

.def digit4 = r4

.def digit5 = r5

.def digit6 = r6

.def select = r23


.def k1=r24


.def an=r25

.def luna=r26

.def zi=r27

.def ora=r28

.def min=r29

.def scnd=r30

.def temp=r31

.macro us

nop

nop

nop

nop

nop

nop

nop

nop

.endmacro


.macro scrie1

sbi ddrb,pb6

cbi portb,pb6

us

us

us

us

us

us

sbi portb,pb6

ldi r16,50

bucla_scrie1:

us

dec r16

brne bucla_scrie1

.endmacro


.macro scrie0

sbi ddrb,pb6

cbi portb,pb6

ldi r16,50

bucla_scrie0:

1us

dec r16

brne bucla_scrie0

sbi portb,pb6

us

us

us

us

us

us

us

us

us

us



us

.endmacro


jmp reset

jmp reset

jmp reset

jmp reset

jmp reset

jmp reset

jmp prag1sec

jmp reset

jmp reset

jmp reset

jmp reset

jmp reset

jmp reset

jmp reset

jmp reset

jmp reset

jmp reset

jmp reset

jmp reset

jmp reset

jmp reset


simbol: .DB 0b00111111, 0b00000110 //0, 1

.DB 0b01011011, 0b01001111 //2, 3

.DB 0b11100110, 0b01101101 //4, 5

.DB 0b01111101, 0b00000111 //6, 7

.DB 0b01111111, 0b01101111 //8, 9

.DB 0b01100011, 0b00111001 //grad, C


reset:

ldi r16, high(ramend)

out sph,r16

ldi r16, low(ramend)

out spl,r16

ldi r16, 0xff    //initializare porturi//

out ddrc,r16

ldi r16, 0b01111111

out ddrb,r16


main:


cli

ldi r16,0

out tccr1a,r16

ldi r16, 0x08

out tccr1b,r16

in r16,timsk

andi r16,0b11000011

ori r16,0b00010000

out timsk,r16

ldi r16,0x7a

out ocr1ah,r16

ldi r16,0x12

out ocr1al,r16 //31250/(8MHz/256)=1s


ldi r16,0

out tccr0,r16

in r16,timsk

andi r16,0x01

out timsk,r16

in r16,tccr0

andi r16,0b11111101

ori r16,0b00000101

out tccr0, r16

sei

bucla:

rjmp bucla


prag1sec:


sbi ddrc,pb6

sbi portc,pb6

clr digit1

clr digit2

clr digit3

clr digit4

clr digit5

clr digit6

ldi r16,0b00001000

inceput:

cli

ldi r16,0b00001000 ;setare timer modul ctc cu prag

out tccr0,r16

in r16,timsk

andi r16,0b11111100

ori r16,0b00000010

out timsk, r16


ldi r16,0b00000010 ;setare timer 16b modul ctc

out tccr1a,r16

ldi r16,0b00001000



citire_temp:


in r20,sreg

call wire_reset

ldi temp,0xCC

call scriere_senzor ;trimite temp la senzor

ldi temp,044

call scriere_senzor

cbi ddrb,pb6


temp_wait:

sbis pinb,pb6

rjmp temp_wait

call wire_reset

ldi temp,0xCC

call scriere_senzor

ldi temp,0xbe   ; citire scratchpad

call scriere_senzor

call citire_senzor

call wire_reset




wire_reset:

sbi ddrb,pb6

cbi portb,pb6

cli

ldi r16,34

ldi r24,10

bucla_temp1:

us

dec r24

brne bucla_temp1

ldi r24,10

dec r16

brne bucla_temp1

cbi ddrb,pb6

ldi r16,50


bucla_temp2:

us

dec r16

brne bucla_temp2


ldi r16,29

ldi r24,10


bucla_temp3:

us

dec r24

brne bucla_temp3

ldi r24,10

dec r16

brne bucla_temp3


sei ret


scriere_senzor:

cli

ldi r24,0x08

trimite1:

lsr r24

brcs pc+2

rjmp et1

//macro


//sf macro

rjmp et2

et1:

//macro2


//sf macro2

et2: dec r24

breq pc+2

rjmp trimite1

sei ret


citire_senzor:

cli

ldi r24,0x88

et3:

sbi ddrb,pb6

cbi portb,pb6

us

us

us

us

us

us

us

cbi ddrb,pb6

us

us

us

us

us

us

us

us

us

sec

sbis pinb,pb6

clc

ror temp

ldi r16,50

bucla_citire_senzor:

us

dec r16

brne bucla_citire_senzor

dec r24

breq pc+2

rjmp et3

sei

ret


////Se verifica daca trebuie facuta sincronizarea


cpi ora,5

brne incrementare

cpi min,37

brne incrementare

cpi scnd,8

brne incrementare


///////////////////////////////////INCREMENTARE


incrementare:

cpi scnd,59 // verificare daca este secunda 59

breq pc+2  

inc scnd           // daca NU se incrementeaza secunda

rjmp ver_afisare

clr scnd           // daca DA secunda devine 0


cpi min,59 // verificare daca este minutul 59

breq pc+2       

inc min                        // daca NU se incrementeaza minutul

rjmp ver_afisare

clr min                        // daca DA minutul devine 0


cpi ora,23 // verificare daca este ora 23

breq pc+2  

inc ora             // daca NU se incrementeaza ora

rjmp ver_afisare

clr ora             // daca DA ora devine 0


cpi luna,4                    // se verifica cate zile are luna curenta

breq zile_30

cpi luna,6

breq zile_30

cpi luna,9

breq zile_30

cpi luna,11

breq zile_30

cpi luna,2

breq februarie

breq zile_31


zile_30:

cpi zi,30

breq pc+2

inc zi

rjmp ver_afisare

rjmp verificare_luna


zile_31:

cpi zi,31

breq pc+2

inc zi

rjmp ver_afisare

rjmp verificare_luna


februarie:                               

ldi r17,28

ldi r18,4

clr r16

bucla_feb:                               // verificare an bisect

cp an,r16

in r0,SREG

sbrc r0,7

ldi r17,29

add r16,r18

cpi r16,100

brne bucla_feb

cp zi,r17

breq pc+2

inc zi

rjmp ver_afisare


verificare_luna:

ldi zi,1                        

cpi luna,12                              // se verifica daca este luna dec

breq pc+2       

inc luna // daca NU se incrementeaza luna

rjmp ver_afisare                    

ldi luna,1                                 // dca DA luna devine 1

inc an    // si se incrementeaza anul



////////////////////////////////SELECTARE AFISARE


ver_afisare:

cpi k1,7

brlt copiere_ora

cpi k1,12

brlt copiere_data

cpi k1,15

brlt copiere_temp


////////////////////////////////////COPIERE ORA


copiere_ora:

mov r16,ora

clr r17

scadere_h:

cpi r16,10

brlt pc+4

subi r16,10

inc r17

rjmp scadere_h

mov digit1, r17

mov digit2, r16


mov r16,min

clr r17

scadere_m:

cpi r16,10

brlt pc+4

subi r16,10

inc r17

rjmp scadere_m

mov digit3, r17

mov digit4, r16


mov r16,scnd

clr r17

scadere_s:

cpi r16,10

brlt pc+4

subi r16,10

inc r17

rjmp scadere_s

mov digit5, r17

mov digit6, r16


ldi r16,0b10000000

and digit2,r16             // se aprind cele doua seturi de cate doua puncte

and digit4,r16


////////////////////////////////////COPIERE DATA


copiere_data:


mov r16,zi

clr r17

scadere_z:

cpi r16,10

brlt pc+4

subi r16,10

inc r17

rjmp scadere_z

mov digit1, r17

mov digit2, r16


mov r16,luna

clr r17

scadere_l:

cpi r16,10

brlt pc+4

subi r16,10

inc r17

rjmp scadere_l

mov digit3, r17

mov digit4, r16


mov r16,an

clr r17

scadere_a:

cpi r16,10

brlt pc+4

subi r16,10

inc r17

rjmp scadere_a

mov digit5, r17

mov digit6, r16


ldi r16,0b10000000

and digit2,r16             // se aprind cele doua seturi de cate doua puncte

and digit4,r16


///////////////////////////////COPIERE TEMPERATURA


copiere_temp:


ror temp

scadere_t:

cpi r16,10

brlt pc+4

subi r16,10

inc r17

rjmp scadere_t

mov digit3,r17

mov digit4,r16

ldi r16,10

mov digit5,r16

ldi r16,11

mov digit6,r16


/////////////////////////////////////AFISARE



ldi r19,15


afisare:

ldi r18,5

repetare:

in r20,sreg

out portb,select

cpi select,0b00100000

brne pc+3

mov r17,digit1

rjmp selectare


cpi select,0b00010000

brne pc+3

mov r17,digit2

rjmp selectare


cpi select,0b00001000

brne pc+3

mov r17,digit3

rjmp selectare


cpi select,0b00000100

brne pc+3

mov r17,digit4

rjmp selectare


cpi select,0b00000010

brne pc+3

mov r17,digit5

rjmp selectare


mov r17,digit6


selectare:

ldi zh,high(2*simbol)

ldi zl,low(2*simbol)

ldi r19,0

add zl,r17

adc zh,r19

lpm r19,z

out portc,r19

ror select

dec r18

brne repetare


dec r19

brne afisare


reti







Bibliografie



8. https://www.alldatasheet.com componente electronice

9. www.vitacom.ro leduri

10. www.discovercircuits.com transformator alimentare

11. www.giangrandi.ch schema dcf77

12. www.dcf77.com dcf77

13. www.atmel.com Uc Atmega16

14. https://www.maxim-ic.com



DCF77 Information


How the DCF77-receiver works


D = german; C = long wave signal; F = frankfurt; 77 = frequency


The DCF77 radio controlled clocks receive the official time of the Federal Republic of Germany from Physikalisch-Technischen Bundesanstalt (PTB) in Braunschweig and transmit it to computers and systems via various interfaces. The radio synchronisation of the DCF77 transmitter in Mainflingen (50 01 N, 9 00 0) reaches a longterm accuracy of the PTB-calibration standard of 1 x 10 E-13 per week or less than 1 second in 300,000 years. Due to its high accuracy only this time is accepted as legally binding in the Federal Republic of Germany. (Bundesgesetzblatt 42/1978, page 1110).

This station transmits continuously, except for short interruptions due to technical faults or maintenance. Longer breaks may be experienced during thunderstorms attaching the location of the transmitter.

Time Signals


Except of the second marker 59, the carrier is modulated by second markers each minute signifying that the next marker will be the minute one. At the beginning of each second the signal amplitude is reduced to 25% for 100 ms or 200ms. The start of the decrease of the signal amplitude marks the exact beginning of the second. The second markers are phase- synchronous with the DCF77-signal. In general: the inaccuracy of the received DCF77 timesignal is large compared to the emitted time signal.


The reception depends largely on the limited wave band of the time signal transmitter and other natural interferences. At a distance of some 100 kilometres, a time signal uncertainty of less than 0.1 ms is achievable.


Special features of the DCF77-receiver

selective DCF77-receiver with potential-free antenna circuit


An AM/FM transducer in the receiver increases the achievable accuracy considerably compared to the common straight or IF-receivers.

Achievable accuracy better than ± 2 msec.


Aging of the components, fluctuation of temperature and field strength are compensated by an internal crystal control in our analyzing method, which improves the freerunning characteristics in case of transmitter shutdowns or reception failures.

Frequency drift at freerunning max. ± 2 ppm


All control values are stored in a fail-safe memory. A integrated backup clock, supplied by a gold foil capacitor, bridges the system time in case of voltage failures.

completely maintenance free


The following time information are available to the user:

CEST = Central European Summertime with automatic changeover and correction of the sporadically inserted leap seconds

CET = Central European Time without changeover to summertime and with correction of the sporadically inserted leap seconds

UTC = Universal Time Coordinated (world-time, previously GMT ) with correction of the sporadically inserted leap seconds


Our DCF77-radio receiver has a working radius of about 2,000 km from the transmitter Frankfurt (Main). Reference clocks operate e.g. in Iceland, Turkey, Marocco and Moscow.



https://www.hopf-time.com





Product Specification




LED 3mm red 3000mcd - 10 pcs.Technical Data:

Case: 3mm waterclear

Viewing Angle: 20°

Power: 2,1V

Current: 20mA typ., 30mA max.

Wave Length: 620nm (red)

Maximum Intensity / Brightness: 3000mcd 



Power  Recommended Resistors

5V 150 Ohm

9V 470 Ohm

12V     560 Ohm

13,8 V (car)    620 Ohm





The DCF77 time signal transmitter



The DCF77 is a long wave transmitter situated in Mainflingen near Frankfurt am Mein (Germany, 50.02° North, 9.00° West) that transmits time signals on 77.5 kHz with a power of 50 kW and can be received in a radius of about 15002500 km (about the central Europe as shown in the picture below). This signal (and its carrier) is generated from a cesium-clock situated in Braunschweig (Germany) with a precision better than 1 second over 300'000 years.



The transmitted time information is the CET (Central European Time) and DST (Daylight Savings) is also added in summer.


The frequency of the signal is in the long wave band: this ensures that reflections on the ionosphere can be neglected and that the signal arrives to all receivers by using a unique path: the surface wave. The reception is possible 24 hours a day.











Copyright © Contact | Trimite referat