Obsah:

Hra s binárnymi až desatinnými miestami: 10 krokov
Hra s binárnymi až desatinnými miestami: 10 krokov

Video: Hra s binárnymi až desatinnými miestami: 10 krokov

Video: Hra s binárnymi až desatinnými miestami: 10 krokov
Video: 🔴 ВЫРАВНИВАНИЕ РИСКОВ В ТОРГОВЛЕ БИНАРНЫМИ ОПЦИОНАМИ - ПРИБЫЛЬ $29 000 | Стратегия бинарных опционов | Параметры 2024, Jún
Anonim
Image
Image
Nastavenie rozdeľovača hodín
Nastavenie rozdeľovača hodín

Tento návod ukazuje postup a moduly potrebné na vytvorenie našej hry s binárnymi až desatinnými zhodami. Do 60 sekúnd budú používatelia prekladať a zadávať toľko náhodne generovaných desatinných čísel na sedemsegmentovom displeji do binárnej podoby prepínaním prepínačov a odoslaním pomocou tlačidla hádania. Po dokončení sa zobrazí konečné skóre a potom sa resetuje, aby sa mohlo hrať znova.

Pochopenie binárnych a rýchlych reflexov je prospešné pre dobrý skutok, ale tlačidlo reset je k dispozícii pre prípad, že by ste to chceli okamžite skúsiť znova.

Krok 1: Nastavenie rozdeľovača hodín

Chrbtica celého tohto projektu pochádza zo správnej synchronizácie všetkých častí tohto gizmo. Náš konečný stavový stroj používa vnútorné hodiny, ale sedemsegmentový displej a časovač musia používať zmenenú verziu hodín.

Tieto „nové hodiny“pochádzajú z delenia vnútorných hodín požadovaným obdobím, aby sa dosiahla určitá frekvencia potrebná pre každý konkrétny komponent. Toto sa už robilo v predchádzajúcich laboratóriách a zo skúseností vieme, že časovač má „svoju“číslicu nastavenú na 0,1 Hz a „desiatkové“číslice je 1 Hz

Vstupy: ClkIn, deliteľ (32 bit)

Výstupy: ClkOut

Krok 2: Vytvorenie zariadenia s konečným stavom (FSM)

Vytvorenie zariadenia s konečným stavom (FSM)
Vytvorenie zariadenia s konečným stavom (FSM)
Vytvorenie zariadenia s konečným stavom (FSM)
Vytvorenie zariadenia s konečným stavom (FSM)
Vytvorenie zariadenia s konečným stavom (FSM)
Vytvorenie zariadenia s konečným stavom (FSM)

V našom zariadení s konečným stavom sme sa rozhodli, že bude potrebných päť stavov (začiatok, zobrazenie, kontrola, skóre a koniec) s piatimi vstupmi (štart, reset, odhad, rovnosť, časový limit). Jediným výstupom v našom stavovom počítači je 3 -bitové číslo, ktoré predstavuje stav, v ktorom sa používateľ nachádza (000, 001, 011, 101, 100) vzhľadom na nižšie uvedené stavy.

Pamätajte si, že konečný stavový počítač v skutočnosti nevytvára nižšie uvedené funkcie, ale iba hovorí, v akom stave je program a v čom. Čo sa skutočne stane, určuje horný modul vysvetlený nižšie.

Počiatočný stav (000)

Počiatočný stav je miesto, kde používateľ začne, kým nebude počiatočný vstup vysoký. To je tiež stav, ktorý sa dosiahne po stlačení tlačidla reset.

Stav hry (001)

Stav hry je začiatok hry, kde sa vygeneruje náhodné číslo a používateľ prepne prepínače a vytvorí vstup. Po stlačení tlačidla hádania sa hra presunie do stavu Kontrola.

Skontrolovať stav (011)

V tomto stave sa používa komparátor, ktorý porovná hodnoty vstupu používateľa a náhodne vygenerovaného čísla. Ak je podanie správne, rovnaká hodnota je vysoká a FSM prejde do stavu skóre; ak je však odoslanie nesprávne, FSM sa vráti späť do stavu zobrazenia, kým nie je odoslanie správne.

Tento stav kontroly prebieha v porovnaní s ostatnými relatívne rýchlo, pretože k nemu dochádza iba vtedy, ak je stlačené tlačidlo začiarknutia

Stav skóre (101)

Keďže rovnaká hodnota je vysoká, odoslanie bolo správne. V tomto stave sa hodnota skóre zvýši o jednu a používateľovi sa vygeneruje nové číslo, ktoré zadá. Toto nové číslo nás privádza späť do počiatočného stavu, kde používateľ znova prepne prepínače.

Koncový stav (100)

Akonáhle časový spínač 60 sekúnd vyprší, časový limit bude vysoký a používateľ sa dostane do koncového stavu, kde sa zobrazí konečné skóre. Potom sa stlačí resetovací vstup a FSM sa znova spustí v počiatočnom stave.

Vstupy: Clk, prvý, štart, odhad, rovnosť, časový limit

Výstup: stav (3 bit)

Krok 3: Mapovanie zobrazenia siedmich segmentov

Mapovanie zobrazenia siedmich segmentov
Mapovanie zobrazenia siedmich segmentov
Mapovanie zobrazenia siedmich segmentov
Mapovanie zobrazenia siedmich segmentov
Mapovanie zobrazenia siedmich segmentov
Mapovanie zobrazenia siedmich segmentov

Sedemsegmentový displej je kľúčovou súčasťou celého projektu, pretože prvé dve číslice na obrazovke sa používajú ako výstup generátora náhodných čísel, zatiaľ čo posledné dve číslice predstavujú časovač. Aj keď sme v minulom laboratóriu implementovali príklad z hľadiska číslic na obrazovke, zobrazoval sa hexadecimálne. Na vyriešenie tohto problému sme použili prevodník a delič hodín, ktoré sú ďalej vysvetlené nižšie.

Displej zobrazuje všetky 0, kým FSM neprejde do herného stavu; v konečnom stave by však displej mal ukazovať iba skóre používateľa.

Pretože používame všetky štyri číslice sedemsegmentového displeja, musíme každú anódu cyklovať dostatočne rýchlo pri 300 Hz, aby sme boli vnímaní ako vždy rozsvietení.

Vstupy: Clk, sedemsegmentový

Výstupy: katódy (7 bitov), anódy (4 bity)

Krok 4: Vytvorenie komparátora

Vytvorenie komparátora
Vytvorenie komparátora

Tento submodul sa v stave kontroly používa na porovnanie 7 -bitového binárneho zadaného odhadu so skutočnou desatinnou hodnotou.

Mali sme príkaz if, ktorý hodnotil vstupy aj dva výstupy v závislosti od toho, či bola rovnaká hodnota vysoká alebo nízka. Napriek tomu, že je tento modul dôležitý, je zďaleka jedným z jednoduchších programov, ktoré je možné v tomto projekte navrhnúť.

Vstupy: prepínače (8 bitov), číslo (8 bitov)

Výstup: EQ

Krok 5: Nastavenie časovača

Nastavenie časovača
Nastavenie časovača
Nastavenie časovača
Nastavenie časovača

Náš časovač sú v podstate dva rôzne počítadlá, ktoré rastú rôznym tempom. Jedno počítadlo v hodnote „niekoho“(prvý sedemsegmentový displej) a jedno počítadlo hodnoty „desať“(druhá číslica na sedemsegmentovom displeji). Každá číslica je založená na stúpajúcej hrane hodín a akonáhle počítadlo dosiahne 60 sekúnd, časový limit bude vysoký a hra sa skončí a vráti sa do počiatočného stavu.

Vstupy: Clk, stav (3 bit), štart

Výstupy: prúd (8 bitov), časový limit

Krok 6: Návrh generátora pseudonáhodných čísel

Návrh generátora pseudonáhodných čísel
Návrh generátora pseudonáhodných čísel

Ďalšou alternatívnou metódou pre generátor čísel špecificky pre tento prípad je mať opakujúci sa čítač od 0 do 99 (v binárnom formáte), ktorý vydáva spočítané číslo, keď je vstup vysoký, pretože by to eliminovalo potrebu použitia LFSR.

Číslo sa mení každou stúpajúcou hranou vnútorných hodín (10 nano-sekúnd) a cyklicky prechádza všetkými 100 číslami za jednu mikrosekundu. Kedykoľvek chce používateľ z generátora čísel nové číslo, vydá číslo, na ktorom bol, Aj keď tento proces nie je úplne náhodný, pravdepodobnosť nájdenia súvisiacich výstupov z tohto procesu je dostatočne nízka na to, aby bola pseudonáhodná.

Vstupy: Clk, changenum, rovnaké

Výstupy: číslo (8 bitov)

Krok 7: Vytvorenie konvertora

Vytvorenie prevodníka
Vytvorenie prevodníka

Nevyhnutným komponentom je Prevodník, ktorý sme použili na zobrazenie desatinných čísel na sedemsegmentovom displeji namiesto pôvodného hexadecimálneho. Aj keď obe čísla vychádzajú zo 7 -bitového binárneho čísla, vytvorili sme celý modul určený na konverziu hexadecimálneho čísla na desatinné.

Ak by napríklad náš konečný výstup pre skóre bol 0010001 (sedemnásť), sedemsegmentový displej by namiesto desatinného čísla 17 zobrazoval hexadecimálnu hodnotu 11.

Vstup: Numin (8 bitov)

Výstup: Numout (8 bitov)

Krok 8: Spojenie všetkého do herného modulu

Spojenie všetkého v hernom module
Spojenie všetkého v hernom module
Spojenie všetkého v hernom module
Spojenie všetkého v hernom module
Spojenie všetkého v hernom module
Spojenie všetkého v hernom module
Spojenie všetkého v hernom module
Spojenie všetkého v hernom module

V prípade našich komponentov sme použili potrebné prepínače 0-6, ktoré používateľ prepínal, pričom tri tlačidlá slúžili ako vstupy používateľa pre štart, reset a odhad. Sedemsegmentový displej a hodinové komponenty sú tiež komponenty, ktoré sme urobili z predchádzajúcich laboratórií, ale museli sme ich zmeniť, aby zodpovedali tomuto projektu.

Tento projekt sme rozdelili do šiestich vyššie uvedených modulov, aby sme celý gizmo rozdelili na mnoho pracovných častí, spôsob ich spojenia je však dosť komplikovaný a ukazuje to pripojený obrázok čiernej skrinky.

Počas hry sa rozsvieti 7 diód LED, ktoré upozornia používateľa, ktorý prepne na použitie, a keď sa hra skončí, naprogramovali sme tiež diódy LED, aby blikali

Vstupy: prepínače (8 bitov), Clk, reset, štart, hádanie

Výstupy: katódy (7 bitov), anódy (4 bity), LED diódy (7 bitov)

Krok 9: Vyskytli sa ďalšie problémy

Aj keď sa v tejto hre používa iba sedem prepínačov, kód ho má nastavený ako 8 -bitové číslo. Urobili sme to, aby sme mali pohodlnejší komparátor, ktorý by porovnal týchto 8 bitov s 8 bitovým číslom, ktoré sme vygenerovali z generátora náhodných čísel.

Skóre nám tiež najskôr robilo trochu problémy, pretože sme ho nastavili tak, aby zvýšil jeden bod, keď bol FSM v stave skóre; namiesto toho sa však stalo, že skóre stále rástlo, pokiaľ bol štát zapnutý, čo nám dáva neprimerane vysoké skóre, s ktorým sme sa nedokázali vysporiadať. Opravili sme to pridaním impulzného signálu, ktorý bol synchronizovaný so stúpajúcou hranou hodín, ako je vidieť v kóde v kroku 8.

Nakoniec časovač potreboval veľa času na ladenie, pretože pri odpočítavaní skreslil náš sedemsegmentový displej, takže sme ho museli zmeniť z odpočítavania zo 60 na počítanie z 0.

Krok 10: Zdrojové súbory a obmedzenia

Ak by ste namiesto vytvárania vlastných zdrojov radšej čerpali z našich zdrojových súborov, tu sú. Zahrnutý je aj súbor obmedzení.

Odporúča: