Buat Paparan Debug untuk Mikrokontroller: 6 Langkah

Buat Paparan Debug untuk Mikrokontroller: 6 Langkah

Isi kandungan:

Anonim

Paparan ini datang sangat berguna jika anda bekerja dengan fungsi ADC pengawal mikro.

Ia hanya memerlukan dua pin untuk mengawal paparan (tiga jika anda ingin mengawal selak juga). Dengan dua tujuh segmen ia boleh memaparkan sehingga 0xFF sebagai hex. Itulah julat 8bit keseluruhan, apa yang paling banyak digunakan variable-width untuk uCs kecil.

Saya membinanya kerana aplikasi akhir tidak mempunyai paparan dan saya ingin tahu apa yang berlaku sebelum saya selesai.

Anda memerlukan dua daftar pergeseran 74HC959, dua paparan tujuh segmen dan 14 (16) perintang yang anda perlukan 16 jika anda ingin menggunakan titik yang tidak dilaksanakan dalam perisian. Tetapi dengan menggunakan titik-titik itu akan memperluaskan nilai paparan kepada 10bit atau 0-1027. Saya serahkan kepada anda untuk memikirkannya.

Bekalan:

Langkah 1: Skema ini

Kami menggunakan dua shift 74HC595 untuk mendaftarkan tujuh paparan segmen. Sama ada anda menggunakan anod biasa atau katod biasa 7-segmen anda perlu menyesuaikan litar. Saya menggunakan katod biasa. Apa yang bermakna setiap segmen adalah satu LED hijau dan katod semua LED disambungkan bersama-sama. (Pins 3 dan 8 paparan 7-segmen)

Daftar peralihan berfungsi dengan cara ini:

Setiap kali anda menggunakan denyutan pada input anjakan, keadaan semasa pin input bersiri dipindahkan ke memori 74HC595. Setiap kali nadi pada input selak tiba keadaan memori dalaman digunakan untuk memacu output.

Selepas 8 pusingan peralihan masukan pertama dipindahkan di pin9 sekali lagi dan boleh digunakan sebagai masukan kepada 74HC595 yang lain. Ini juga dikenali sebagai rantai daisy.

74HC595 boleh memandu hingga 70mA secara keseluruhan, jadi kita perlu menyesuaikan resistor dengan cara bahawa semasa melalui setiap segmen LED kekal di bawah 9mA, iaitu kira-kira 470 Ohm untuk 5V dan paparan yang digunakan.

Langkah 2: Senarai Shift 75HC595

Pandangan ke gambar memberitahu anda pin mana yang perlu anda sambungkan.

Pins dikira anti jam bijak bermula dari tanda pada IC jika anda melihatnya dari atas.

Sambungkan pin 1 - 7 dan pin 15 ke pin 7 segmen.

Pin 8 dan 13 mesti disambungkan ke tanah (terminal GND atau negativ bateri)

Pin 9 disambungkan kepada pin 14 daripada IC seterusnya.

Pin 10 dan pin 16 mesti disambungkan ke voltan bekalan (VCC atau terminal positif bateri)

Pin 11, 12 dan 14 adalah antara muka yang akan didorong oleh mikropengawal, sambungkan ini kepada pinheader tiga pin untuk interfacing luaran.

Langkah 3: Membina Paparan

Walaupun ia mungkin dapat mengetuk papan litar tersuai, saya memilih untuk membina semua perkara pada papan roti dengan dawai tembaga nipis.

Kawat tembaga ini disalut, tetapi salutan boleh dibakar dengan sedikit timah cair. Ia sangat mudah untuk membuat sambungan dengannya. Hanya timah satu hujung, solder ke pin dan kemudian stretch ke pin lain dan membakar pengasingan di mana anda ingin solder itu. Kemudian solder ke pin dan potong yang lain. A besi pematerian 30W seperti ini dari Pengrajin adalah lebih daripada cukup untuk pekerjaan itu.

Saya menggunakan 1206 SMD resistor kecil, kerana ini sesuai dengan baik di bawah tujuh memaparkan segmen.

Tetapi selepas semua, anda perlu membuat papan sendiri dan anda juga boleh mengambil sebarang perintang yang anda suka.

Langkah 4: Cari Perintah Segmen

Akhirnya kita harus menulis fungsi untuk memaparkan sesuatu yang bermakna.

Masalah utama sekarang ialah mencari urutan kanan - urutan kawalan. Pada mulanya cuba untuk menolak satu 1 melalui keseluruhan daftar anjakan.

Memohon tinggi kepada input bersiri dan nadi peralihan satu masa. Sekarang denyut selak satu kali dan lihat segmen mana yang menyala.

Jika anda kemudian tekan butang shift dan selak lagi, segmen seterusnya akan menyala dan sebagainya.

Akhirnya anda mempunyai urutan semua segmen dan anda boleh memindahkannya ke nombor binari.

Langkah 5: Tulis Kod

Saya mahu menggunakan paparan dengan mikrogator AVR saya. Jadi saya menulis fail *.h yang boleh dimasukkan dalam mana-mana projek.

Sekiranya anda menghidupkan papan dengan berbeza, anda mungkin perlu menyesuaikan susunan segmen kawalan.

Untuk menggunakannya, anda perlu melaraskan pin-defines dalam fail debug.h (12 baris pertama).

Dalam aplikasi utama, anda perlu menambah baris berikut:

#include "debug.h"

initdebug (); // Ini memulakan port Output yang dinyatakan dalam debug.h

Kemudian anda boleh memaparkan pembolehubah 8bit dengan hanya memanggil fungsi debug dengannya. katakan pembolehubah dipanggil kaunter, maka nilai semasa kaunter dipaparkan oleh:

debug (kaunter);

Petua:

  • Tambah beberapa masa tunda selepas panggilan debug () mempunyai masa untuk membaca nilai.
  • Apabila anda menyambung shift dan selak bersama-sama, hanya tentukan dua port untuk pin yang sama. Setiap kali peralihan dicetuskan ia juga melepaskan keadaan semasa, ini bermakna paparan flicker semasa shiftregisters dimuatkan. Sekiranya anda melakukan ini dengan pantas berbanding dengan masa yang anda memaklumkan paparan itu, ia o.k.
  • Untuk memaparkan nilai 16bit sama ada untuk membahagikannya dengan 256 dan memaparkan hasilnya atau memisahkan bait tinggi dan bait rendah dan memaparkannya satu demi satu dengan brek kecil di antara.

Langkah 6: Uji Ia

Untuk menguji paparan, ia seolah-olah sesuai untuk menggunakan penyesuai papan lebar attiny2313 yang saya terbitkan dalam pengajaran ini:

www.instructables.com/id/Make-a-breadboard-adapter-for-your-AVR-microcontroller

Program video terbenam hanya mengira dari 0 hingga 0xFF dan kembali lagi.

Video itu: