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

Նամակ Մորզեի կոդի թարգմանիչ ՝ 5 քայլ
Նամակ Մորզեի կոդի թարգմանիչ ՝ 5 քայլ

Video: Նամակ Մորզեի կոդի թարգմանիչ ՝ 5 քայլ

Video: Նամակ Մորզեի կոդի թարգմանիչ ՝ 5 քայլ
Video: Մորզեի այբուբեն 2024, Նոյեմբեր
Anonim
Նամակ Մորզեի կոդը թարգմանիչ
Նամակ Մորզեի կոդը թարգմանիչ

Morse Code- ի ներկայացումներն առցանց սովորելն օգտակար է, բայց չի կարելի համեմատել այն իրականում առկայծող լույսերով/հնչյուններով անձամբ տեսնելու հետ: Այս թարգմանիչը թույլ կտա ձեզ ընտրել այն նամակը, որը ցանկանում եք սովորել Մորզեի ծածկագրում և թարգմանել այն հենց ձեր աչքերի առջև ՝ լուսարձակի տակ առնելով լուսադիոդները այն օրինակով, որը ներկայացնում է տվյալ տառի համար: Այս Թարգմանիչը վերցնում է այբուբենի տառի երկուական ներկայացում, (յուրաքանչյուր տառի երկուական համարժեքի համար հետագայում կարելի է տեսնել աղյուսակ, բայց ենթադրենք, որ A - 01, B - 10, C - 11 և այլն) և փոխակերպում այն վերածվում է Մորզեի կոդի համարժեքի ՝ օգտվողի համար լույսեր վառելով: Թվի տասնորդական տարբերակը ցուցադրվում է նաև յոթ հատվածի ցուցադրման վրա, սակայն, որպեսզի ձեզ իմանա, որ դուք ստեղծում եք ճիշտ երկուական համարժեք:

Երկուական թիվը ստեղծվում է աջ կողմում գտնվող անջատիչներով և բարձրանում է ամենափոքր նշանակալի բիտից, ճիշտ այնպես, ինչպես դուք կսպասեիք երկուական թիվ ստեղծելիս: Ձեր ստեղծած թիվը ցուցադրվում է յոթ հատվածի էկրանին, ինչպես նշված է նախկինում և գտնվում է տախտակի ձախ կողմում, այն պարզապես ձեզ կասի ՝ սխալ եք թույլ տվել, թե ոչ ՝ անջատիչներով երկուական թիվը ներկայացնելու մեջ, կամ կհաստատի, որ դա արել եք: ճիշտ թիվը: Այն միանգամից վերցնում է 1 տառ, պահում այն հիշողության մեջ, այնուհետև տպում է Մորզեի ծածկագիրը, երբ օգտվողը պատրաստ կլինի ՝ ակտիվացնելով BASYS3 տախտակի ձախ կողմում գտնվող «Տպման անջատիչը» (սա պարզապես հերթական անջատիչն է, որը մենք նշանակված է որպես «Տպման անջատիչ», կամ մեկ այլ անջատիչ, եթե օգտագործում եք այլ տեսակի FPGA տախտակ և նշանակեք այլ անջատիչ (տես քայլ 3): Խորհուրդ է տրվում, որ պարզության համար օգտագործեք BASYS3 տախտակ, բայց դա պարտադիր չէ:

Քայլ 1: Քայլ 1: Հավաքեք ձեր նյութերը

Այս նախագծի համար ձեզ հարկավոր կլինի միայն հետևյալը.

Սարքաշար- Basys3 տախտակ (Կամ համարժեք FPGA, որը կարող եք համապատասխանաբար լարել)

-(ՈTՇԱԴՐՈԹՅՈՆ) Լարեր, եթե նախատեսում եք լրացուցիչ LED- ների կամ տարբեր անջատիչների միացում այլընտրանքային FPGA- ին

Software-Vivado Design Suite (Խորհուրդ ենք տալիս 2014+)

Քայլ 2: Քայլ 2: Ստեղծեք ֆայլ

Սա VHDL- ով գրված ֆայլ է ՝ Vivado- ում Morse Code 1 Bit թարգմանիչը գործարկելու համար: Այս ֆայլը աշխատում է Vivado- ի բոլոր տարբերակների հետ: Եթե ֆայլի ներբեռնման հետ կապված խնդիրներ կան, ծածկագրի տեքստային ներկայացումը կարելի է գտնել ստորև նշված մեկ այլ ֆայլում և հեշտությամբ կարող եք պատճենել ՝ տեղադրելով ձեր ստեղծած ֆայլերի թղթապանակը: Համոզվեք, որ և՛ հիմնական աղբյուրը, և՛ սահմանափակումների ֆայլը առկա են և իրենց առանձին աղբյուրներում, նախքան բիթսթրիմ ստեղծելը կամ որևէ բան սինթեզելը փորձելը: Նրանց համար, ովքեր ցանկանում են հասկանալ ծածկագրի ավելի խորը բացատրությունը և այն, ինչ այն իրականում անում է, դիտեք 3-րդ քայլը: Եթե պարզապես ուզում եք հասնել բուն կետին և սկսել թարգմանել, ապա անցեք 4-րդ բաժին:

Քայլ 3: Քայլ 3: Օրենսգիրք

Մեր ծածկագիրը պարունակում է 4 առանձին գործընթացներ, որոնք բոլորը միաժամանակ են աշխատում: Այս քայլի հետևյալ ենթաբաժիններից յուրաքանչյուրը ավելի խորը կանդրադառնա նրանցից յուրաքանչյուրի արածին:

Գործընթաց 1:

Մեր ստեղծած առաջին գործընթացը օգտագործեց ժամացույցի բաժանարար ՝ յոթ հատվածի ցուցադրումը աշխատեցնելու համար երկու հատվածի համար, որպեսզի ցույց տա այն տառի երկուական համարժեքը, որը ստեղծում էր անձը: Մենք պետք է համոզվեինք, որ ժամացույցը ճիշտ է ցույց տալիս թիվը մեր ուզած յոթ հատվածի ճիշտ հատվածներին: Մենք համապատասխանաբար բաժանեցինք հատվածները, որպեսզի նրանք նույնպես ցույց տան որոշակի թվանշաններ, երբ մենք նրանց էլ խնդրենք, և այն շրջանցեց վերջին 2 թվանշանները, քանի որ այբուբենի բոլոր թվերը ցույց տալու համար մեզ անհրաժեշտ էր ընդամենը 2: Մենք տասնորդական թվերի համակարգում ցուցադրեցինք յոթ հատվածի ցուցադրումը, որպեսզի մարդկանց համար ավելի հեշտ լինի տեսնել, թե ինչ տառ են փորձում ներկայացնել, քանի որ բնակչության մեծամասնությունը օգտագործում է 10 -րդ բազային թվային համակարգերը:

Գործընթաց 2:

Երկրորդ գործընթացը ստեղծում է մեր ժամացույցը, որի միջոցով LED- ները կարող են աշխատել, այնպես որ մենք կարող ենք հստակ տեսնել իմպուլսները և տարբերակել կետն ու գծիկը, ինչպես նաև համապատասխան ժամանակ ունենալ Մորզեի կոդի յուրաքանչյուր հատվածի միջև: Մենք ազդանշան օգտագործեցինք ՝ անցնելու գործընթացից դուրս Մորզե ծածկագրի լուսային ելքով լի ավտոբուս և տախտակի վրա տեղադրված լուսադիոդների վրա, որպեսզի կարողանանք միանգամից մի քանի լուսավորել, այլ ոչ թե ունենալ միայն մեկ լուսադիոդ:

Գործընթաց 3:

Մեր երրորդ գործընթացը նայում է անջատիչների ընթացիկ վիճակին և տառը նշանակում է այն երկուական ներկայացումներին, որոնք ցուցադրվում են այդ ժամանակ: Սա անցնում է տառերից յուրաքանչյուրի միջով, բացատով, կետով և ստորակետով: Այս գործընթացը ավարտվում է այստեղ, և բոլոր մասերը հավաքվում են չորրորդ գործընթացի մեջ ՝ թարգմանությունն ավարտելու համար:

Գործընթաց 4:

Չորրորդ գործընթացը «թարգմանչի» գործընթացն է, որը ներառում է մեր հավաքած բոլոր տեղեկությունները, օրինակ ՝ խանութի կոճակն ակտիվացե՞լ է, թե՞ ոչ, տպման անջատիչը միացված է, թե ոչ, և որ համարն է: ներկայացված է անջատիչներով: Այնուհետև այն նայում է մեր պատրաստած զանգվածին, որն ունի Մորզեի ծածկագրի պատկերներ, թե ինչ ելք կլինի 1 -ի և 0 -ի դեպքում `LED- ների համար միացված/անջատված հրամաններով: Երկու առանձին ցիկլի ժամացույցներ օգտագործելու փոխարեն, մենք պատրաստեցինք մեկ ցիկլի 50% մեկ ժամացույց, որը, մեր կարծիքով, լավ արագություն էր Մորզեի կոդի համար, և այն կատարեց 1 բարձր «զարկերակով» և 3 բարձրության համար գծիկ: իմպուլսներ »: Կոդն ավելի պարզեցնելու և այն ավելի արագ գործարկելու համար մենք պարզապես ստեղծեցինք «010» - ի և «01110» - ի հավասար գծիկ:

Քայլ 4: Քայլ 4. Ստեղծեք Bistream և Իրականացրեք

Այս նախագիծը շատ հեշտ է ստեղծվել, եթե ունեք BASYS3 տախտակ, քանի որ անհրաժեշտ բոլոր անջատիչներն ու կոճակները արդեն առկա են ձեր տախտակի վրա ՝ ձեր ուզած կապումներին նախապես դրված սահմանափակումների հետ միասին: Եթե դուք օգտագործում եք այլ FPGA, ապա ձեզ հարկավոր է մուտքագրել ծածկագիրը և գտնել սահմանափակումները և դրանք նորից ուղղորդել դեպի ձեր FPGA- ի ճիշտ սահմանափակումները: Սա նաև ճշմարիտ է, եթե պլանավորում եք այլ լուսադիոդներ և անջատիչներ միացնել ձեր տախտակին: Մենք չենք մտնելու դրա օրինակների մեջ, բայց ձեր հատուկ FPGA- ի հրահանգների օգտագործումը շատ օգտակար կլինի որոշելու համար, թե ինչպես միացնել և ուղղել ամեն ինչ ճիշտ կապում:

Այս պահին, երբ ներբեռնեք ծածկագիրը և ֆայլը բացվի, պարզապես ստեղծեք բիթստրիմը Vivado- ում և ծրագրավորեք ձեր սարքը: Երբ դուք ունեք, դուք կկարողանաք սկսել մուտքագրել տառեր, որոնք պետք է թարգմանվեն Մորզեի ծածկագրին: Վայելեք:

*EԱՆՈԹՈԹՅՈՆ. «Տպման անջատիչը» գտնվում է տախտակի ձախ կողմում (անջատիչ R2 BASYS3 տախտակի համար), իսկ «Խանութի կոճակը» `U18 կոճակը (BASYS3 տախտակի կենտրոնական կոճակը), եթե սահմանափակումներն ուղղակիորեն վերցված են մեր օրինակի կոդը:

Քայլ 5: Խնդիրներ/անսարքությունների վերացում

Եթե ֆայլը բեռնելիս խնդիրներ ունեք, կարող եք ձեռքով պատճենել ծածկագիրը այս բառի ֆայլից: Կա նաև հավելված ՝ ստուգելու համար տառին երկուական հեշտ փոխակերպումները և այն, ինչ պետք է ներկայացնի նամակը, ուստի խորհուրդ ենք տալիս դրանք ստուգել: Եթե դուք օգտագործում եք BASYS3 խորհուրդը, դուք պետք է կարողանաք հետևել այս հրահանգներին և առանց որևէ խնդիրների բեռնել ծածկագիրը, և այն իրականացնել առանց խնդիրների, երբ միացնեք տախտակը և ծրագրավորեք այն:

*ՆՇՈՄ. Եթե գտնում եք, որ ձեր թարգմանիչը կարծես դանդաղ է աշխատում, դա նորմալ է: Փոքր ժամանակ ձգձգում կա տպելուն հարվածելիս և այն տեսնելիս, երբ տեսնում եք դրա Մորզեի ծածկագիրը: Եթե դուք դադարեցնում եք ցիկլը ՝ անջատելով տպման անջատիչը, ծածկագիրը պետք է ավարտի ցիկլը ՝ նախքան նոր տառ տպելը, ձեզ սպասելով ցիկլի ավարտին և հաջորդ տառի մեկնարկին:

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