Site içi Arama

Ara

Programlanabilir 0-9999 İleri LCD Göstergeli Alarmlı Sayıcı

Mehmet Yılmaz - 11.11.2007

Bu devre, daha önce hazırladığım “Jal ile Programlı Pic 16F628'li LCD Göstergeli 0-999999 İleri Sayıcı” başlıklı yazının geliştirilmiş halidir. Devre 0000-9999 ileri sayıcı olarak düzenlenmiş ve programlama yapılabilir hale getirilerek sayıcı değerleri ile program değerleri aynı olduğu anda alarm çıkışı verebilecek şekilde dizayn edilmiştir.

Programlama:

Devre 2 buton ile ayarlanacak. PIC16F84'ün 17 nolu ucuna bağlı olan “HANE” isimli buton ile ayarlanacak olan hane seçilmektedir. Seçilen hanenin önünde “>” işareti bulunmaktadır. Bu “>” işareti ayar yapılacak olan haneyi işaret etmektedir. PIC16F84'ün 18 nolu ucuna bağlı olan “HANE SAY” isimli ikinci buton ile de seçilen hane 0-9 arası sayım yapılmaktadır. Ayarlanacak olan hane seçilmek istendiğinde hane seçim butonuna basıldığında hane büyük haneye (sola) doğru kaymaktadır. Ayarlanacak alarm değeri göstergede dört hane olarak gösterilmektedir. Bu gösterilen değer içinde ayarlanacak olan hanenin başında ok şeklinde köşeli parantez “>” ile okun bulunduğu hane ayar butonuna basıldıkça birer birer artmaktadır. Programlama yapmak için butonlara basılı tutarak ayarlamak gerekiyor. Yarım saniyede bir sayıyı arttırır veya haneyi değiştirir.

Program “0000” (sıfır) ise alarm yapılmamış sayılacak ve göstergenin sonunda “+” işareti olacak, program yapıldığında bu “+” işareti kalkacaktır.

Sayma İşlemi:

Gösterge olarak 2 satırlık 16 karakterlik LCD ekran kullanılmıştır. Birinci satırda “SAYICI: 0000” şeklinde sayım bölümü gösterilmektedir. Bu haliyle “0000-9999” ileri sayım yapılabilmektedir.

Devrede sayım işlemini yapmak için PIC16F84'ün 3 nolu TIMER-0 ucu kullanılmaktadır. Bu uca dışarıdan saymak amaçlı lojik sinyal girilebileceği gibi devrenin şemasında gösterildiği gibi butonda kullanılabilir. Buton ile devre yapıladığında, “SAY” butonuna bastıkça değeri 1 artarak büyümektedir. Devreye sayma amaçlı lojik sinyal girilirse buton (SW4) ve bağlı direnç (R2 22K) birlikte kullanılabilir.

Sayıcıları (sayılan değeri) sıfırlamak için de buton kullanılmaktadır. “SIFIRLA” adını taşıyan ve PIC16F84'ün 1 nolu ucunda bağlı olan bu butona basınca sayıcılar sıfırlanmakta ve alarm iptal edilmektedir.

Bütün butonlar giriş ve +5 volta bağlanacak, girişten şaseye direnç atılacaktır. Bu direnç 22K değerinde olabilir. Ayrıca bu girişlere ark önleme amaçlı kondansatör bağlanmasında fayda vardır. Alarm çıkısı, 16F84'ün RB7, 13 nolu ucundan yapılmaktadır. Alarm çıkışına sürücü devre yapılarak röle veya diğer alarm devreleri bağlanabilir.

Devrenin Yapısı:

Devredenin PIC16F84 mikro kontrolör yazılımında sayıcı olarak TIMER-0 zamanlayıcı/sayıcı'sı kullanılmıştır. Bu zamanlayıcı/sayıcı özelliklerine kısaca bakacak olursak;

TMR0'ın bu özelliklerini kontrol ederek düzenlemek için OPTION saklayıcısı kullanılır. Gerekli bilgiler için PIC16F84 katalog bilgilerinden faydalanılabilir. Programda kullanılan OPTION değeri programın çalışmasını düzenlemek amacıyla 10101000 olarak seçilmiştir. Bit7'den itibaren bit1'e doğru tanımlayacak olursak,

1 = Port B'deki pull-up dirençleri iptal.
0 = kesme inen kenarda oluşsun.
1 = RA4/T0CKI ucundan girilen saat işareti.
0 = RA4/T0CKI işaretin yükselen kenarından sayma değeri arttırılır.
1 = Ön bölücü WDT için çalışır.
000 = TMR0 oranı 1:2

özelliklerini seçmiş olduk. Burada kullanımda faydalı olacağını düşündüğümüz bir noktayı da izah etmekte yarar var. Bu devremizde, giren palsın yükselen kenarından sayma işlemi yapılmaktadır. Yani butonun basma anında sayım yapılmaktadır. Sayma işlemini düşen kenardan yapmak gerektiğinde OPTION değerindeki bit4'ün 0 olarak atanan değerini 1 olarak atamak gerekmektedir. Bu durumda OPTION değeri 10111000 olacaktır. Böylece butonun bırakıldığı anında sayma işlemi gerçekleşir.

Devre 5 voltluk besleme ile çalışmaktadır.

Devrede kullanılan yazılım JAL ile hazırlanmıştır. JAL için gerekli kaynaklar jal.sourceforge.net web sitesinde geliştirilmektedir. Türkçe olarak www.projearsivim.com adresinden faydalanılabilir.

Devrenin Şeması:

Programlanabilir 0-9999 İleri LCD Göstergeli Alarmlı Sayıcı

Şema: Programlı İleri Sayıcı Devre Şeması (13.11.2007 tarihinde güncellendi)

Devrenin Çalışma Görüntüleri:

Devrenin ilk çalışma ve programlanmamış görüntüsü:

Devrenin programlanmış görüntüsü:

Devrenin alarm çalışmış görüntüsü:

Malzeme Listesi:

U1: PIC16F84
LCD1: 2X16 LCD Ekran
X1: 4MHz kristal
D1: LED
SW1-SW4: Buton
C1,C2: 22pF
C3: 220nF
R1: 1K
R2-R5: 22K
R6: 470
RV1: 10K trimpot
Ayrıca, şemada gösterilmemesine rağmen, devrenin besleme hattına 100nF değerinde filtre amaçlı kondansatör ilave edilmelidir. Yine devrede bulunan R2-R5 22K dirençlerine paralel olarak 100nF kutupsuz kondansatör butonlarda oluşabilecek arkları önlemeye yönelik olarak ilave edilebilir.

Ekler:

Windows kullanıcıları için, devrenin JAL ile hazırlanmış programını sıkıştırılmış zipli dosya olarak indirmek için tıklayınız.

Windows kullanıcıları için, devrenin HEX dosyasını sıkıştırılmış zipli dosya olarak indirmek için tıklayınız.

Linux kullanıcıları için, devrenin JAL ile hazırlanmış programını sıkıştırılmış tar.gz dosya olarak indirmek için tıklayınız.

Linux kullanıcıları için, devrenin HEX dosyasını sıkıştırılmış tar.gz dosya olarak indirmek için tıklayınız.

Notlar:

Adana'da dünyaya geldi. Televizyon tamirciliğınde çırak olarak erken dönemde iş hayatına başladı. Daha sonraları Adana ve Ankara'da imalat, bilgisayar ve danışmanlık sektöründe iş hayatına devam etti. Şu anda kendisine ait işyerinde çalışmalarına devam etmektedir.
Web adresi: www.teknimer.com
E-posta: mehmet@teknimer.com
Sayfa Etiketleri:16F84 (9) LCD (8) Sayıcı (10)
İçerik Yan Blok
Konular
Tasarım: Teknimer Teknoloji
Yukarı