Isi kandungan:

Jam Penggera Basys 3: 9 Langkah
Jam Penggera Basys 3: 9 Langkah

Video: Jam Penggera Basys 3: 9 Langkah

Video: Jam Penggera Basys 3: 9 Langkah
Video: Ujian Simulasi Mengajar Calon Guru Penggerak 2024, November
Anonim
Jam Penggera Basys 3
Jam Penggera Basys 3

Projek kami membuat jam penggera menggunakan papan Basys 3 FPGA, Arduino, dan papan pemandu pembesar suara. Pengguna dapat memasukkan masa semasa ke papan dengan menggunakan 11 suis input pada Basys 3 dan mengunci nilainya menggunakan butang tengah di papan. Pengguna kemudian boleh memasukkan waktu penggera menggunakan suis yang sama tetapi tekan butang kiri untuk mengunci waktu penggera. Sekiranya waktu yang salah dimasukkan, butang reset (butang atas) dapat ditekan dan waktu jam dan waktu penggera sekarang akan ditetapkan ke 00:00. Pengguna kemudian boleh memulakan jam menggunakan suis paling kiri dan menghidupkan penggera menggunakan suis seterusnya. Apabila penggera dihidupkan, jam penggera akan mengeluarkan suara ketika waktu jam dan menetapkan waktu penggera sesuai.

Langkah 1: Rajah Kotak Hitam

Rajah Kotak Hitam
Rajah Kotak Hitam
Rajah Kotak Hitam
Rajah Kotak Hitam

Kami memulakan projek kami dengan melukis gambar rajah kotak hitam untuk memvisualisasikan input dan output yang diperlukan dalam program kami. Input berikut untuk program kami seperti input 5-bit (Hour_in) diinisialisasi untuk menentukan waktu 24 jam, input 6-bit (Min_in) untuk memaparkan hingga 60 minit, butang reset (Rst_b) untuk membolehkan pengguna ubah input masa mereka, input 1-bit (alm_en) yang memuatkan input penggera, input 1-bit (alarm_sw) untuk mematikan jam penggera ketika diaktifkan, input 1-bit (e_sec) yang mengawal ketika penghitung detik akan berjalan, input 1-bit (Led_btn) yang menetapkan masa semasa, dan terakhir input 1-bit (clk) yang mengawal masa yang ditunjukkan oleh papan Basys 3. Outputnya adalah (alm_on) yang mengirimkan isyarat ke Arduino, output sseg yang memaparkan waktu input pada Basys 3, dan output anode yang mengawal di mana input ditampilkan pada paparan tujuh segmen.

Langkah 2: Jam perlahan

Jam perlahan
Jam perlahan

Fail jam lambat atau jam_div2 menghasilkan jam yang frekuensinya 2 hz. Sekiranya kita memasukkan jam ini ke penghitung detik kita, nilai detik akan meningkat satu per detik. Jam perlahan digunakan untuk membuat isyarat jam yang boleh dipercayai yang berubah dari rendah ke tinggi sekali sesaat.

Langkah 3: Kaunter

Kaunter
Kaunter
Kaunter
Kaunter

Kaunter Komponen (minit dan saat):

Fungsi asas minit dan saat adalah bahawa mereka adalah pembilang. Pembilang minit mengambil input (Vin) yang merupakan isyarat dari input (Min_in), dan kemudian dikira sehingga mencapai input yang diinginkan yang dimasukkan. Detik hanya memerlukan input suis (e_Sec) kerana tidak dapat ditampilkan pada tujuh segmen, dan dikira di latar belakang apabila suis tinggi '1'. Mereka berdua mengeluarkan nilai ke (Qout), dan kemudian disimpan di (data) yang mengirimkannya ke SSEG yang dilakukan dalam file penghubung. Juga, apabila minit dan saat mencapai nilai 59, ia akan diset semula, dan outputnya adalah '1' untuk menambah minit / jam. Ia juga dapat dipetakan dengan reset (rst_b) ke input mereka.

Langkah 4: Jam Kaunter

Jam Kaunter
Jam Kaunter
Jam Kaunter
Jam Kaunter

Jam Kaunter Komponen

Begitu juga dengan penghitung komponen minit dan saat komponen jam mengambil input seperti (Vin) yang merupakan isyarat dari menghubungkan input fail (Hour_in), dan mempunyai output yang dihubungkan dengan cara yang sama pada minit dan saat. Apabila nilai hitungan jam mencapai 24 00, ia akan ditetapkan semula menjadi 00 00.

Langkah 5: Penggera

Penggera
Penggera
Penggera
Penggera
Penggera
Penggera
Penggera
Penggera

Fail.vhd penggera terdiri daripada d-flip-flop yang merupakan peranti penyimpanan yang dapat menyimpan data digital. Fail penggera digunakan untuk menyimpan waktu penggera akan diaktifkan. Untuk menyimpan data jam (input 5 bit) dan minit (input 6 bit) kita mesti memadamkan 11 d-flip-flop dalam fail penggera kita. Untuk melakukan ini, kita mesti terlebih dahulu mengimport logik yang mengatur operasi d-flip-flop dan memetakan komponennya. Setiap 11 d-flip-flop akan menyimpan satu bit data dari input dan membolehkan data dipetakan ke output fail penggera. Oleh kerana d-flip-flops menyimpan data, kita dapat menggunakan data tersebut pada suatu saat kemudian walaupun suis input telah diubah.

Langkah 6: Pemacu Paparan Segmen Tujuh Sejagat

Pemacu Paparan Segmen Universal Tujuh
Pemacu Paparan Segmen Universal Tujuh
Pemacu Paparan Segmen Universal Tujuh
Pemacu Paparan Segmen Universal Tujuh
Pemacu Paparan Segmen Universal Tujuh
Pemacu Paparan Segmen Universal Tujuh

Pemacu paparan tujuh segmen universal menerima input dari set jam dan jam dan dapat mengeluarkannya ke paparan tujuh segmen di papan. Pemandu dapat mengeluarkan dua kiraan yang berasingan di papan pada satu masa. Kami menggunakan fungsi ini untuk memaparkan waktu jam dan waktu minit secara berasingan. Paparan tujuh segmen hanya dapat mengaktifkan satu nombor pada satu masa kerana fail sseg mesti menggunakan multiplexing untuk memaparkan semua nombor waktu secara serentak. Isyarat jam papan dimasukkan ke dalam sseg untuk memastikan masa yang tepat untuk multiplexing. Pengekod perpuluhan berkod binari ke binari diperlukan untuk menukar input ke fail ke bentuk yang boleh dihasilkan ke paparan tujuh segmen. Hasil akhir fail sseg dipetakan ke paparan tujuh segmen dan masa yang betul ditunjukkan pada paparan.

Langkah 7: Pautkan Fail

Pautan Fail
Pautan Fail
Pautan Fail
Pautan Fail
Pautan Fail
Pautan Fail

Fail pautan menghubungkan semua aspek lain dari program dan memetakan isyarat ke lokasi yang betul. Setiap komponen dibawa masuk dan dimasukkan dalam fail. Isyarat digunakan untuk memindahkan data dari satu komponen ke komponen yang lain. Pemetaan port akan mengikuti rajah kotak hitam yang disenaraikan di atas. Fail pautan juga memegang logik yang mengatur ketika penggera diaktifkan. Sebahagian besar projek akan selesai pada masa ini. Pekerjaan yang tinggal adalah mengarahkan setiap isyarat ke lokasi yang sesuai.

Langkah 8: Arduino

Arduino
Arduino
Arduino
Arduino

Arduino digunakan untuk mengaktifkan pembesar suara serta mengawal nada dan jangka masa nota dimainkan melalui pembesar suara. Arduino membaca isyarat digital dari papan Basys 3. Apabila isyarat ini tinggi, arduino akan mengeluarkan isyarat PWM yang mengawal nada dan tempoh penggera. Isyarat output dari arduino menyambung ke isyarat input papan pemacu pembesar suara yang meningkatkan kelantangan pembesar suara. Arduino melakukan proses ini berulang dengan cepat berulang kali sesaat.

Langkah 9: Laluan Kabel

Laluan Kabel
Laluan Kabel

Papan arduino dan Basys 3 mesti disambungkan secara fizikal untuk memindahkan isyarat antara papan. Kabel pertama untuk wayar adalah dari pin ground JA PMOD Basys 3 hingga pin ground arduino. Seterusnya sambungkan wayar dari pin 1 JA PMOD dari Basys 3 ke pin digital 7 dari arduino. Seterusnya, sambungkan dua pin ground dari arduino ke pin ground driver pembesar suara. Seterusnya, sambungkan output 3.3 V dari arduino ke pin Vcc pemacu pembesar suara. Seterusnya, sambungkan pin digital 9 arduino ke pin In driver pembesar suara.

Disyorkan: