Sunteți pe pagina 1din 21

PROIECT “AUTOMAT PT CEAS CU RADIO PROGRAMABIL”

1.CUPRINS

 SPECIFICAŢIE PROIECT

 DESCRIERE SCHEMA BLOCK CU COMPONENTE

 PROIECTARE SI IMPLEMENTARE

- DESCRIERE SCHEMA DE DETALIU


- PROIECTARE COMPONENTE
- CODUL COMENTAT PT COPONENTE
- PROIECTARE ANSAMBLU
- CODUL COMENTAT PT ANSAMBLU

 LISTA COMPONENTELE UTILIZATE

 SEMNIFICATIA NOTATIILOR I/O SI A SEMNALELOR INTERNE

 JUSTIFICAREA SOLUŢIEI ALESE

 UTILIZARE SI REZULTATE

- RESURSE NECESARE

- DESCRIEREA UTILIZARII

- REZULTATE OBTINUTE IN SIMULATOR

 POSIBILITĂŢI DE DEZVOLTARE ULTERIOARĂ

 BIBLIOGRAFIE
2.SPECIFICAŢIE PROIECT

Automat ceas programabil

Cerinta proiectului este urmatoarea:

Sa se proiecteze un automat pentru un ceas cu


radio,programabil.Ceasul poate fi resetat,fixat la ora
dorita,pornit,oprit.Ceasul poate fi programat sa porneasca
si sa opreasca o sonerie sau sa porneasca si sa opreasca
radioul.
Proiectul simulează un CEAS PROGRAMABIL cu
ALARMA si RADIO care execută următoarele comenzi:
 PORNIRE
 OPRIRE,
 RESETARE,
 SETARE ORA CEAS,
 SETARE ORA PORNIRE/OPRIRE PENTRU
ALARMA/RADIO.
START
3.SCHEMA BLOCK
H=0 M=0
H_A_ON=0 M_A_ON=0

DA H_A_OFF=0 M_A_OFF=0

EN H_R_ON=0 M_R_ON=0
H_R_OFF=0 M_R_OFF=0
4.Schema de detaliu
Proiectul simulează un CEAS PROGRAMABIL cu ALARMA si RADIO care
execută următoarele comenzi:PORNIRE, OPRIRE,RESETARE, SETARE ORA
CEAS, SETARE ORA PORNIRE/OPRIRE PENTRU ALARMA/RADIO.

5. PROIECTARE COMPONENTE, CODUL


COMENTAT PT COMPONENTE
1.NUMARATOR

Acest numarator se ocupa atat de incrementarea orei cat si a minutelor.Acestea sunt


reprezentate ca niste siruri de 6 biti(deoarece ambele sunt numere intre 0 si 63).Functia LOAD
asigura setarea orei si minutelor de catre utilizator.Prin apasarea butonului LOAD ,intrarile
H_C_IN si M_C_IN sunt preluate de catre semnalele interne H si M. Numaratorul functioneaza
cu un semnal de tact cu PERIOADA DE 1 MINUT.Asta inseamna ca de fiecare data cand bate
ceasul a mai trecut inca un minut,deci trebuie actualizate minutele si eventual ora..Prima data
verificam daca M=59. In acest caz punem M pe 00 si mergem mai departe sa setam ora.Daca
H=23 insemna ca atunci ora va lua valoarea 00, iar in caz contrar va creste cu 1.Daca M≠59 va
avea loc operatia M=M+1. Prin resetare ,numaratorul este setat pe ora 00:00.Numaratorul pune
pe iesiri ora si minutele din prezent,avand rol de ceas.
2.DECODIFICATOR

Deco
dificatorul are rolul de a incarca in registere ora de oprire/pornire pentru

radio/alarma, sau de a seta ora numaratorului. Inrarea MODE are rol de selectie si
ofera 6 variante:

 Pentru M=001 se va activa iesirea L_COUNTER care va trimite un semnal


pe intarea LOAD a numaratorului.
 Pentru M=010 ,iesirea L_ON_RADIO va trimite un semnal de ‘1’pe intrarea
LOAD a primului regsitru, care va memora ora la care se va porni radioul.
 Pentru M=011 ,iesirea L_OFF_RADIO va trimite un semnal de ‘1’pe
intrarea LOAD a celui de al doilea regsitru , care va memora ora la care se
va opri radioul.
 Pentru M=100 , are loc memorarea orei de pornire a alarmei
 Pentru M=101 are loc memorarea orei de oprire a alarmei .
 Pentru restul valorilor pe 3 biti care se mai pot reprezenta (000,110,111)toate
iesirile se vor seta pe 0
3.REGISTRU

Acest registru de memorare are capacitatea de a retine doua valori pe 6 biti,una


pentru ora si una pentru minute.Daca il resetam, valorile memorate vor fi
0 .Incarcarea se face cu ajutorul intrarii LOAD care este legata de decodificator.
4. COMPARATOR

Acest comparator verifica daca ora primita prin semnalele de intrare H1 si M1


este egala cu cea primita prin semnalele H2 si M2.

Comparatorul va primi prin intrarile H1 si M1 ,iesirile de la registrul


correspondent.Iar intrarile H2 si M2 vin de la numarator. Acesta din urma are ca
iesiri ora din prezent.

Astfel, de exemplu, primul comparator va compara ora actuala cu ora la care


se porneste radioul. Daca acestea coincide va active iesirea EGAL care va trimite
radioului semnalul de pornire .Daca acesta se afla in starea de RESET va pune pe
iesire 0.
5.RADIO

Radioul este pus in functiune( EN=1) atunci cand este incarcata in registru ora
pentru pornire pt acesta(cu ajutorul semnalului S2)pentru evitarea situatiei in care
exista ora de oprire,dar nu exista ora de pornire(sau a ramas 00:00 in urma unui
reset).

Radioul porneste propriu-zis doar atunci cand ora de pornire este egala cu ora
actuala.

In cazul in care EN=0 starea sa de pe iesire va fi ‘-‘..Daca EN=1 exista


posibilitatea ca utilizatorul sa fi resetat ceasul, caz in care starea radioului va
devein ‘U’. In cazul in care ON-RADIO=1 si OFF_RADIO=1 deodata inseamna
ca utlizatorul a setat aceeasi ora si minut atat pentru pornirea radioului cat si pentru
oprire( caz in care nu se intamplanimic) sau a aparut o defectiune .In acest caz
starea radioului este ‘X’. Daca radioul este in functiune(EN=1) si
pornit(ON_RADIO=1) atunci starea lui este ‘1’ iar daca (OFF_RADIO=1) atunci
starea este’0’.
6.ALARMA

Alarma este pusa in functiune( EN=1) atunci cand este incarcata in registru ora
pentru pornire pt acesta(cu ajutorul semnalului S4)pentru evitarea situatiei in care
exista ora de oprire,dar nu exista ora de pornire(sau a ramas 00:00 in urma unui
reset).Alarma porneste propriu-zis doar atunci cand ora de pornire este egala cu ora
actuala.

In cazul in care EN=0 starea sa de pe iesire va fi ‘-‘..Daca EN=1 exista


posibilitatea ca utilizatorul sa fi resetat ceasul, caz in care starea radioului va
devein ‘U’. In cazul in care ON-ALARM=1 si OFF_ALARM=1 deodata
inseamna ca utlizatorul a setat aceeasi ora si minut atat pentru pornirea radioului
cat si pentru oprire( caz in care nu se intampla nimic) sau a aparut o defectiune .In
acest caz starea radioului este ‘X’. Daca alarma este in functiune(EN=1) si
ornit(ON_ALARM=1) atunci starea lui este ‘1’ iar daca (OFF_ALARM=1) atunci
starea este’0’.
6.PROIECTARE ANSAMBLU, CODUL
COMENTAT PT ANSAMBLU

In codul de ansamblu ,are loc declararea componentelor folosite,declararea


semnalelor interne si legarea componentelor intre ele cu instructiunea port map.
7.LISTA COMPONENTE UTILIZATE
 1Numărătorpentruorasi minute
 1 Decodificator
 4 Registre
 4 Comparatoare
 1 Radio
 1 Alarma

8.SPECIFICAŢIILE NOTAŢIILOR I/O SI A


SEMNALELEOR INTERNE
INTRARI:
 R=RESET
 E=ENABLE
 CLK=SEMNAL DE TACT CU PERIOADA DE 1 MINUT
 M= COMANDA DE SELCTIE PENTRU SETARE ORA NUMARATOR
SAU PENTRU INCARCARE IN REGISTU ORA CORESPUNZATOARE
PORNIRII/OPRIRII ALARMEI/RADIOULUI
 M=001=> SE SETEAZA ORA NUMARATORULUI
 M=010=> SE INCARCA ORA DE PORNIRE A RADIOULUI IN
REGISTRUL ON_RADIO
 M=011=> SE INCARCA ORA DE OPRIRE A RADIOULUI IN
REGISTRUL OFF_RADIO
 M=100=> SE INCARCA ORA DE PORNIRE A ALARMEI IN
REGISTRUL ON_ALARM
 M=101=> SE INCARCA ORA DE OPRIRE A ALARMEI IN
REGISTRUL OFF_ALARM
 M_C_IN =MINUTUL LA CARE SE SETEAZA
NUMARATORUL(CEASUL)
 H_C_IN= ORA LA CARE SE SETEAZA NUMARATORUL(CEASUL)
 M_A_ON =MINUTUL LA CARE SE PORNESTE ALARMA
 H_A_ON= ORA LA CARE SE SE PORNESTE ALARMA
 M_A_OFF =MINUTUL LA CARE SE OPRESTE ALARMA
 H_A_OFF= ORA LA CARE SE SE OPRESTE ALARMA
 M_R_ON =MINUTUL LA CARE SE PORNESTE RADIO
 H_R_ON= ORA LA CARE SE SE PORNESTE RADIO
 M_R_OFF =MINUTUL LA CARE SE OPRESTE RADIO
 H_R_OFF= ORA LA CARE SE SE OPRESTE RADIO

9.SEMNALE INTERNE :

S1->LEAGA IESIREA L_COUNTER A DECODIF CU INTRAREA LOAD A


NUMARATORULUI
S2->LEAGA IESIREA L_ON_RADIO A DECODIF CU INTRAREA LOAD A
REGISTRULUI ON_RADIO SI CU INTRAREA ENABLE A RADIOULUI
S3->LEAGA IESIREA L_OFF_RADIO CU INTRAREA LOAD A
REGISTRULUI OFF_RADIO
S4-> LEAGA IESIREA L_ON ALARM CU INTRAREA LOAD A
REGISTRULUI ON_ALARM
S5-> LEAGA IESIREA L_OFF_ALARM CU INTRAREA LOAD A
REGISTRULUI OFF_ALARM

K1-> LEAGA IESIREA H_OUT A REGISTRULUI ON_RADIO CU


INTRAREA H1 A COMPARATORULUI ON_RADIO
K2-> LEAGA IESIREA M_OUT A REGISTRULUI ON_RADIO CU
INTRAREA M1 A COMPARATORULUI ON_RADIO
K3-> LEAGA IESIREA H_OUT A REGISTRULUI OFF_RADIO CU
INTRAREA H1 A COMPARATORULUI OFF_RADIO
K4-> LEAGA IESIREA M_OUT A REGISTRULUI OFF_RADIO CU
INTRAREA M1 A COMPARATORULUI OFF_RADIO
K5-> LEAGA IESIREA H_OUT A REGISTRULUI ON_ALARM CU
INTRAREA H1 A COMPARATORULUI ON_ALARM
K6-> LEAGA IESIREA M_OUT A REGISTRULUI ON_ALARM CU
INTRAREA M1 A COMPARATORULUI ON_ALARM
K7-> LEAGA IESIREA H_OUT A REGISTRULUI OFF_ALARM CU
INTRAREA H1 A COMPARATORULUI OFF_ALARM
K8-> LEAGA IESIREA M_OUT A REGISTRULUI OFF_ALARM CU
INTRAREA M1 A COMPARATORULUI OFF_ALARM

Q1-> LEAGA IESIREA EGAL A COMPARAT ON_RADIO CU INTRAREA


ON_RADIO A RADIOULUI
Q2-> LEAGA IESIREA EGAL A COMPARAT OFF_RADIO CU INTRAREA
OFF_RADIO A RADIOULUI
Q3-> LEAGA IESIREA EGAL A COMPARAT ON_ALARM CU INTRAREA
OFF_ALARM A ALARMEI
Q4-> LEAGA IESIREA EGAL A COMPARAT OFF_ALARM CU INTRAREA
OFF_ALARM A ALARMEI

HOURSS SEMNALE INTERMEDIARE PT


SEMNALELE DE IESIRE
MINUTES SI HOURS.ACESTEA
LEGA IESIRILE H_OUT SI
M_OUT LA NUMARATOR
CU INTRARILE H2 SI M2 DE LA
FIECARE COMPARATOR.ELE
MINUTESS REPREZINTA DE FAPT ORA
ACTUALA.

IESIRI :
HOURS ORA ACTUALA
MINUTES

RADIO_STATE= STAREA IN CARE SE AFLA RADIOUL(0=OPRIT


1=PORNIT)
ALARM_STATE= STAREA IN CARE SE AFLA ALARMA(0=OPRIT
1=PORNIT)
10.JUSTIFICAREA SOLUŢIEI ALESE

Am ales această metoda deoarece am considerat-o cel mai uşor de


implementat.Cu ajutorul comenzii de selectie M , am micsorat numarul de intari.
Proiectul se poate explica oricarui utilizator.Ceasul a fost realizat astefl incat
comenzile să fie cât se poate de clare, iar simularea să fie uşor de urmărit.

11.UTILIZARE SI REZULTATE
•RESURSELE NECESARE : Active HDL
•DESCRIEREA UTILIZARII:
•Prima data punem E (ENABLE ) pe 1

•Pentru functionarea normal ceasului ,este necesar sa setam ora actuala .Pentru a
face acest lucru introducem in H_C_IN, M_C_IN ora si minutul la care vrem sa
setam ceasul si alegem optiunea M=”001”.Un lucru de care trebuie sa tinem cont
este faptul ca dupa ce am facut setarea trebuie sa setam M inapoi pe “000” sau alta
valoare. Daca M ramane “001” atunci ceasul nu mai poate numara ora in
continuare si ramane la ora la care este setat.

•Pentru setarea orei de pornire a radioului , punem ora si minutul in intrarile


H_R_ON si M_R_ON, dupa care selectam M=”010”.

•Pentru setarea orei de oprire a radioului , punem ora si minutul in intrarile


H_R_OFF si M_R_OFF, dupa care selctam M=”011”.

•Pentru setarea orei de pornire a alarmei , punem ora si minutul in intrarile


H_A_ON si M_A_ON, dupa care selctam M=”100”.

•Pentru setarea orei de oprire a alarmei, punem ora si minutul in intrarile


H_A_OFF si M_A_OFF, dupa care selectam M=”101”.

•Pentru resetarea intregului automat punem R=1.


12.REZULTATE OBTINUTE

1.TESTAREA CEASULUI

Mai intai setam E=1 si alegem perioada ceasului sa fie 1 minut.Apoi punem pe
intrarile H_C_IN = 23 si M_C_IN= 57. Setam M=”001” si asteptam pana se face
LOAD pe numarator , dupa care am setam M inapoi pe “000”.In imaginea de mai
jos se poate vedea cum se face trecerea de la ora 23:59 la ora 00:00.
2.TESTAREA ALARMEI

In continuare pentru testarea Alarmei, trebuie sa setam ora de pornire pe intrarile


H_A_ON =00 si M_A_OFF =00 si selectam M=100. Tot la fel setam si ora de
oprire a alarmei pe intrarile H_A_OFF = 00si M_A_OFF=02 si selctia M=101.In
imagine se vede cum iesrea ALARM_STATE este la inceput ‘-‘
(ENABLE_ALARM este 0). In momentul in care este incarcata ora de pornire a
alarmei in registru, ENABLE ALARM devine 1 si starea alarmei se schimba. La
ora 00:00alarma se porneste ( ON_ALARM devine 1 ) ALARM_STATE devine 1
iar dupa doua minute se opreste si ALARM_STATE devine 0.
3.TESTAREA RADIOULUI

In continuare pentru testarea Radioului,trebuie sa setam ora de pornire pe intrarile


H_R_ON =23si M_R_OFF =010 si selectam M=100. Tot la fel setam si ora de
oprirea radioului pe intrarile H_R_OFF = 00 si M_R_OFF=01 si selctia M=011.In
imagine se vede cum iesrea RADIO_STATE este la inceput ‘-‘(ENABLE_RADIO
este 0). In momentul in care este incarcata ora de pornire a radioului in registru,
ENABLE RADIO devine 1 si starea radioului se schimba. La ora 23:59 radioul se
porneste ( ON_RADIO devine 1 )RADIO_STATE devine 1 iar la ora 00:01 se
opreste si RADIO_STATE devine 0.
4.TESTAREA RESET-ULUI

13.POSIBILITĂŢI DE DEZVOLTARE
ULTERIOARĂ

O prima metoda de dezvoltare este implentarea unui divizor de frecventa pentru a


putea folosi ceasul si la alte frecvente decat cea de un minut.O alta metoda este
adaugarea de decodificatoare pentru afisarea orei si a minutelor pe un afisor pe 7
segmente

14.BIBLIOGRAFIE
https://www.fpga4student.com/

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