Mikrodenetleyiciler için Hata Ayıklama Gösterimi Yapın: 6 Adım

Mikrodenetleyiciler için Hata Ayıklama Gösterimi Yapın: 6 Adım

İçindekiler:

Anonim

Mikro denetleyicilerin ADC işleviyle çalışıyorsanız bu ekran çok kullanışlı olur.

Ekranı kontrol etmek için sadece iki pime ihtiyaç var (eğer mandalı kontrol etmek istiyorsanız üçü). İki yedi segment ile, altıgen olarak 0xFF'ye kadar gösterebilir. Bu, tüm 8 bitlik aralıktır, küçük uC'ler için en çok kullanılan değişken genişliktir.

Yaptım çünkü son uygulamanın bir ekranı yok ve bitmeden önce neler olduğunu bilmek istedim.

İki 74HC959 vardiya kaydına, iki yedi bölümlü ekrana ve 14 (16) rezistöre ihtiyacınız var. Yazılımda uygulanmayan noktaları kullanmak istiyorsanız, 16'ya ihtiyacınız var. Ancak, noktaların kullanılması görüntülenebilir değerleri 10 bit veya 0-1027 olarak genişletecektir. Bunu anlamak için size bırakıyorum.

Gereçler:

1. Adım: Şematik

Yedi bölümlü ekranlara arayüz oluşturmak için iki adet 74HC595 vardiya yazıcısı kullanıyoruz. Ortak anot veya ortak katot 7-segment kullanıp kullanmadığınızı, devreyi ayarlamanız gerekir. Ortak katotlar kullandım. Bu, her bir segmentin bir yeşil LED olduğu ve tüm LED'lerin katotlarının birbirine bağlı olduğu anlamına gelir. (7 segmentli ekranın 3 ve 8 numaralı iğneleri)

Vardiya kayıtları şu şekilde çalışır:

Vites girişine bir darbe uyguladığınızda, seri giriş piminin mevcut durumu 74HC595'in hafızasına kaydırılır. Mandal girişindeki bir darbe her geldiğinde, çıkışları sürmek için dahili hafızanın durumuna ulaşılır.

8 vardiya döngüsünden sonra, ilk giriş tekrar pin9'da kaydırılır ve başka bir 74HC595'e giriş olarak kullanılabilir. Buna papatya zinciri de denir.

74HC595 toplamda 70mA'ya kadar sürebilir, bu nedenle dirençleri her bir LED segmentindeki akımın 9VA'nın altında kalacağı şekilde ayarlamalıyız, bu 5V için yaklaşık 470 Ohm ve kullanılan ekranlar.

Adım 2: Kaydırma Kaydı 75HC595

Resme bakmanız, hangi pinleri bağlamanız gerektiğini gösterir.

Pimler, üstten bakarsanız, IC üzerindeki işaretten başlayarak saat yönünün tersine sayılır.

Pim 1 - 7'yi ve pim 15'i 7 parçanın pimlerine bağlayın.

Pim 8 ve 13 toprağa bağlanmalıdır (GND veya akünün negatif terminali)

Pim 9, bir sonraki IC'nin pimine 14 bağlanmaktadır.

Pim 10 ve pim 16, besleme voltajına bağlanmalıdır (VCC veya pozitif akü terminali)

Pim 11, 12 ve 14, mikrodenetleyici tarafından sürülen arayüzdür, bunları harici arabirim için üç pimli pinheader'a bağlayın.

Adım 3: Ekranı Oluştur

Özel bir devre kartı kazmak mümkün olsa da, her şeyi breadboard üzerine ince bakır tel ile kurmayı seçtim.

Bu bakır tel kaplanır, ancak kaplama bir miktar erimiş teneke ile yanabilir. Onunla bağlantı kurmak çok kolaydır. Sadece bir ucu kalayın, pime lehimleyin ve diğer pime gerin ve lehimleme yapmak istediğiniz yalıtımı yakın. Sonra pime lehimleyin ve gerisini kesin. Ustadan böyle bir 30W havya bu iş için fazlasıyla yeterli.

Küçük 1206 SMD dirençleri kullandım, çünkü bunlar yedi bölümlü ekranların altına çok uyuyordu.

Ancak sonuçta, tahtayı kendiniz oluşturmalısınız ve tabii ki istediğiniz herhangi bir direnci de alabilirsiniz.

4. Adım: Segment Siparişini Bulun

Sonunda, anlamlı bir şey göstermek için işlevleri yazmak zorundayız.

Asıl sorun şimdi doğru segmenti - kontrol dizisini bulmaktır. İlk önce tüm vardiya kayıt defterinden 1 tane itmeye çalışın.

Seri girişe bir yüksek uygulayın ve vardiyayı bir kez vurun. Şimdi mandalı bir kez palsleyin ve hangi segmentlerin yandığını görün.

Sonra vites değiştirme ve mandallama düğmesine tekrar basarsanız, bir sonraki bölüm yanar ve böyle devam eder.

Sonunda, tüm segmentlerin sırasına sahipsiniz ve bunları ikili sayılara aktarabilirsiniz.

Adım 5: Kodu Yaz

Ekranı AVR mikrodenetleyicilerimle kullanmak istedim. Bu yüzden herhangi bir projeye dahil edilebilecek bir *.h dosyası yazdım.

Tahtayı farklı şekilde kabloladıysanız, segmentcontrol dizisini ayarlamanız gerekebilir.

Kullanmak için, debug.h dosyasındaki pin tanımlarını ayarlamanız gerekir (ilk 12 satır).

Ana uygulamada aşağıdaki satırları eklemeniz gerekir:

#include "debug.h"

initdebug (); // Bu, debug.h dosyasında belirtilen Output portlarını başlatır.

Ardından herhangi bir 8bit değişkeni sadece hata ayıklama işlevini çağırarak görüntüleyebilirsiniz. değişkene sayaç denir, ardından sayacın geçerli değeri şu şekilde gösterilir:

ayıklama (karşı);

İpuçları:

  • Değeri okumak için zamana sahip olmak için debug () çağrısından sonra biraz gecikme süresi ekleyin.
  • Vites bağladığınızda ve mandalları birbirine bağladığınızda, sadece aynı pin için iki bağlantı noktası tanımlayın. Vardiyayı her tetiklediğinde mevcut durumu da kapattı, bu da vardiya kayıtları yüklenirken ekranın titremesi anlamına geliyor. Bunu hızlı bir şekilde yaparsanız, ekranın kalmasına izin verdiğiniz zamana kıyasla tamam.
  • 16 bitlik bir değeri görüntülemek için ya bunu 256'ya bölün ve sonucu görüntüleyin ya da yüksek bayt ve düşük baytı ayırın ve aralarında küçük bir frenle birbiri ardına gösterin.

Adım 6: Test Et

Ekranı test etmek için bu talimatta yayınladığım attiny2313 breadboard adaptörünü kullanmak ideal görünüyor:

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

Gömülü videonun programı sadece 0'dan 0xFF'ye kadar sayıyor ve tekrar geri geliyor.

Video: