Sisukord:

Basys 3 äratuskell: 9 sammu
Basys 3 äratuskell: 9 sammu

Video: Basys 3 äratuskell: 9 sammu

Video: Basys 3 äratuskell: 9 sammu
Video: Basys 3 Introduction 2024, Oktoober
Anonim
Basys 3 äratuskell
Basys 3 äratuskell

Meie projekt loob äratuskella, kasutades Basys 3 FPGA tahvlit, Arduino ja kõlarijuhi plaati. Kasutaja saab sisestada tahvlile praeguse aja, kasutades Basys 3 11 sisendlülitit ja väärtuse lukustada, kasutades tahvli keskmist nuppu. Seejärel saab kasutaja samade lülitite abil sisestada äratusaja, kuid vajutada äratusaja lukustamiseks vasakut nuppu. Kui sisestatakse vale kellaaeg, saab vajutada lähtestusnuppu (ülemine nupp) ning praeguseks kellaajaks ja äratusajaks seatakse 00:00. Seejärel saab kasutaja käivitada kella vasakpoolsema lüliti abil ja lülitada alarmi sisse järgmise lüliti abil. Kui äratus on sisse lülitatud, annab äratuskell kellaaja ja seatud äratuse kellaaja korral heli.

Samm: musta kasti skeem

Musta kasti skeem
Musta kasti skeem
Musta kasti skeem
Musta kasti skeem

Alustasime oma projekti mustast kastist diagrammi joonistamisega, et visualiseerida meie programmis vajalikke sisendeid ja väljundeid. Järgmised meie programmi sisendid, näiteks 5-bitine sisend (tund), lähtestati, et määrata 24-tunnine aeg, 6-bitine (min_in) sisend kuvada kuni 60 minutit, lähtestusnupp (Rst_b), mis võimaldab kasutajal muuta oma aja sisendit, 1-bitist sisendit (alm_et), mis laadib häire sisendi, 1-bitist sisendit (alarm_sw) äratuskella väljalülitamiseks, kui see on aktiveeritud, 1-bitist sisendit (e_sec), mis juhib loendurit sekundit, 1-bitine sisend (Led_btn), mis määrab praeguse aja, ja lõpuks 1-bitine sisend (clk), mis kontrollib Basys 3-plaadi kuvatavat aega. Väljunditeks on (alm_on), mis saadab signaali Arduinole, sseg -väljund, mis kuvab sisendaja Basys 3 -l, ja anoodväljund, mis kontrollib, kus sisendeid kuvatakse seitsme segmendi ekraanil.

2. samm: aeglane kell

Aeglane kell
Aeglane kell

Aeglane kell või fail clock_div2 loob kella, mille sagedus on 2 Hz. Kui anname selle kella oma sekundiloendurile, suureneb sekundite väärtus iga sekundi võrra ühe võrra. Aeglast kella kasutatakse usaldusväärse kella signaali loomiseks, mis muutub madalast kõrgeks üks kord sekundis.

3. samm: loendur

Loendur
Loendur
Loendur
Loendur

Komponentide loendur (minutid ja sekundid):

Minutite ja sekundite põhifunktsioon on see, et need on loendurid. Minutiloendur võtab sisendi (Vin), mis on signaal sisenditest (Min_in), ja loeb seejärel, kuni jõuab soovitud sisendini. Sekundid võtavad ainult lüliti (e_Sec) sisendi, kuna seda ei saa seitsmel segmendil kuvada ja loeb taustal, kui lüliti on kõrgel '1'. Mõlemad väljastavad seal väärtuse (Qout) ja seejärel salvestatakse see (andmetesse), mis saadab selle SSEG -le, mis on tehtud linkimisfailis. Samuti lähtestatakse minutite ja sekundite väärtuste 59 korral ja nende väljund on „1”, et suurendada minuteid/tund. Seda saab ka sisestada (rst_b) nende sisenditele.

4. samm: loendur

Vastutund
Vastutund
Vastutund
Vastutund

Komponentide loenduri tund

Samamoodi võtab minutikomponentide ja sekundite komponentide loendurile tunnikomponent sisendeid, näiteks (Vin), mis on signaal failisisendist (Hour_in), ja sellel on väljundid, mis on samamoodi ühendatud minutite ja sekunditega. Kui tunni loendusväärtus jõuab 24 00 -ni, lähtestatakse see 00 00 -le.

Samm 5: Alarm

Alarm
Alarm
Alarm
Alarm
Alarm
Alarm
Alarm
Alarm

Alarmi.vhd-fail koosneb d-flip-flopidest, mis on salvestusseadmed, mis suudavad salvestada digitaalseid andmeid. Häirefaili kasutatakse häire aktiveerimise aja salvestamiseks. Tundide (5-bitine sisend) ja minutite (6-bitine sisend) andmete salvestamiseks peame oma häirefailis kustutama 11 d-flip-flopsi. Selleks peame esmalt importima d-flip-flopsi toimimist reguleeriva loogika ja kaardistama komponendid. Igaüks 11 d-flip-flopist salvestab sisenditest ühe bitti andmeid ja võimaldab andmed kaardistada häirefaili väljunditega. Kuna d-flip-flops salvestab andmeid, saame neid andmeid kasutada ka hiljem, isegi kui sisendlüliteid on muudetud.

6. toiming: universaalne seitsme segmendi ekraanidraiver

Universaalne seitsme segmendi ekraanidraiver
Universaalne seitsme segmendi ekraanidraiver
Universaalne seitsme segmendi ekraanidraiver
Universaalne seitsme segmendi ekraanidraiver
Universaalne seitsme segmendi ekraanidraiver
Universaalne seitsme segmendi ekraanidraiver

Universaalne seitsme segmendi kuvaridraiver saab kella ja kellaseadme sisendid ning suudab need väljastada tahvli seitsme segmendi ekraanile. Juht suudab tahvlile korraga väljastada kaks eraldi loendust. Kasutasime seda funktsiooni, et kuvada eraldi nii tund kui minut. Seitsme segmendi kuva suudab korraga aktiveerida ainult ühe numbri, seetõttu peab sseg -fail kasutama aja multipleksimist, et kuvada korraga kõik ajaarvud. Laudade kella signaal sisestatakse ssegi, et hoida multipleksimiseks õiget aega. Sisendite failiks teisendamiseks vormiks, mida saab väljastada seitsme segmendi kuvale, on vaja binaarset kuni binaarset kodeeritud kümnendkoodrit. Sseg -faili lõplik väljund kaardistatakse seitsme segmendi ekraanile ja ekraanil kuvatakse õige aeg.

Samm: linkige fail

Liail
Liail
Liail
Liail
Liail
Liail

Lingifail ühendab kõik muud programmi aspektid ja kaardistab signaalid nende õigesse asukohta. Iga komponent tuuakse ja kuvatakse failis. Signaale kasutatakse andmete edastamiseks ühest komponendist teise. Portide kaardistamine järgib ülaltoodud musta kasti skeemi. Lingifail sisaldab ka loogikat, mis reguleerib häire aktiveerimist. Suurem osa projektist on selleks hetkeks juba valmis. Ülejäänud töö on iga signaali suunamine sobivasse kohta.

Samm: Arduino

Arduino
Arduino
Arduino
Arduino

Arduinot kasutatakse kõlari aktiveerimiseks ning kõlari kaudu mängitava noodi tooni ja kestuse reguleerimiseks. Arduino loeb Basys 3 plaadilt digitaalsignaali. Kui see signaal on kõrge, väljastab arduino PWM -signaali, mis kontrollib häire tooni ja kestust. Arduino väljundsignaal ühendatakse kõlarijuhi plaadi sisendsignaaliga, mis suurendab kõlari helitugevust. Arduino teeb seda protsessi väga kiiresti, kordades mitu korda sekundis.

9. samm: kaabli marsruutimine

Kaabli marsruutimine
Kaabli marsruutimine

Arduino ja Basys 3 tahvel peavad olema tahvlite vaheliste signaalide edastamiseks füüsiliselt ühendatud. Esimene juhtmekaabel on Basys 3 JA PMOD maanduspistikust arduino maanduspistikuni. Seejärel ühendage juhe Basys 3 JA PMOD -i 1. tihvti juurest arduino digitaalse kontaktiga 7. Seejärel ühendage kaks arduino maandusnõela kõlari draiveri maanduspistikutega. Seejärel ühendage arduino 3,3 V väljund kõlaridraiveri Vcc kontaktiga. Seejärel ühendage arduino digitaalne tihvt 9 kõlaridraiveri sisendpoldiga.

Soovitan: