Orodha ya maudhui:

Mchezo wa Kuchekesha kwa Binary hadi Daraja moja: Hatua 10
Mchezo wa Kuchekesha kwa Binary hadi Daraja moja: Hatua 10

Video: Mchezo wa Kuchekesha kwa Binary hadi Daraja moja: Hatua 10

Video: Mchezo wa Kuchekesha kwa Binary hadi Daraja moja: Hatua 10
Video: Kutana na Askari mwenye Mbwembwe balaa Barabarani akiwa kazini, Ni vituko Mwanzo Mwisho, Utampenda! 2024, Julai
Anonim
Image
Image
Kuweka Mgawanyiko wa Saa
Kuweka Mgawanyiko wa Saa

Mafundisho haya yataonyesha mchakato na moduli zinazohitajika kuunda mchezo wetu wa Binary kwa Decimal Matching. Ndani ya sekunde 60, watumiaji watatafsiri na kuingiza nambari nyingi za nasibu zilizoonyeshwa kwa nasibu kwenye onyesho la sehemu saba kuwa binary kwa kubadilisha swichi na kuwasilisha kwa kitufe cha kukisia. Mara baada ya kukamilika, alama ya mwisho itaonyeshwa na kisha kuweka tena ili kucheza tena.

Kuelewa tafakari za baharini na haraka ni faida kufanya vizuri, lakini kitufe cha kuweka upya hutolewa ikiwa mtu anataka kujaribu mara moja tena.

Hatua ya 1: Kuweka Mgawanyiko wa Saa

Uti wa mgongo wa mradi huu wote unatokana na usawazishaji sahihi wa sehemu zote katika gizmo hii. Mashine yetu ya Jimbo la Finite hutumia saa ya ndani, lakini onyesho la sehemu saba na kipima muda lazima zitumie toleo lililobadilishwa la saa.

"Saa mpya" hii hutoka kwa kugawanya saa ya ndani na kipindi kinachotakiwa kufikia masafa fulani yanayohitajika kwa kila sehemu maalum. Hii imefanywa katika maabara zilizopita na kutokana na uzoefu, tunajua kipima muda kimewekwa nambari "ya mtu" hadi 0.1 Hz, na tarakimu ya "makumi" ikiwa 1 Hz

Pembejeo: ClkIn, msuluhishi (32 bit)

Matokeo: ClkOut

Hatua ya 2: Kuunda Mashine ya Jimbo la Nchini (FSM)

Kuunda Mashine ya Jimbo la Nne (FSM)
Kuunda Mashine ya Jimbo la Nne (FSM)
Kuunda Mashine ya Jimbo la Nne (FSM)
Kuunda Mashine ya Jimbo la Nne (FSM)
Kuunda Mashine ya Jimbo la Nne (FSM)
Kuunda Mashine ya Jimbo la Nne (FSM)

Katika Mashine yetu ya Finite-State, tuliamua kwamba majimbo matano (Anza, Onyesha, Angalia, Alama na Mwisho) yatakuwa muhimu na pembejeo tano (anza, weka upya, nadhani, sawa, muda wa kumaliza). Pato pekee katika Mashine yetu ya Jimbo ni nambari 3 ambayo inawakilisha hali gani mtumiaji yuko (000, 001, 011, 101, 100) kwa heshima na majimbo hapa chini.

Kumbuka kwamba Mashine ya Jimbo la Finite haifanyi kazi hapa chini, badala yake inaelezea tu hali ikoje na nini. Kinachotokea kweli huamuliwa na moduli ya juu iliyoelezwa hapo chini.

Jimbo la Kuanza (000)

Jimbo la Anza ni mahali ambapo mtumiaji ataanza hadi pembejeo ya kuanza iwe juu, hii pia ni hali ambayo itafikiwa wakati wowote kitufe cha kuweka upya kinapobanwa.

Jimbo la Mchezo (001)

Jimbo la Mchezo ni mwanzo wa mchezo, ambapo nambari isiyo ya kawaida hutengenezwa na mtumiaji hugeuza swichi ili kuunda pembejeo. Mara tu kitufe cha nadhani kinapobanwa, mchezo unahamishiwa kwenye Jimbo la Angalia.

Angalia Jimbo (011)

Hali hii ndio ambapo kulinganisha hutumiwa, ambayo italinganisha maadili ya mchango wa mtumiaji na nambari inayotengenezwa bila mpangilio. Ikiwa uwasilishaji ni sahihi, thamani sawa ni kubwa na FSM huenda kwa Jimbo la alama; Walakini, ikiwa uwasilishaji sio sahihi, FSM inarudi kwenye Jimbo la Onyesha hadi kuwasilisha ni sawa.

Hali hii ya Kuangalia hufanyika haraka ikilinganishwa na zingine, kwani inafanyika tu ilimradi kitufe cha kukagua kimeshinikizwa

Jimbo la alama (101)

Kwa kuwa thamani sawa ni kubwa, uwasilishaji ulikuwa sahihi. Katika hali hii, alama ya alama itaongezeka kwa moja na nambari mpya itazalishwa kwa mtumiaji kuingiza. Nambari hii mpya inaturudisha kwenye Jimbo la Anza ambapo mtumiaji atabadilisha swichi tena.

Jimbo la Mwisho (100)

Wakati wa muda wa sekunde 60 umekwisha, pembejeo ya muda itakuwa juu na mtumiaji atafika Jimbo la Mwisho ambapo alama ya mwisho imeonyeshwa. Ingizo la kuweka upya litasisitizwa na FSM itaanza tena katika Jimbo la Anza.

Pembejeo: Clk, rst, anza, nadhani, sawa, muda wa kumaliza

Pato: jimbo (3 bit)

Hatua ya 3: Ramani ya Uonyesho wa Sehemu Saba

Ramani ya Uonyesho wa Sehemu Saba
Ramani ya Uonyesho wa Sehemu Saba
Ramani ya Uonyesho wa Sehemu Saba
Ramani ya Uonyesho wa Sehemu Saba
Ramani ya Uonyesho wa Sehemu Saba
Ramani ya Uonyesho wa Sehemu Saba

Onyesho la Sehemu Saba ni sehemu muhimu ya mradi mzima kwani nambari mbili za kwanza kwenye skrini hutumiwa kama pato la jenereta ya nambari isiyo na mpangilio, wakati tarakimu mbili za mwisho ni kipima muda. Ingawa tumetekeleza mfano wa hii katika maabara ya mwisho kwa kuwa na tarakimu kwenye skrini, ilionyeshwa kwa hexadecimal. Ili kurekebisha suala hili, tulitumia kibadilishaji na msuluhishi wa saa ambayo imeelezewa hapa chini.

Maonyesho yanaonyesha kila 0 hadi FSM iingie katika hali ya mchezo; Walakini, katika hali ya mwisho, onyesho linapaswa kuonyesha tu alama ya mtumiaji.

Kwa kuwa tunatumia nambari zote nne za onyesho la sehemu saba, tunahitaji kuzunguka kwa kila anode haraka haraka kwa 300 Hz ili tuweze kuonekana kama inawashwa kila wakati.

Pembejeo: Clk, sehemu saba

Matokeo: cathode (7 bit), anode (4 bit)

Hatua ya 4: Kuunda Kilinganisha

Kuunda Kilinganisha
Kuunda Kilinganisha

Kijitabu hiki hutumiwa katika Jimbo la Angalia kulingana na jinsi inavyolinganisha nadhani iliyoingizwa kidogo ya binary ikilinganishwa na thamani halisi ya desimali.

Tulikuwa na taarifa ikiwa ilitathmini pembejeo zote mbili na matokeo mawili kulingana na ikiwa thamani sawa ilikuwa ya juu au ya chini. Kama muhimu kama moduli hii, ni moja ya mipango rahisi zaidi ya kubuni katika mradi huu.

Pembejeo: swichi (8 bit), nambari (8 bit)

Pato: EQ

Hatua ya 5: Kuweka Timer

Kuweka kipima muda
Kuweka kipima muda
Kuweka kipima muda
Kuweka kipima muda

Timer yetu kimsingi ni kaunta mbili tofauti ambazo zinaongezeka kwa viwango tofauti. Kaunta moja kwa thamani ya "mtu", (onyesho la sehemu saba za kwanza) na kaunta moja ya thamani ya "kumi" (nambari ya pili kwenye onyesho la sehemu saba). Kila nambari iko mbali na makali ya saa, na mara kaunta inapofikia sekunde 60, muda_utakuwa juu na mchezo utaisha na kurudi katika hali ya kuanza.

Pembejeo: Clk, hali (3 bit), anza

Matokeo: Sasa (8 bit), muda umekwisha

Hatua ya 6: Kubuni Pseudo Random Generator Number

Kubuni Pseudo Random Generator Number
Kubuni Pseudo Random Generator Number

Njia nyingine mbadala ya jenereta ya nambari haswa kwa kesi hii ni kuwa na kaunta inayorudia kutoka 0-99 (kwa binary) ambayo hutoa nambari iliyohesabiwa wakati pembejeo ni kubwa, kwani hii itachukua hitaji la kutumia LFSR.

Nambari inabadilisha kila makali yanayoinuka ya saa ya ndani (sekunde 10 za nano) na mizunguko kupitia nambari zote 100 kwa microsecond moja. Wakati wowote mtumiaji anataka nambari mpya kutoka kwa jenereta ya nambari, hutoa nambari iliyokuwa kwenye, Ingawa mchakato huu sio wa kubahatisha kabisa, uwezekano wa kupata matokeo yanayohusiana kutoka kwa mchakato huu ni mdogo wa kutosha kuwa wa kubahatisha.

Pembejeo: Clk, changenum, sawa

Matokeo: nambari (8 bit)

Hatua ya 7: Kuunda Kubadilisha fedha

Kuunda Kubadilisha fedha
Kuunda Kubadilisha fedha

Sehemu ya lazima ni Kubadilisha fedha, ambayo tulitumia kuonyesha nambari za desimali kwenye onyesho la sehemu saba badala ya hexadecimal asili. Ingawa nambari zote mbili zinatokana na nambari ya Binary 7, tuliunda moduli nzima iliyoteuliwa kubadilisha hexadecimal kuwa decimal.

Kwa mfano, ikiwa matokeo yetu ya mwisho ya alama yalikuwa 0010001 (kumi na saba), onyesho la sehemu saba litaonyesha thamani ya hexadecimal ya 11, badala ya nambari ya decimal ya 17.

Ingizo: Numin (8 bit)

Pato: Hesabu (8 bit)

Hatua ya 8: Kuweka Kila kitu Pamoja katika Moduli ya Mchezo

Kuweka Kila kitu Pamoja katika Moduli ya Mchezo
Kuweka Kila kitu Pamoja katika Moduli ya Mchezo
Kuweka Kila kitu Pamoja katika Moduli ya Mchezo
Kuweka Kila kitu Pamoja katika Moduli ya Mchezo
Kuweka Kila kitu Pamoja katika Moduli ya Mchezo
Kuweka Kila kitu Pamoja katika Moduli ya Mchezo
Kuweka Kila kitu Pamoja katika Moduli ya Mchezo
Kuweka Kila kitu Pamoja katika Moduli ya Mchezo

Kwa vifaa vyetu, tulitumia swichi muhimu 0-6 kwa mtumiaji kugeuza, na vifungo vitatu kutenda kama pembejeo za mtumiaji kwa kuanza, kuweka upya, na kubahatisha. Sehemu saba za kuonyesha na vifaa vya saa pia ni vifaa ambavyo tumefanya kutoka kwa maabara zilizopita lakini ilibidi ibadilike ili kutoshea mradi huu.

Tuligawanya mradi huu katika moduli sita zilizoonyeshwa hapo juu ili kuvunja gizmo nzima katika sehemu nyingi zinazofanya kazi, hata hivyo, njia ambayo imeunganishwa ni ngumu sana na inaonyeshwa kutoka kwenye picha ya sanduku jeusi iliyoambatanishwa.

Wakati mchezo unafanyika, taa 7 za taa zinawashwa kumjulisha mtumiaji ni swichi za kutumia, na wakati mchezo unamalizika, tulipanga pia LED kuwaka

Pembejeo: swichi (8 bit), Clk, weka upya, anza, nadhani

Matokeo: cathode (7 bit), anode (4 bit), LEDs (7 bit)

Hatua ya 9: Matatizo ya Ziada Yamekutana

Ingawa swichi saba tu hutumiwa katika mchezo huu, nambari imewekwa kama nambari 8 kidogo. Tulifanya hivyo ili kuwa na kilinganishi rahisi zaidi ambacho kingelinganisha bits hizi 8 na nambari 8 kidogo tuliyotengeneza kutoka kwa jenereta ya nambari isiyo na mpangilio.

Alama pia ilitupa shida kidogo mwanzoni kwa sababu tuliiweka kuongeza alama moja wakati FSM ilikuwa katika hali ya alama; hata hivyo kile kilichotokea badala yake ni kwamba alama hiyo iliendelea kuongezeka kwa muda mrefu kama serikali ilivyokuwa, ikitupa alama ya juu isiyo na sababu ambayo hatungeweza kushughulika nayo. Tulirekebisha hii kwa kuongeza ishara ya kunde ambayo ilisawazishwa na makali ya saa, kama inavyoonekana katika nambari katika hatua ya 8.

Mwishowe, kipima muda kilichukua muda mwingi kutengeneza utatuzi kwani ingeweza kupotosha onyesho letu la sehemu saba wakati ilikuwa ikihesabu chini, kwa hivyo tulilazimika kuibadilisha kutoka kuhesabu kutoka 60 hadi kuhesabu kutoka 0.

Hatua ya 10: Faili za Chanzo na Vizuizi

Ikiwa ungependa kuvuta kutoka kwa faili zetu za chanzo badala ya kuunda yako mwenyewe, hapa ndio. Pia, faili ya kikwazo imejumuishwa.

Ilipendekeza: