Përmbajtje:

Ora e alarmit Basys 3: 9 hapa
Ora e alarmit Basys 3: 9 hapa

Video: Ora e alarmit Basys 3: 9 hapa

Video: Ora e alarmit Basys 3: 9 hapa
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Korrik
Anonim
Ora e alarmit Basys 3
Ora e alarmit Basys 3

Projekti ynë krijon një orë me zile duke përdorur tabelën Basys 3 FPGA, një Arduino dhe një bord drejtues altoparlantësh. Përdoruesi është në gjendje të fusë kohën aktuale në tabelë duke përdorur 11 çelësa hyrës në Basys 3 dhe të bllokojë vlerën duke përdorur butonin e mesëm në tabelë. Përdoruesi pastaj mund të fusë kohën e alarmit duke përdorur të njëjtat ndërprerës, por shtyp butonin e majtë për të kyçur në kohën e alarmit. Nëse futet koha e gabuar, butoni i rivendosjes (butoni i sipërm) mund të shtypet dhe koha aktuale e orës dhe koha e alarmit do të vendosen në 00:00. Përdoruesi mund të fillojë orën duke përdorur çelësin më të majtë dhe të ndezë alarmin duke përdorur çelësin tjetër. Kur alarmi është ndezur, ora e ziles do të bëjë një tingull kur koha e orës dhe koha e caktuar e alarmit përputhen.

Hapi 1: Diagrami i Kutisë së Zezë

Diagrami i Kutisë së Zezë
Diagrami i Kutisë së Zezë
Diagrami i Kutisë së Zezë
Diagrami i Kutisë së Zezë

Ne e filluam projektin tonë duke vizatuar një diagram të kutisë së zezë për të vizualizuar hyrjet dhe daljet e nevojshme në programin tonë. Hyrjet e mëposhtme për programin tonë si hyrja 5-bit (Hour_in) u inicializuan për të përcaktuar kohën 24-orëshe, hyrjen 6-bit (Min_in) për të shfaqur deri në 60 minuta, një buton rivendosjeje (Rst_b) për t'i lejuar përdoruesit të ndryshojnë hyrjen e tyre të kohës, një hyrje 1-bit (alm_en) e cila ngarkon hyrjen e alarmit, një hyrje 1-bit (alarm_sw) për të fikur orën e alarmit kur aktivizohet, një hyrje 1-bit (e_sec) që kontrollon kur numëruesi do të funksionojnë sekonda, një hyrje 1-bit (Led_btn) që përcakton kohën aktuale, dhe së fundi një hyrje 1-bit (clk) që kontrollon kohën e shfaqur nga tabela Basys 3. Daljet janë (alm_on) që dërgon sinjal në Arduino, dalja sseg që shfaq kohën e hyrjes në Basys 3 dhe dalja anodë që kontrollon se ku shfaqen hyrjet në ekranin e shtatë segmenteve.

Hapi 2: Ora e Ngadaltë

Ora e Ngadaltë
Ora e Ngadaltë

Ora e ngadaltë ose skedari clock_div2 krijon një orë frekuenca e së cilës është 2 hz. Nëse e furnizojmë këtë orë me numëruesin e sekondave, vlera e sekondave do të rritet me një çdo sekondë. Ora e ngadaltë përdoret për të krijuar një sinjal të besueshëm të orës që ndryshon nga i ulët në i lartë një herë në sekondë.

Hapi 3: Kundërsulm

Counter
Counter
Counter
Counter

Numëruesi i komponentëve (minuta dhe sekonda):

Funksioni themelor i minutave dhe sekondave është se ato janë numërues. Numëruesi i minutave merr hyrjen (Vin) e cila është sinjal nga hyrjet (Min_in), dhe pastaj numëron derisa të arrijë hyrjen e dëshiruar të futur. Sekondat marrin vetëm hyrjen e ndërprerësit (e_Sec) pasi nuk mund të shfaqet në segmentin shtatë dhe llogarit në sfond sapo çelësi të jetë i lartë '1'. Ata të dy dalin atje me vlerë në (Qout), dhe më pas ajo ruhet në (të dhëna) që e dërgon atë në SSEG e cila bëhet në skedarin lidhës. Gjithashtu, kur minutat dhe sekondat arrijnë vlerat e 59 ajo rivendoset, dhe dalja e tyre është '1' në mënyrë që të rritet minuta/orë. Gjithashtu mund të përpilohet me një rivendosje (rst_b) në hyrjet e tyre.

Hapi 4: Ora kundër

Ora Kundër
Ora Kundër
Ora Kundër
Ora Kundër

Ora e Kundër Komponentit

Në mënyrë të ngjashme, në numëruesin e komponentëve të minutave dhe sekondave komponenti i orës merr hyrje të tilla si (Vin) i cili është një sinjal nga lidhja e hyrjes së skedarit (Hour_in), dhe ka dalje që janë të lidhura në të njëjtën mënyrë minutat dhe sekondat. Kur vlera e numërimit të orës arrin 24 00 ajo rivendoset në 00 00.

Hapi 5: Alarm

Alarm
Alarm
Alarm
Alarm
Alarm
Alarm
Alarm
Alarm

Skedari alarm.vhd është i përbërë nga d-flip-flops të cilat janë pajisje ruajtëse që mund të ruajnë të dhëna dixhitale. Skedari i alarmit përdoret për të ruajtur kohën në të cilën do të aktivizohet alarmi. Për të ruajtur të dhënat e orëve (hyrje 5 bit) dhe minutash (hyrje 6 bit) ne duhet të vulosim 11 d-flip-flops brenda skedarit tonë të alarmit. Për ta bërë këtë, ne së pari duhet të importojmë logjikën që rregullon funksionimin e d-flip-flops dhe të hartojmë përbërësit. Secila prej 11 d-flip-flop-eve do të ruajë një bit të dhënash nga hyrjet dhe do të lejojë që të dhënat të hartohen në daljet e skedarit të alarmit. Për shkak se d-flip-flops ruajnë të dhëna, ne jemi në gjendje t'i përdorim të dhënat në një moment të mëvonshëm, edhe nëse çelsat e hyrjes janë ndryshuar.

Hapi 6: Shoferi Universal i Shtatë Segmenteve

Drejtuesi i ekranit Universal me Shtatë Segmente
Drejtuesi i ekranit Universal me Shtatë Segmente
Drejtuesi i ekranit Universal me Shtatë Segmente
Drejtuesi i ekranit Universal me Shtatë Segmente
Drejtuesi i ekranit Universal me Shtatë Segmente
Drejtuesi i ekranit Universal me Shtatë Segmente

Drejtuesi universal i ekranit me shtatë segmente merr hyrjet nga ora dhe grupi i orës dhe është në gjendje t'i nxjerrë ato në ekranin me shtatë segmente në tabelë. Shoferi është në gjendje të nxjerrë dy numra të veçantë në tabelë në të njëjtën kohë. Ne e përdorëm këtë funksion për të shfaqur si orën ashtu edhe kohën minutore veç e veç. Shfaqja me shtatë segmente është në gjendje të aktivizojë vetëm një numër në të njëjtën kohë, prandaj skedari sseg duhet të përdorë multipleximin për të shfaqur të gjithë numrat e kohës njëkohësisht. Sinjali i orës së bordeve futet në sseg për të mbajtur kohën e duhur për shumëfishimin. Një kodues dhjetor binar në binar i koduar është i nevojshëm për të kthyer hyrjet në skedar në një formë që mund të dalë në ekranin e shtatë segmenteve. Dalja përfundimtare e skedarit sseg është hartuar në ekranin me shtatë segmente dhe koha e saktë tregohet në ekran.

Hapi 7: Skedari i lidhjes

Skedari i lidhjes
Skedari i lidhjes
Skedari i lidhjes
Skedari i lidhjes
Skedari i lidhjes
Skedari i lidhjes

Skedari i lidhjes lidh të gjitha aspektet e tjera të programit dhe harton sinjalet në vendndodhjen e tyre të saktë. Çdo komponent futet dhe instantizohet brenda skedarit. Sinjalet përdoren për të transferuar të dhëna nga një komponent në tjetrin. Hartimi i portit do të ndjekë diagramin e kutisë së zezë të listuar më sipër. Skedari i lidhjes gjithashtu mban logjikën që qeveris kur aktivizohet alarmi. Pjesa më e madhe e projektit tashmë do të përfundojë deri në këtë pikë. Puna e mbetur është përcjellja e secilit sinjal në vendin e duhur.

Hapi 8: Arduino

Arduino
Arduino
Arduino
Arduino

Arduino përdoret për të aktivizuar altoparlantin, si dhe për të kontrolluar tonin dhe kohëzgjatjen e notës së luajtur përmes altoparlantit. Arduino lexon një sinjal dixhital nga tabela Basys 3. Kur ky sinjal është i lartë, arduino do të japë një sinjal PWM që kontrollon tonin dhe kohëzgjatjen e alarmit. Sinjali dalës nga arduino lidhet me sinjalin hyrës të bordit të drejtuesit të altoparlantit, i cili rrit volumin e altoparlantit. Arduino e bën këtë proces shumë shpejt duke u përsëritur shumë herë në sekondë.

Hapi 9: Kalimi i kabllove

Kalimi i kabllove
Kalimi i kabllove

Bordi arduino dhe Basys 3 duhet të jenë të lidhur fizikisht për të transferuar sinjale midis tabelave. Kablloja e parë me tela do të jetë kunja nga toka e JA PMOD e Basys 3 në kunjin tokësor të arduino. Pastaj lidhni një tel nga kunja 1 e JA PMOD e Basys 3 në kunjin dixhital 7 të arduino. Tjetra, lidhni dy kunja tokësore nga arduino në kunjat e tokëzimit të drejtuesit të altoparlantit. Tjetra, lidhni daljen 3.3 V të arduino me pinin Vcc të drejtuesit të altoparlantit. Tjetra, lidhni pinin dixhital 9 të arduino me pinin In të drejtuesit të altoparlantit.

Recommended: