Isi kandungan:
- Langkah 1: Menyiapkan Pembahagi Jam
- Langkah 2: Membuat Mesin Keadaan Terhad (FSM)
- Langkah 3: Memetakan Paparan Tujuh Segmen
- Langkah 4: Membuat Perbandingan
- Langkah 5: Menyiapkan Pemasa
- Langkah 6: Merancang Penjana Nombor Rawak Pseudo
- Langkah 7: Membuat Penukar
- Langkah 8: Menggabungkan Semuanya dalam Modul Permainan
- Langkah 9: Masalah Tambahan Yang Dialami
- Langkah 10: Fail Sumber dan Kekangan
Video: Permainan Pemadan Perduaan hingga Perpuluhan: 10 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Instruksional ini akan menunjukkan proses dan modul yang diperlukan untuk membuat permainan Binary to Decimal Matching kami. Dalam masa 60 saat, pengguna akan menerjemahkan dan memasukkan sebilangan besar nombor perpuluhan yang dihasilkan secara rawak pada paparan tujuh segmen menjadi binari dengan menukar suis dan menghantar dengan butang tekaan. Setelah selesai, skor akhir akan dipaparkan dan kemudian diset semula untuk dimainkan semula.
Memahami refleks binari dan cepat bermanfaat untuk dilakukan dengan baik, tetapi butang set semula disediakan sekiranya seseorang ingin mencuba lagi dengan serta-merta.
Langkah 1: Menyiapkan Pembahagi Jam
Tulang belakang keseluruhan projek ini berasal dari penyegerakan yang betul dari semua bahagian dalam alat ini. Mesin Keadaan Terhingga kami menggunakan jam dalaman, tetapi paparan dan pemasa tujuh segmen mesti menggunakan versi jam yang diubah.
"Jam baru" ini berasal dari membahagi jam dalaman dengan jangka masa yang diinginkan untuk mencapai frekuensi tertentu yang diperlukan untuk setiap komponen tertentu. Ini telah dilakukan di makmal sebelumnya dan dari pengalaman, kita tahu pemasa mempunyai digit "seseorang" hingga 0.1 Hz, dan digit "puluhan" adalah 1 Hz
Input: ClkIn, pembahagi (32 bit)
Keluaran: ClkOut
Langkah 2: Membuat Mesin Keadaan Terhad (FSM)
Dalam Mesin Keadaan Terhingga, kami memutuskan bahawa lima keadaan (Mula, Paparan, Periksa, Skor dan Akhir) diperlukan dengan lima input (mula, tetapkan semula, kira, sama, habis masa). Satu-satunya output dalam Mesin Negeri kami adalah nombor 3 bit yang menunjukkan keadaan pengguna (000, 001, 011, 101, 100) berkenaan dengan keadaan di bawah.
Ingat bahawa Mesin Keadaan Terhingga sebenarnya tidak membentuk fungsi di bawah, sebaliknya hanya memberitahu keadaan program dan apa. Apa yang sebenarnya berlaku ditentukan oleh modul teratas yang dijelaskan di bawah.
Negeri Mula (000)
Status Mula adalah di mana pengguna akan bermula sehingga input mula tinggi, ini juga keadaan yang akan dicapai setiap kali butang reset ditekan.
Keadaan Permainan (001)
State Game adalah permulaan permainan, di mana nombor rawak dihasilkan dan pengguna beralih suis untuk membuat input. Setelah butang teka ditekan, permainan akan dipindahkan ke Status Pemeriksaan.
Periksa Negeri (011)
Keadaan ini adalah tempat pembanding digunakan, yang akan membandingkan nilai input pengguna dan nombor yang dihasilkan secara rawak. Sekiranya penghantaran betul, nilai yang sama tinggi dan FSM pergi ke Negeri Skor; namun, jika pengiriman tidak betul, FSM kembali ke Status Paparan sehingga penyerahannya betul.
Status Pemeriksaan ini berlaku dengan cepat berbanding yang lain, kerana ini hanya berlaku selagi butang cek ditekan
Keadaan Markah (101)
Oleh kerana nilai yang sama tinggi, pengiriman betul. Dalam keadaan ini, nilai skor akan meningkat satu dan nombor baru akan dihasilkan untuk pengguna memasukkan. Nombor baru ini membawa kita kembali ke Mula Keadaan di mana pengguna sekali lagi akan menukar suis.
Negeri Akhir (100)
Setelah pemasa 60 saat habis, masukan tamat akan menjadi tinggi dan pengguna mencapai Status Akhir di mana skor akhir dipaparkan. Input set semula kemudian akan ditekan dan FSM bermula semula di Status Mula sekali lagi.
Input: Clk, rst, mula, kira, sama, habis masa
Keluaran: keadaan (3 bit)
Langkah 3: Memetakan Paparan Tujuh Segmen
Paparan Tujuh Segmen adalah bahagian penting dari keseluruhan projek kerana dua digit pertama di skrin digunakan sebagai output penjana nombor rawak, sementara dua digit terakhir adalah pemasa. Walaupun kami telah menerapkan contoh ini di makmal terakhir dalam hal mempunyai digit di layar, ia dipaparkan dalam heksadesimal. Untuk menyelesaikan masalah ini, kami menggunakan penukar dan pembahagi jam yang dijelaskan lebih lanjut di bawah.
Paparan menunjukkan semua 0 sehingga FSM memasuki keadaan permainan; namun, dalam keadaan akhir, paparan harus menunjukkan skor pengguna.
Oleh kerana kita menggunakan keempat-empat digit dari paparan tujuh segmen, kita perlu menelusuri setiap anod cukup cepat pada 300 Hz agar dapat dirasakan seperti selalu menyala.
Input: Clk, sevensegment
Keluaran: katod (7 bit), anod (4 bit)
Langkah 4: Membuat Perbandingan
Submodul ini digunakan di State Check dari segi perbandingannya dengan teka-teki input bit 7 bit dengan nilai perpuluhan sebenar.
Kami mempunyai pernyataan if yang menilai kedua input dan dua output bergantung pada sama ada nilai yang sama tinggi atau rendah. Sama pentingnya dengan modul ini, sejauh ini merupakan salah satu program yang lebih mudah untuk dirancang dalam projek ini.
Input: suis (8 bit), nombor (8 bit)
Keluaran: EQ
Langkah 5: Menyiapkan Pemasa
Pemasa kami pada dasarnya adalah dua kaunter berbeza yang meningkat dengan kadar yang berbeza. Satu kaunter dalam nilai "one", (paparan tujuh segmen pertama) dan satu kaunter untuk nilai "sepuluh" (digit kedua pada paparan tujuh segmen). Setiap digit didasarkan pada kelebihan jam, dan setelah penghitung mencapai 60 saat, time_out akan tinggi dan permainan akan berakhir dan kembali ke keadaan permulaan.
Input: Clk, nyatakan (3 bit), mulakan
Keluaran: Semasa (8 bit), tamat masa
Langkah 6: Merancang Penjana Nombor Rawak Pseudo
Kaedah alternatif lain untuk penjana nombor khusus untuk kes ini adalah dengan memiliki pembilang berulang dari 0-99 (dalam binari) yang mengeluarkan nombor yang dihitung ketika inputnya tinggi, kerana ini akan menghilangkan keperluan untuk menggunakan LFSR.
Nombor itu berubah setiap hujung jam dalaman yang meningkat (10 nano-saat) dan memutar semua 100 nombor dalam satu mikrodetik. Setiap kali pengguna menginginkan nombor baru dari penjana nombor, ia mengeluarkan nombor yang ada, Walaupun proses ini tidak sepenuhnya rawak, kebarangkalian untuk mencari output yang berkaitan dari proses ini cukup rendah untuk menjadi pseudo-random.
Input: Clk, changenum, sama
Keluaran: nombor (8 bit)
Langkah 7: Membuat Penukar
Komponen yang diperlukan adalah Penukar, yang kami gunakan untuk memaparkan nombor perpuluhan pada paparan tujuh segmen dan bukannya heksadesimal asal. Walaupun kedua-dua nombor berdasarkan nombor Binari 7 bit, kami membuat keseluruhan modul yang ditunjuk untuk menukar heksadesimal hingga perpuluhan.
Sebagai contoh, jika hasil akhir kami untuk skor adalah 0010001 (tujuh belas), paparan tujuh segmen akan menunjukkan nilai heksadesimal 11, bukannya nombor perpuluhan 17.
Input: Numin (8 bit)
Keluaran: Numout (8 bit)
Langkah 8: Menggabungkan Semuanya dalam Modul Permainan
Untuk komponen kami, kami menggunakan suis 0-6 yang diperlukan agar pengguna beralih, dengan tiga butang untuk bertindak sebagai input pengguna untuk memulakan, menetapkan semula, dan meneka. Komponen paparan dan jam tujuh segmen juga merupakan komponen yang telah kita lakukan dari makmal sebelumnya tetapi terpaksa diubah agar sesuai dengan projek ini.
Kami membahagikan projek ini kepada enam modul yang ditunjukkan di atas untuk menguraikan keseluruhan alat kepada banyak bahagian yang berfungsi, namun cara penyambungannya agak rumit dan ditunjukkan dari gambar kotak hitam yang dilampirkan.
Semasa permainan sedang berlangsung, 7 LED menyala untuk memberi tahu pengguna yang beralih untuk digunakan, dan ketika permainan berakhir, kami juga memprogram LED untuk menyala
Input: suis (8 bit), Clk, set semula, mulakan, tekaan
Keluaran: katod (7 bit), anod (4 bit), LED (7 bit)
Langkah 9: Masalah Tambahan Yang Dialami
Walaupun hanya tujuh suis yang digunakan dalam permainan ini, kod itu ditetapkan sebagai nombor 8 bit. Kami melakukan ini untuk mempunyai pembanding yang lebih mudah yang akan membandingkan 8 bit ini dengan nombor 8 bit yang kami hasilkan dari penjana nombor rawak.
Skor juga memberi kami sedikit masalah pada awalnya kerana kami menetapkannya untuk meningkatkan satu mata ketika FSM berada dalam keadaan skor; namun apa yang berlaku adalah skor terus meningkat selagi keadaan berlangsung, memberi kita skor tinggi yang tidak masuk akal yang tidak dapat kita hadapi. Kami memperbaikinya dengan menambahkan isyarat denyut yang diselaraskan dengan tepi jam yang meningkat, seperti yang terlihat dalam kod pada langkah 8.
Akhirnya, pemasa memerlukan banyak masa untuk melakukan debug kerana akan memesongkan paparan tujuh segmen kami ketika ia mengira ke bawah, jadi kami harus mengubahnya dari menghitung mundur dari 60 ke menghitung dari 0.
Langkah 10: Fail Sumber dan Kekangan
Sekiranya anda lebih suka menarik dari fail sumber kami daripada membuat sendiri, inilah dia. Juga, fail kekangan disertakan.
Disyorkan:
Projek Akhir CPE 133 Perpuluhan hingga Perduaan: 5 Langkah
CPE 133 Final Project Decimal to Binary: Binary Numbers adalah salah satu perkara pertama yang terlintas di fikiran ketika memikirkan logik digital. Walau bagaimanapun, Nombor Binari boleh menjadi konsep yang sukar bagi mereka yang baru. Projek ini akan membantu mereka yang baru dan berpengalaman dengan nombor binari dan
Cara Membahagi Perpuluhan- EDP 279: 5 Langkah
Cara Membahagi Perpuluhan- EDP 279: Cara Membahagi Nombor Dengan Perpuluhan
Permainan Dinosaur Hack Permainan Google Chrome: 9 Langkah
Permainan Dinosaur Hack Google Chrome Games: chrome t-rex run adalah permainan yang sangat menyeronokkan. Di sini kita akan menjadikannya lebih menghiburkan dengan menggunakan Arduino. Permainan dino ini tidak akan muncul di laman sambungan internet. Anda juga boleh melakukannya dengan menggunakan raspberry pi di sini kita membandingkan kedua papan secara terperinci Arduino
Pengawal Permainan DIY Berasaskan Arduino - Pengawal Permainan Arduino PS2 - Bermain Tekken Dengan Gamepad Arduino DIY: 7 Langkah
Pengawal Permainan DIY Berasaskan Arduino | Pengawal Permainan Arduino PS2 | Bermain Tekken Dengan Gamepad Arduino DIY: Hai kawan-kawan, bermain permainan selalu menyeronokkan tetapi bermain dengan permainan peribadi DIY Controller anda lebih menggembirakan. Oleh itu, kami akan menjadikan Pengawal permainan menggunakan arduino pro micro dalam arahan ini
Kalkulator Perduaan hingga Perpuluhan: 8 Langkah
Kalkulator Binari hingga Perpuluhan: Untuk kejuruteraan komputer kelas sebelas, saya terpaksa memutuskan projek akhir. Pada mulanya saya tidak tahu membuat apa kerana mesti memasukkan komponen perkakasan tertentu. Selepas beberapa hari, rakan sekelas saya menyuruh saya membuat projek berdasarkan empat bit tambahan