Orodha ya maudhui:

Saa 3 ya Saa ya Basys: Hatua 9
Saa 3 ya Saa ya Basys: Hatua 9

Video: Saa 3 ya Saa ya Basys: Hatua 9

Video: Saa 3 ya Saa ya Basys: Hatua 9
Video: ХАБИБ - Ягода малинка (Премьера клипа) 2024, Julai
Anonim
Saa 3 ya Saa ya Basys
Saa 3 ya Saa ya Basys

Mradi wetu huunda saa ya kengele kwa kutumia bodi ya Basys 3 FPGA, Arduino, na bodi ya dereva wa spika. Mtumiaji anaweza kuingiza wakati wa sasa kwenye ubao kwa kutumia swichi 11 za kuingiza kwenye Basys 3 na kufunga thamani kwa kutumia kitufe cha kati kwenye ubao. Mtumiaji anaweza kuingiza wakati wa kengele kwa kutumia swichi zile zile lakini bonyeza kitufe cha kushoto ili kufunga wakati wa kengele. Ikiwa wakati usiofaa umeingizwa, kitufe cha kuweka upya (kitufe cha juu) kinaweza kushinikizwa na saa ya saa na saa ya kengele itawekwa saa 00:00. Mtumiaji anaweza kisha kuanza saa kwa kutumia swichi ya kushoto kabisa na kuwasha kengele kwa kutumia swichi inayofuata. Wakati kengele imewashwa, saa ya kengele itatoa sauti wakati wa saa na kuweka wakati wa kengele unalingana.

Hatua ya 1: Mchoro wa Sanduku Nyeusi

Mchoro wa Sanduku Nyeusi
Mchoro wa Sanduku Nyeusi
Mchoro wa Sanduku Nyeusi
Mchoro wa Sanduku Nyeusi

Tulianza mradi wetu kwa kuchora mchoro wa sanduku jeusi kuibua pembejeo na matokeo yanayohitajika katika programu yetu. Pembejeo zifuatazo za programu yetu kama vile pembejeo 5-bit (Hour_in) zilianzishwa ili kutaja saa ya saa 24, pembejeo 6-bit (Min_in) kuonyesha hadi dakika 60, kitufe cha kuweka upya (Rst_b) kumruhusu mtumiaji badilisha uingizaji wao wa wakati, pembejeo ya 1-bit (alm_en) ambayo hupakia uingizaji wa kengele, pembejeo ya 1-bit (alarm_sw) kuzima saa ya kengele inapoamilishwa, pembejeo ya 1-bit (e_sec) inayodhibiti wakati kaunta ya sekunde itaendesha, pembejeo ya 1-bit (Led_btn) ambayo inaweka wakati wa sasa, na mwishowe pembejeo ya 1-bit (clk) inayodhibiti wakati ulioonyeshwa na bodi ya Basys 3. Matokeo ni (alm_on) ambayo hutuma ishara kwa Arduino, pato la sseg ambalo linaonyesha wakati wa kuingiza kwenye Basys 3, na pato la anode linalodhibiti ambapo pembejeo zinaonyeshwa kwenye sehemu saba zinazoonyeshwa.

Hatua ya 2: Saa ya polepole

Saa Polepole
Saa Polepole

Saa polepole au faili ya saa_div2 huunda saa ambayo masafa yake ni 2 hz. Ikiwa tutalisha saa hii kwa kaunta yetu ya sekunde, thamani ya sekunde itaongezeka kwa moja kila sekunde. Saa polepole hutumiwa kuunda ishara ya saa ya kuaminika ambayo hubadilika kutoka chini kwenda juu mara moja kwa sekunde.

Hatua ya 3: Kukabiliana

Kukabiliana
Kukabiliana
Kukabiliana
Kukabiliana

Hesabu ya Vipengele (dakika na sekunde):

Kazi ya kimsingi ya dakika na sekunde ni kwamba ni kaunta. Kaunta ya dakika inachukua pembejeo (Vin) ambayo ni ishara kutoka kwa pembejeo (Min_in), na kisha inahesabu hadi kufikia pembejeo inayotakikana. Sekunde huchukua tu pembejeo ya swichi (e_Sec) kwani haiwezi kuonyeshwa kwenye sehemu saba, na inahesabiwa kwa nyuma mara tu swichi iko juu '1'. Zote mbili zinatoa pato la (Qout), na kisha huhifadhiwa kwenye (data) ambayo huipeleka kwa SSEG ambayo hufanywa kwenye faili inayounganisha. Pia, wakati dakika na sekunde hufikia maadili ya 59 inabadilisha, na pato lao ni '1' ili kuongeza dakika / saa. Inaweza pia kuchorwa na kuweka upya (rst_b) kwa pembejeo zao.

Hatua ya 4: Kukabiliana na Saa

Saa ya Kukabiliana
Saa ya Kukabiliana
Saa ya Kukabiliana
Saa ya Kukabiliana

Saa ya Kukabiliana na Sehemu

Vivyo hivyo, kwa kaunta ya sehemu ya dakika na sekunde sehemu ya saa inachukua pembejeo kama vile (Vin) ambayo ni ishara kutoka kwa kuingiza faili (Hour_in), na ina matokeo ambayo yameunganishwa kwa njia ile ile dakika na sekunde. Thamani ya kuhesabu saa inapofika 24 00 inabadilisha hadi 00 00.

Hatua ya 5: Alarm

Kengele
Kengele
Kengele
Kengele
Kengele
Kengele
Kengele
Kengele

Faili ya kengele.vhd imeundwa na d-flip-flops ambazo ni vifaa vya kuhifadhi ambavyo vinaweza kuhifadhi data ya dijiti. Faili ya kengele hutumiwa kuhifadhi wakati ambapo kengele itaamilishwa. Ili kuhifadhi data ya masaa (pembejeo 5 kidogo) na dakika (pembejeo 6 kidogo) lazima tuangazie d-flip-flops 11 ndani ya faili yetu ya kengele. Ili kufanya hivyo, lazima kwanza tuingize mantiki inayosimamia utendaji wa d-flip-flops na ramani vifaa. Kila moja ya d-flip-flops 11 itahifadhi data moja kutoka kwa pembejeo na kuruhusu data kupangiliwa kwa matokeo ya faili ya kengele. Kwa sababu d-flip-flops kuhifadhi data, tunaweza kutumia data baadaye wakati hata swichi za kuingiza zimebadilishwa.

Hatua ya 6: Dereva wa Sehemu ya Saba ya Universal

Universal Dereva wa Sehemu ya Kuonyesha
Universal Dereva wa Sehemu ya Kuonyesha
Universal Dereva wa Sehemu ya Kuonyesha
Universal Dereva wa Sehemu ya Kuonyesha
Universal Dereva wa Sehemu ya Kuonyesha
Universal Dereva wa Sehemu ya Kuonyesha

Dereva wa sehemu saba ya ulimwengu anapokea pembejeo kutoka saa na saa na anaweza kuzipeleka kwa onyesho la sehemu saba kwenye ubao. Dereva anaweza kutoa hesabu mbili tofauti kwenye ubao kwa wakati mmoja. Tulitumia kazi hii kuonyesha wakati wa saa na wakati wa dakika kando. Onyesho la sehemu saba linaweza tu kuamsha nambari moja kwa wakati kwa hivyo faili ya sseg inapaswa kutumia multiplexing kuonyesha nambari zote za wakati huo huo wakati huo huo. Ishara ya saa ya bodi inalishwa ndani ya sseg kuweka wakati sahihi wa kuzidisha. Njia ya usimbuaji wa nambari iliyo na alama ya binary ni muhimu kubadilisha pembejeo kwa faili kuwa fomu ambayo inaweza kutolewa kwa onyesho la sehemu saba. Pato la mwisho la faili la sseg limepangwa kwa onyesho la sehemu saba na wakati sahihi unaonyeshwa kwenye onyesho.

Hatua ya 7: Unganisha Faili

Kiungo Faili
Kiungo Faili
Kiungo Faili
Kiungo Faili
Kiungo Faili
Kiungo Faili

Faili ya kiunganisho inaunganisha mambo mengine yote ya programu na ramani ishara kwenye eneo lao sahihi. Kila sehemu huletwa na kutiliwa ndani ya faili. Ishara hutumiwa kuhamisha data kutoka sehemu moja hadi nyingine. Ramani ya bandari itafuata mchoro wa sanduku nyeusi iliyoorodheshwa hapo juu. Faili ya kiungo pia inashikilia mantiki inayotawala wakati kengele imeamilishwa. Wengi wa mradi tayari utakamilika kwa hatua hii. Kazi iliyobaki inaelekeza kila ishara kwenye eneo linalofaa.

Hatua ya 8: Arduino

Arduino
Arduino
Arduino
Arduino

Arduino hutumiwa kuamsha spika na vile vile kudhibiti sauti na muda wa dokezo lililochezwa kupitia spika. Aruuino anasoma ishara ya dijiti kutoka bodi ya Basys 3. Wakati ishara hii iko juu, arduino itatoa ishara ya PWM inayodhibiti sauti na muda wa kengele. Ishara ya pato kutoka kwa arduino inaunganisha na ishara ya kuingiza ya bodi ya dereva ya spika ambayo huongeza sauti ya spika. Arduino hufanya mchakato huu haraka sana kurudia mara nyingi kwa sekunde.

Hatua ya 9: Njia ya Cable

Njia ya Cable
Njia ya Cable

Bodi ya arduino na Basys 3 lazima iunganishwe kimwili kuhamisha ishara kati ya bodi. Cable ya kwanza kwa waya itakuwa kutoka kwa pini ya ardhi ya JA PMOD ya Basys 3 hadi pini ya arduino. Ifuatayo unganisha waya kutoka kwa siri 1 ya JA PMOD ya Basys 3 hadi pini ya dijiti 7 ya arduino. Ifuatayo, unganisha pini mbili za ardhini kutoka arduino hadi pini za ardhini za dereva wa spika. Ifuatayo, unganisha pato la 3.3 V la arduino kwenye pini ya Vcc ya dereva wa spika. Ifuatayo, unganisha pini ya dijiti 9 ya arduino na pini ya In ya dereva wa spika.

Ilipendekeza: