Բովանդակություն:

Basys 3 rmարթուցիչ `9 քայլ
Basys 3 rmարթուցիչ `9 քայլ

Video: Basys 3 rmարթուցիչ `9 քայլ

Video: Basys 3 rmարթուցիչ `9 քայլ
Video: Basys 3 Introduction 2024, Հուլիսի
Anonim
Basys 3 rmարթուցիչ
Basys 3 rmարթուցիչ

Մեր նախագիծը ստեղծում է զարթուցիչ `օգտագործելով Basys 3 FPGA տախտակը, Arduino- ն և բարձրախոսների վարորդական տախտակը: Օգտագործողը կարող է ընթացիկ ժամանակը մուտքագրել տախտակին ՝ օգտագործելով Basys 3 -ի 11 մուտքային անջատիչ և արժեքը կողպել ՝ օգտագործելով տախտակի միջին կոճակը: Այնուհետև օգտվողը կարող է մուտքագրել ահազանգի ժամանակը `օգտագործելով նույն անջատիչները, բայց սեղմել ձախ կոճակը` կողպելու համար ահազանգի ժամանակը: Եթե սխալ ժամանակ է մուտքագրվում, կարող է սեղմվել վերակայման կոճակը (վերևի կոճակը) և ընթացիկ ժամացույցի ժամը և ահազանգի ժամը կդառնա 00:00: Այնուհետև օգտվողը կարող է ժամացույցը միացնել ձախ ձախ անջատիչով և միացնել զարթուցիչը ՝ օգտագործելով հաջորդ անջատիչը: Երբ զարթուցիչը միացված է, զարթուցիչը կհնչի, երբ ժամացույցի ժամը և զարթուցիչի ժամը համընկնում են:

Քայլ 1: Սև արկղի դիագրամ

Սև արկղի դիագրամ
Սև արկղի դիագրամ
Սև արկղի դիագրամ
Սև արկղի դիագրամ

Մենք սկսեցինք մեր նախագիծը `նկարելով սև արկղի դիագրամ` մեր ծրագրում անհրաժեշտ մուտքերն ու ելքերը պատկերացնելու համար: Հետևյալ մուտքերը մեր ծրագրի համար, ինչպիսիք են 5-բիթանոց մուտքը (Hour_in), սկզբնավորվել են ՝ 24 ժամ տևողությամբ, 6-բիթանոց (Min_in) մուտքագրումը մինչև 60 րոպե ցուցադրելու համար, վերականգնման (Rst_b) կոճակը ՝ օգտվողին թույլ տալու համար: փոխել ժամանակի մուտքագրումը, 1-բիթանոց մուտքը (alm_en), որը բեռնում է ահազանգի մուտքը, 1-բիթանոց մուտքը (alarm_sw) `զարթուցիչն ակտիվացնելու դեպքում անջատելու համար, 1-բիթանոց մուտքը (e_sec), որը վերահսկում է, երբ հաշվիչը վայրկյանների ընթացքում կգործի ՝ 1-բիթանոց մուտք (Led_btn), որը սահմանում է ընթացիկ ժամանակը, և վերջապես, 1-բիթ մուտքագրում (clk), որը վերահսկում է Basys 3 տախտակի ցուցադրած ժամանակը: Ելքերն են (alm_on), որն ազդանշան է ուղարկում Arduino- ին, sseg ելքը, որը ցուցադրում է մուտքի ժամանակը Basys 3 -ում, և անոդի ելքը, որը վերահսկում է մուտքերի ցուցադրման յոթ հատվածի ցուցադրման վրա:

Քայլ 2: Դանդաղ ժամացույց

Դանդաղ ժամացույց
Դանդաղ ժամացույց

Դանդաղ ժամացույցը կամ clock_div2 ֆայլը ստեղծում է ժամացույց, որի հաճախականությունը 2 հց է: Եթե մենք այս ժամացույցը սնուցենք մեր վայրկյանների հաշվիչին, վայրկյանների արժեքը կաճի մեկ վայրկյան մեկով: Դանդաղ ժամացույցը օգտագործվում է ժամացույցի հուսալի ազդանշան ստեղծելու համար, որը վայրկյանում մեկ անգամ ցածրից բարձր է փոխվում:

Քայլ 3: Հակահարված

Հաշվիչ
Հաշվիչ
Հաշվիչ
Հաշվիչ

Բաղադրիչների հաշվիչ (րոպե և վայրկյան):

Րոպեների և վայրկյանների հիմնական գործառույթն այն է, որ դրանք հաշվիչներ են: Րոպեների հաշվիչը ընդունում է մուտքը (Vin), որը ազդանշան է մուտքերից (Min_in), այնուհետև հաշվում է մինչև հասնի մուտքագրված ցանկալի մուտքին: Վայրկյանները տևում են միայն անջատիչի մուտքը (e_Sec), քանի որ այն չի կարող ցուցադրվել յոթ հատվածում, և հաշվում է հետին պլանում, երբ անջատիչը բարձր է «1»: Նրանք երկուսն էլ այնտեղ թողարկում են (Qout) արժեքը, այնուհետև այն պահվում է (տվյալների) մեջ, որն այն ուղարկում է SSEG, ինչը կատարվում է կապող ֆայլում: Բացի այդ, երբ րոպեներն ու վայրկյանները հասնում են 59 -ի արժեքներին, այն վերակայվում է, և դրանց ելքը «1» է ՝ րոպե/ժամ ավելացնելու համար: Այն նաև կարող է քարտեզագրվել վերաբեռնումով (rst_b) նրանց մուտքերի հետ:

Քայլ 4: Counter Hour

Counter Hour
Counter Hour
Counter Hour
Counter Hour

Բաղադրիչի հաշվիչ ժամ

Նմանապես, րոպեների և վայրկյանների բաղադրիչի հաշվիչին, ժամի բաղադրիչն ընդունում է մուտքագրումներ, ինչպիսիք են (Vin), որը ազդանշան է ֆայլերի մուտքը կապելու համար (Hour_in) և ունի ելքեր, որոնք միևնույն կերպ կապված են րոպեների և վայրկյանների հետ: Երբ ժամի հաշվարկային արժեքը հասնում է 24 00 -ի, այն վերակայվում է 00 00 -ի:

Քայլ 5: Ահազանգ

Alaարթուցիչ
Alaարթուցիչ
Alaարթուցիչ
Alaարթուցիչ
Alaարթուցիչ
Alaարթուցիչ
Alaարթուցիչ
Alaարթուցիչ

Տագնապի.vhd ֆայլը կազմված է d-flip-flops- երից, որոնք պահեստավորման սարքեր են, որոնք կարող են պահել թվային տվյալները: Theարթուցիչի ֆայլը օգտագործվում է այն ժամանակը պահելու համար, երբ ազդանշանը կակտիվանա: Hoursամերի (5 բիթ մուտքագրման) և րոպեների (6 բիթ մուտքագրման) տվյալները պահելու համար մենք պետք է դրոշմենք 11 ահազանգ մեր ահազանգի ֆայլում: Դա անելու համար մենք նախ պետք է ներմուծենք d-flip-flops- ի աշխատանքը կարգավորող տրամաբանությունը և քարտեզագրենք բաղադրիչները: 11 d-flip-flops- ից յուրաքանչյուրը կպահի մուտքի տվյալների մեկ բիթը և թույլ կտա տվյալները քարտեզագրել ահազանգի ֆայլի ելքերին: Քանի որ d-flip-flops- ը պահում է տվյալները, մենք կարող ենք օգտագործել տվյալները ավելի ուշ ժամանակում, նույնիսկ եթե մուտքային անջատիչները փոխվել են:

Քայլ 6: Universal Seven Segment Display Driver

Universal Seven Segment Display Driver
Universal Seven Segment Display Driver
Universal Seven Segment Display Driver
Universal Seven Segment Display Driver
Universal Seven Segment Display Driver
Universal Seven Segment Display Driver

Ունիվերսալ յոթ հատվածի ցուցադրման վարորդն ընդունում է ժամացույցի և ժամացույցի հավաքածուի մուտքերը և կարողանում է դրանք դուրս բերել տախտակի յոթ հատվածի ցուցադրման վրա: Վարորդը կարողանում է գրատախտակին միաժամանակ թողնել երկու առանձին հաշվարկ: Այս գործառույթը մենք օգտագործում էինք ինչպես ժամի, այնպես էլ րոպեի ժամանակը առանձին ցուցադրելու համար: Յոթ հատվածի ցուցադրումը կարող է միաժամանակ ակտիվացնել միայն մեկ թիվ, ուստի sseg ֆայլը պետք է մուլտիպլեքսավորի `ժամանակի բոլոր թվերը միաժամանակ ցուցադրելու համար: Տախտակների ժամացույցի ազդանշանը մտնում է sseg ՝ բազմապատկման ճիշտ ժամանակը պահելու համար: Երկուականից մինչև երկուական կոդավորված տասնորդական կոդավորիչ անհրաժեշտ է ֆայլում մուտքագրումները ձևի վերածելու համար, որը կարող է թողարկվել յոթ հատվածի ցուցադրման վրա: Sseg ֆայլի վերջնական ելքը քարտեզագրվում է յոթ հատվածի ցուցադրման վրա և ճիշտ ժամանակը ցուցադրվում է էկրանին:

Քայլ 7: Կապի ֆայլ

Հղման ֆայլ
Հղման ֆայլ
Հղման ֆայլ
Հղման ֆայլ
Հղման ֆայլ
Հղման ֆայլ

Հղման ֆայլը կապում է ծրագրի բոլոր մյուս ասպեկտները և ազդանշանները քարտեզագրում դրանց ճիշտ տեղադրության հետ: Յուրաքանչյուր բաղադրիչ բերվում և ակնթարթորեն ներկայացվում է ֆայլում: Ազդանշանները օգտագործվում են տվյալները մեկ բաղադրիչից մյուսը փոխանցելու համար: Նավահանգստի քարտեզագրումը կհետեւի վերը թվարկված սեւ արկղերի գծապատկերին: Հղման ֆայլը պարունակում է նաև այն տրամաբանությունը, որը կառավարում է, երբ ազդանշանն ակտիվանում է: Նախագծի մեծ մասն արդեն կավարտվի այս կետով: Մնացած աշխատանքը յուրաքանչյուր ազդանշան ուղղորդում է համապատասխան վայր:

Քայլ 8: Arduino

Արդուինո
Արդուինո
Արդուինո
Արդուինո

Արդուինոն օգտագործվում է խոսնակը ակտիվացնելու, ինչպես նաև խոսողի միջոցով նվագարկվող նոտայի տոնայնությունն ու տևողությունը վերահսկելու համար: Արդուինոն թվային ազդանշան է կարդում Basys 3 տախտակից: Երբ այս ազդանշանը բարձր է, arduino- ն կարտադրի PWM ազդանշան, որը վերահսկում է ահազանգի ձայնը և տևողությունը: Արդուինոյից ելքային ազդանշանը միանում է բարձրախոսի վարորդի տախտակի մուտքային ազդանշանին, ինչը մեծացնում է բարձրախոսի ձայնը: Արդուինոն այս գործընթացը շատ արագ է կրկնում վայրկյանում բազմիցս:

Քայլ 9: Մալուխի երթուղի

Մալուխի երթուղի
Մալուխի երթուղի

Արդուինոյի և Basys 3 տախտակը պետք է ֆիզիկապես միացված լինի տախտակների միջև ազդանշաններ փոխանցելու համար: Մալուխի առաջին մալուխը կլինի JA PMOD- ի Basys 3 -ի հիմնային քորոցից մինչև arduino- ի գրունտային քորոց: Հաջորդը միացրեք մետաղալարը Basis 3 -ի JA PMOD- ի 1 -ին կապից arduino- ի թվային կապին 7 -ին: Հաջորդը, միացրեք երկու գրունտ arduino- ից բարձրախոսի վարորդի գրունտային կապում: Հաջորդը, միացրեք arduino- ի 3.3 Վ ելքը բարձրախոսի վարորդի Vcc կապին: Հաջորդը, arduino- ի թվային կապը միացրեք բարձրախոսի վարորդի In pin- ին:

Խորհուրդ ենք տալիս: