Satura rādītājs:
- 1. darbība: pulksteņa dalītāja iestatīšana
- 2. darbība: ierobežota stāvokļa mašīnas (FSM) izveide
- 3. darbība. Septiņu segmentu displeja kartēšana
- 4. darbība: salīdzinātāja izveide
- 5. darbība: taimera iestatīšana
- 6. darbība. Pseido nejaušo skaitļu ģeneratora projektēšana
- 7. darbība: pārveidotāja izveide
- 8. solis: visu salieciet spēles modulī
- 9. darbība: radušās papildu problēmas
- 10. darbība: avota faili un ierobežojumi
Video: Spēle Binārā līdz decimāldaļai: 10 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:52
Šajā pamācībā tiks parādīts process un moduļi, kas nepieciešami, lai izveidotu mūsu spēli no bināro līdz decimāldaļai. 60 sekunžu laikā lietotāji tulkos un ievadīs tik daudz nejauši ģenerētu decimālo skaitļu septiņu segmentu displejā, pārslēdzot slēdžus un iesniedzot ar uzminēšanas pogu. Pēc pabeigšanas tiks parādīts gala rezultāts un pēc tam atiestatīts, lai atskaņotu vēlreiz.
Bināro un ātro refleksu izpratne ir izdevīga, lai gūtu labus rezultātus, taču atiestatīšanas poga ir paredzēta gadījumam, ja vēlaties uzreiz mēģināt vēlreiz.
1. darbība: pulksteņa dalītāja iestatīšana
Visa šī projekta mugurkauls nāk no pareizas visu šīs Gizmo detaļu sinhronizācijas. Mūsu galīgā stāvokļa mašīna izmanto iekšējo pulksteni, bet septiņu segmentu displejam un taimerim ir jāizmanto mainīta pulksteņa versija.
Šis "jaunais pulkstenis" rodas, dalot iekšējo pulksteni ar vēlamo periodu, lai sasniegtu noteiktu frekvenci, kas nepieciešama katram konkrētajam komponentam. Tas ir darīts iepriekšējās laboratorijās un no pieredzes mēs zinām, ka taimera cipars "viens" ir iestatīts uz 0,1 Hz, bet "desmitiem" - 1 Hz
Ieejas: ClkIn, dalītājs (32 biti)
Rezultāti: ClkOut
2. darbība: ierobežota stāvokļa mašīnas (FSM) izveide
Mūsu ierobežota stāvokļa mašīnā mēs nolēmām, ka būs nepieciešami pieci stāvokļi (sākums, displejs, pārbaude, rezultāts un beigas) ar piecām ievadēm (sākums, atiestatīšana, minējums, vienāds, taimauts). Vienīgais izvads mūsu valsts mašīnā ir 3 bitu skaitlis, kas norāda, kādā stāvoklī atrodas lietotājs (000, 001, 011, 101, 100) attiecībā uz tālāk norādītajiem stāvokļiem.
Atcerieties, ka ierobežota stāvokļa mašīna faktiski neizpilda tālāk norādītās funkcijas, bet tikai norāda, kādā stāvoklī programma ir ieslēgta un kāda. To, kas patiesībā notiek, nosaka augšējais modulis, kas izskaidrots zemāk.
Sākuma stāvoklis (000)
Sākuma stāvoklis ir vieta, kur lietotājs sāks darbību, līdz sākuma ievade ir augsta, tas ir arī stāvoklis, kas tiks sasniegts ikreiz, kad tiek nospiesta atiestatīšanas poga.
Spēles stāvoklis (001)
Spēles stāvoklis ir spēles sākums, kurā tiek ģenerēts nejaušs skaitlis un lietotājs pārslēdz slēdžus, lai izveidotu ievadi. Pēc minēšanas pogas nospiešanas spēle tiek pārvietota uz pārbaudes stāvokli.
Pārbaudīt valsti (011)
Šajā stāvoklī tiek izmantots salīdzinātājs, kas salīdzinās lietotāja ievadītās vērtības un nejauši ģenerēto skaitli. Ja iesniegums ir pareizs, vienāda vērtība ir augsta un MFV nonāk vērtēšanas stāvoklī; tomēr, ja iesniegums ir nepareizs, MFV atgriežas attēlojuma stāvoklī, līdz iesniegums ir pareizs.
Šis pārbaudes stāvoklis notiek salīdzinoši ātri, salīdzinot ar citiem, jo tas notiek tikai tik ilgi, kamēr ir nospiesta pārbaudes poga
Rezultātu statuss (101)
Tā kā vienāda vērtība ir augsta, iesniegums bija pareizs. Šajā stāvoklī rezultātu vērtība palielināsies par vienu, un lietotājam tiks ģenerēts jauns skaitlis. Šis jaunais numurs atgriež mūs sākuma stāvoklī, kur lietotājs atkal pārslēgs slēdžus.
Beigu stāvoklis (100)
Kad 60 sekunžu taimeris ir beidzies, taimauta ievade būs augsta un lietotājs sasniegs beigu stāvokli, kurā tiek parādīts gala rezultāts. Pēc tam tiks nospiesta atiestatīšanas ievade, un FSM atkal sāksies no sākuma stāvokļa.
Ievadi: Clk, pirmkārt, sākums, minējums, vienāds, taimauts
Izeja: stāvoklis (3 biti)
3. darbība. Septiņu segmentu displeja kartēšana
Septiņu segmentu displejs ir visa projekta galvenā sastāvdaļa, jo pirmie divi cipari ekrānā tiek izmantoti kā nejaušo skaitļu ģeneratora izeja, bet pēdējie divi cipari ir taimeris. Lai gan iepriekšējā laboratorijā mēs esam ieviesuši piemēru tam, ka ekrānā ir cipari, tas tika parādīts heksadecimālā. Lai atrisinātu šo problēmu, mēs izmantojām pārveidotāju un pulksteņa dalītāju, kas sīkāk paskaidrots zemāk.
Displejā tiek rādīti visi 0, līdz MFV nonāk spēles stāvoklī; tomēr gala stāvoklī displejā vajadzētu parādīt tikai lietotāja rezultātu.
Tā kā mēs izmantojam visus četrus septiņu segmentu displeja ciparus, mums ir pietiekami ātri jāapmeklē katrs anods ar 300 Hz frekvenci, lai mūs uztvertu kā vienmēr izgaismotus.
Ievadi: Clk, septiņu segmentu
Izejas: katodi (7 biti), anodi (4 biti)
4. darbība: salīdzinātāja izveide
Šis apakšmodulis tiek izmantots pārbaudes stāvoklī, salīdzinot 7 bitu ievadīto minējumu ar faktisko decimālo vērtību.
Mums bija paziņojums, ja tika novērtētas gan ievades, gan divas izejas atkarībā no tā, vai vienāda vērtība bija augsta vai zema. Lai cik svarīgs būtu šis modulis, tā ir viena no vienkāršākajām programmām šajā projektā.
Ieejas: slēdži (8 biti), numurs (8 biti)
Izeja: EQ
5. darbība: taimera iestatīšana
Mūsu taimeris būtībā ir divi dažādi skaitītāji, kas pieaug ar dažādu ātrumu. Viens skaitītājs "viena" vērtībā (pirmo septiņu segmentu displejs) un viens skaitītājs "desmit" vērtībai (otrais cipars septiņu segmentu displejā). Katrs cipars ir balstīts uz pulksteņa augošās malas, un, kad skaitītājs sasniedz 60 sekundes, time_out būs augsts, un spēle beigsies un atgriezīsies sākuma stāvoklī.
Ieejas: Clk, stāvoklis (3 biti), sākums
Izejas: strāva (8 biti), taimauts
6. darbība. Pseido nejaušo skaitļu ģeneratora projektēšana
Vēl viena alternatīva metode skaitļu ģeneratoram, kas īpaši paredzēts šim gadījumam, ir atkārtots skaitītājs no 0 līdz 99 (binārā formātā), kas izvada saskaitīto skaitli, kad ievade ir augsta, jo tas izslēdz nepieciešamību izmantot LFSR.
Skaitlis maina katru iekšējā pulksteņa augošo malu (10 nano sekundes) un vienā mikrosekundē iziet visus 100 skaitļus. Ikreiz, kad lietotājs vēlas jaunu numuru no skaitļu ģeneratora, tas izdala numuru, kurā tas bija, Lai gan šis process nav pilnīgi nejaušs, varbūtība atrast saistītus rezultātus šajā procesā ir pietiekami zema, lai būtu pseido-nejauša.
Ieejas: Clk, changenum, vienāds
Izejas: numurs (8 biti)
7. darbība: pārveidotāja izveide
Nepieciešams komponents ir pārveidotājs, ko mēs izmantojām, lai septiņu segmentu displejā parādītu decimālos ciparus, nevis sākotnējo heksadecimālo skaitli. Lai gan abi skaitļi ir balstīti uz 7 bitu bināro skaitli, mēs izveidojām veselu moduli, kas paredzēts heksadecimālā skaitļa pārvēršanai decimālā.
Piemēram, ja mūsu gala rezultāts bija 0010001 (septiņpadsmit), septiņu segmentu displejā tiktu parādīta heksadecimālā vērtība 11, nevis decimālskaitlis 17.
Ieeja: Numin (8 biti)
Izeja: Numout (8 biti)
8. solis: visu salieciet spēles modulī
Savām sastāvdaļām mēs izmantojām nepieciešamos slēdžus 0-6, lai lietotājs varētu pārslēgties, un trīs pogas darbojās kā lietotāja ievades sākšanai, atiestatīšanai un uzminēšanai. Septiņu segmentu displeja un pulksteņa komponenti ir arī komponenti, kurus esam veikuši iepriekšējās laboratorijās, taču tie bija jāmaina, lai tie atbilstu šim projektam.
Mēs sadalījām šo projektu sešos iepriekš parādītajos moduļos, lai visu gizmo sadalītu daudzās darba daļās, tomēr to savienošanas veids ir diezgan sarežģīts un parādīts pievienotajā melnās kastes attēlā.
Spēles laikā iedegas 7 gaismas diodes, lai paziņotu lietotājam, kurus slēdžus izmantot, un, kad spēle beidzas, mēs arī ieprogrammējām gaismas diodes mirgot
Ieejas: slēdži (8 biti), Clk, reset, start, guess
Izejas: katodi (7 biti), anodi (4 biti), gaismas diodes (7 biti)
9. darbība: radušās papildu problēmas
Lai gan šajā spēlē tiek izmantoti tikai septiņi slēdži, kodā tas ir iestatīts kā 8 bitu skaitlis. Mēs to darījām, lai būtu ērtāks salīdzinātājs, kas šos 8 bitus salīdzinātu ar 8 bitu skaitli, ko mēs ģenerējām no nejaušo skaitļu ģeneratora.
Rezultāts arī sākumā sagādāja mums mazliet nepatikšanas, jo mēs noteicām, ka tas palielina vienu punktu, kad MFV bija rezultātu stāvoklī; tomēr tā vietā notika tas, ka rādītājs turpināja pieaugt, kamēr valsts darbojās, dodot mums nepamatoti augstu rezultātu, ar kuru mēs nevarējām tikt galā. Mēs to novērsām, pievienojot impulsa signālu, kas tika sinhronizēts ar pulksteņa augošo malu, kā redzams 8. darbības kodā.
Visbeidzot, taimera atkļūdošana aizņēma daudz laika, jo tas izkropļoja mūsu septiņu segmentu displeju, kad tas tika skaitīts atpakaļ, tāpēc mums tas bija jāmaina no atpakaļskaitīšanas no 60 uz skaitīšanu līdz 0.
10. darbība: avota faili un ierobežojumi
Ja jūs labāk izvēlaties no mūsu avota failiem, nevis izveidojat savus, šeit tie ir. Iekļauts arī ierobežojumu fails.
Ieteicams:
Binārā līdz decimāldaļa kalkulators: 8 soļi
Binārā līdz decimāldaļa kalkulators: Vienpadsmitās pakāpes datortehnikas jomā man bija jāizlemj par galīgo projektu. Sākumā es nezināju, ko gatavot, jo tajā bija jāiekļauj noteiktas aparatūras sastāvdaļas. Pēc dažām dienām mans klasesbiedrs man lika veikt projektu, kura pamatā ir četru bitu papildinājums
1A līdz 40A pašreizējais BOOST pārveidotājs līdz 1000 W līdzstrāvas motoram: 3 soļi
1A līdz 40A pašreizējais BOOST pārveidotājs līdz 1000 W līdzstrāvas motoram: Sveiki! Šajā videoklipā jūs uzzināsit, kā izveidot strāvas pastiprinātāja ķēdi jums ar lielu jaudu līdzstrāvas motoriem līdz 1000 W un 40 ampēriem ar tranzistoriem un centrālo krāna transformatoru. Lai gan, strāva pie izejas ir ļoti augsta, bet spriegums būs r
Binārā spēle: 9 soļi (ar attēliem)
Binārā spēle: Šī ir spēle, kuru izveidoju Tinkercad Circuits, lai uzzinātu bināros skaitļus. https://www.tinkercad.com/things/erDquXcpyW8Ja vēlaties sekot līdzi šai rokasgrāmatai un izveidot savu, failus un kodu var atrast manā github vietnē https://github.com/kee
Binārā slēdža spēle: 6 soļi
Binary Switch Game: Iedvesmojoties no Ben Heck's Hex Game Galu galā es spēlēju ar to klasē, lai paliktu nomodā. Jūs pārvērstat nejaušās denārijas (0-255) vai heksadecimālās (0-ff) vērtības ekrānā uz bināro, un tad mēs
Rokas spēle līdz interaktīvam lielam ekrānam: 10 soļi (ar attēliem)
Rokas spēle līdz interaktīvam lielam ekrānam: šī pamācība parāda, kā pārņemt vecās rokas spēles, ko mamma jums dāvāja, kad bijāt maziņš, un pārvērst to par liela mēroga spēli, ko var projicēt uz televizora un spēlēt vienlaikus vairākiem spēlētājiem. Šajā pamācībā tiks iekļauts: