Tartalomjegyzék:

Basys 3 ébresztőóra: 9 lépés
Basys 3 ébresztőóra: 9 lépés

Videó: Basys 3 ébresztőóra: 9 lépés

Videó: Basys 3 ébresztőóra: 9 lépés
Videó: Урок 03. Цветок 9 лепестков. Блузка. Пепельно-розовая мечта. Сrochet. Ирландское кружево. 2024, Október
Anonim
Basys 3 ébresztőóra
Basys 3 ébresztőóra

Projektünk ébresztőórát hoz létre a Basys 3 FPGA kártya, az Arduino és a hangszóró -illesztőprogram segítségével. A felhasználó a Basys 3 11 bemeneti kapcsolójával beírhatja az aktuális időt a táblára, és rögzítheti az értéket a táblán lévő középső gombbal. A felhasználó ezután ugyanazokkal a kapcsolókkal adhatja meg a riasztási időt, de nyomja meg a bal gombot a riasztási idő rögzítéséhez. Ha rossz időt ad meg, akkor a reset gombot (felső gombot) lehet megnyomni, és az aktuális órát és az ébresztési időt 00:00 -ra kell állítani. A felhasználó ezután elindíthatja az órát a bal szélső kapcsolóval, és a következő kapcsolóval bekapcsolhatja az ébresztőt. Amikor az ébresztés be van kapcsolva, az ébresztőóra hangot ad, amikor az óra és a beállított ébresztési idő megegyezik.

1. lépés: Fekete doboz diagram

Fekete doboz diagram
Fekete doboz diagram
Fekete doboz diagram
Fekete doboz diagram

A projektünket egy fekete doboz diagram rajzolásával kezdtük, hogy vizualizáljuk a programunkban szükséges be- és kimeneteket. Programunk következő bemeneteit, például az 5 bites bemenetet (Hour_in) inicializáltuk, hogy megadjuk a 24 órás időt, a 6 bites (Min_in) bemenetet legfeljebb 60 percig jelenítsük meg, egy reset (Rst_b) gombot, hogy a felhasználó megváltoztatják az időbemenetüket, egy 1 bites bemenetet (alm_en), amely betölti a riasztási bemenetet, 1 bites bemenetet (alarm_sw), hogy kikapcsolja az ébresztőórát, amikor be van kapcsolva, 1 bites bemenetet (e_sec), amely vezérli a számlálót másodperc fut, 1 bites bemenet (Led_btn), amely beállítja az aktuális időt, és végül 1 bites bemenet (clk), amely szabályozza a Basys 3 kártya által megjelenített időt. A kimenetek az (alm_on), amely elküldi a jelet az Arduino -nak, a sseg kimenet, amely megjeleníti a bemeneti időt a Basys 3 -on, és az anód kimenet, amely szabályozza, hogy a bemenetek hol jelenjenek meg a hét szegmens kijelzőjén.

2. lépés: Lassú óra

Lassú óra
Lassú óra

A lassú óra vagy a clock_div2 fájl olyan órát hoz létre, amelynek frekvenciája 2 Hz. Ha ezt az órát a másodpercszámlálónkba tápláljuk, akkor a másodperc értéke másodpercenként eggyel növekszik. A lassú óra megbízható órajel létrehozására szolgál, amely másodpercenként egyszer alacsonyról magasra változik.

3. lépés: Számláló

Számláló
Számláló
Számláló
Számláló

Alkatrészszámláló (perc és másodperc):

A percek és másodpercek alapvető funkciója, hogy számlálók. A percek számlálója bemenetet (Vin) vesz fel, amely a bemenetekről származó jel (Min_in), majd számol, amíg el nem éri a kívánt bemenetet. A másodperc csak a kapcsoló (e_Sec) bemenetét veszi fel, mivel nem jeleníthető meg a hét szegmensben, és a háttérben számít, ha a kapcsoló magas '1'. Mindketten értéket adnak ki a (Qout) értékre, majd az (adatok) tárolják, amely elküldi az SSEG -nek, ami a linkelő fájlban történik. Továbbá, ha a percek és másodpercek eléri az 59 értéket, akkor visszaáll, és a kimenetük „1” a perc/óra növelése érdekében. Emellett visszaállítással (rst_b) is leképezhető a bemenetekre.

4. lépés: Számláló óra

Counter Hour
Counter Hour
Counter Hour
Counter Hour

Komponens számláló óra

Hasonlóképpen, a percek és másodpercek komponensszámlálójához az órakomponens beveszi az olyan bemeneteket, mint a (Vin), amely a fájlbevitel (Hour_in) jele, és olyan kimenetekkel rendelkezik, amelyek ugyanúgy kapcsolódnak a percekhez és a másodpercekhez. Amikor az óra számértéke eléri a 24 00 -t, akkor 00 00 -ra áll vissza.

5. lépés: Riasztás

Riasztás
Riasztás
Riasztás
Riasztás
Riasztás
Riasztás
Riasztás
Riasztás

A riasztás.vhd fájlja d-flip-flop-okból áll, amelyek digitális adatokat tároló tárolóeszközök. A riasztási fájl tárolja a riasztás aktiválásának időpontját. Az órák (5 bites bemenet) és a percek (6 bites bemenet) adatainak tárolásához 11 d-flip-flopot kell bélyegznünk a riasztási fájlunkban. Ehhez először importálnunk kell a d-flip-flopok működését szabályozó logikát, és le kell térképeznünk az összetevőket. Mind a 11 d-flip-flop egy bit adatot tárol a bemenetekről, és lehetővé teszi az adatok hozzárendelését a riasztási fájl kimeneteihez. Mivel a d-flip-flopok adatokat tárolnak, képesek vagyunk felhasználni az adatokat egy későbbi időpontban, még akkor is, ha a bemeneti kapcsolókat megváltoztatták.

6. lépés: Univerzális, hét szegmenses kijelző illesztőprogram

Univerzális, hét szegmenses kijelző illesztőprogram
Univerzális, hét szegmenses kijelző illesztőprogram
Univerzális, hét szegmenses kijelző illesztőprogram
Univerzális, hét szegmenses kijelző illesztőprogram
Univerzális, hét szegmenses kijelző illesztőprogram
Univerzális, hét szegmenses kijelző illesztőprogram

Az univerzális, hét szegmenses kijelzőmeghajtó megkapja a bemeneteket az órától és az órabeállítástól, és képes azokat kimenni a táblán lévő hét szegmenses kijelzőre. A meghajtó egyszerre két külön számlálást tud kiadni a táblán. Ezzel a funkcióval külön -külön megjelenítettük az órát és a percet. A hét szegmenses kijelző egyszerre csak egy számot képes aktiválni, ezért a sseg fájlnak multiplexelést kell használnia az idő összes számának egyidejű megjelenítésére. A táblák órajelét a sseg betáplálja, hogy a multiplexeléshez megfelelő időt tartsa. A bináris bináris kódolású decimális kódolóra van szükség ahhoz, hogy a bemeneteket fájlba alakítsuk át olyan formává, amelyet a hét szegmenses kijelzőre lehet kimenni. A sseg fájl végső kimenete leképeződik a hét szegmenses kijelzőre, és a kijelzőn megjelenik a helyes idő.

7. lépés: Link fájl

Link fájl
Link fájl
Link fájl
Link fájl
Link fájl
Link fájl

A linkfájl összeköti a program összes többi aspektusát, és a jeleket a megfelelő helyükre képezi le. Minden összetevő bekerül és példányosodik a fájlban. A jeleket az adatok egyik komponensről a másikra történő átvitelére használják. A portleképezés a fent felsorolt fekete doboz diagramot követi. A linkfájl tartalmazza azt a logikát is, amely szabályozza a riasztás aktiválását. A projekt nagy része ekkor már befejeződik. A hátralévő munka az egyes jelek megfelelő helyre történő továbbítása.

8. lépés: Arduino

Arduino
Arduino
Arduino
Arduino

Az arduino a hangszóró aktiválására, valamint a hangszórón keresztül lejátszott hang hangjának és időtartamának szabályozására szolgál. Az arduino digitális jelet olvas a Basys 3 tábláról. Ha ez a jel magas, az arduino PWM jelet ad ki, amely szabályozza a riasztás hangját és időtartamát. Az arduino kimeneti jele csatlakozik a hangszóró meghajtó paneljének bemeneti jeléhez, ami növeli a hangszóró hangerejét. Az arduino nagyon gyorsan végzi ezt a folyamatot, másodpercenként többször megismétlődik.

9. lépés: Kábelvezetés

Kábelvezetés
Kábelvezetés

Az arduino és a Basys 3 táblát fizikailag össze kell kötni a táblák közötti jelátvitelhez. Az első vezeték a Basys 3 JA PMOD földelőcsapjától az arduino földelőcsapjáig lesz. Ezután csatlakoztasson egy vezetéket a Basys 3 JA PMOD 1. tűjéről az arduino 7. digitális tűjéhez. Ezután csatlakoztassa az arduino két földelőcsapját a hangszóró -illesztőprogram földelőcsapjaihoz. Ezután csatlakoztassa az arduino 3,3 V -os kimenetét a hangszóró -illesztőprogram Vcc -tűjéhez. Ezután csatlakoztassa az arduino 9. digitális tűjét a hangszóró -illesztőprogram In bemenetéhez.

Ajánlott: