Site içi Arama

Ara

Jal ile Programlı Pic 16F628 li LCD Göstergeli 0-999999 İleri Sayıcı

Mehmet Yılmaz - 25.09.2007

Bu devre LCD ekranlı 0-999999 tur sayma işlemlerinde kullanılmak üzere tasarlanmıştır. İleri doğru sayma işlemini gerçekleştirir. Sayım aralığı yeterince geniştir. 0'dan başlayarak 999999'a kadar yani 1 milyona kadar sayıma ihtiyaç duyulan yerlerde kullanılabilir. Devrenin JAL ile yapılan programında gerekli düzenlemeler yapılarak bu aralık daha da arttırılabileceği gibi azaltılabilir de. Devre donanımsal olarak PIC 16F628 kullanılarak tasarlandığından dahili kristal kullanılmış ve malzeme sayısı olabilecek en az seviyede tutulmuştur.

Devrenin çalışması ve yapısı:

Devre temel olarak 1 adet PIC16F628, 1 adet LCD ekran ve sayımı (aynı zamanda PIC16F628'i) resetlemek amacıyla RESET butonundan oluşmaktadır. Bu minimum donanım yapısıyla devre girişine bağlanan lojik palsları sorunsuz olarak saymaktadır. Girişe uyguladığımız palsların frekans değerleri itibariyle 75 Hz frekansa kadar sorunsuz sayma işlemini gerçekleştirmiştir. 100Hz vaya daha yukarısındaki frekansta, saymada hatalar meydana gelmiş ve yanlış değerleri göstermeye başlamıştır. Ama yine de bizim tavsiyemiz uygulanacak frekansın 50 Hz'i geçmemesidir. Sayıcı devrenin girişine buton veya anahtar gibi kontak yapma özellikleri olan malzemeler kullanılırsa, bu malzemelerin çalışması esnasında oluşacak arkları söndürmeye yönelik herhangi bir yazılımsal veya donanımsal çalışma yapılmamıştır. Ark yapan malzemeler kullanılacaksa, girişe www.teknomerkez.net/makale.asp?konu=194 adresinde bulunan sayıcı devresinin CMOS 4093 NAND kapılarıyla gerçekleştirilen bölümü kullanılabilir. Yapılan testlerde kullanılan buton ve direncin kondansatörlerle desteklenmesi büyük ölçüde yeterli olmuştur fakat sorunu çözmekte yetersizlikleri görülmüştür. Devrede kullanılan LCD gösterge, iki yollu 32 karakter olarak kullanılmıştır. 16X2 LCD ekranlarda kullanılabilir. RESET butonu ise PIC16F628 mikroişlemcilsini ve sayılan değerleri sıfırlamak amacıyla kullanılmaktadır.

Devredenin PIC16F628 mikrokontrolö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 PIC16F628 katalog bilgilerinden faydalanılabilir. Programda kullanılan OPTION değeri programın çalışmasını düzenlemek amacıyla 10111000 olarak seçilmiştir. Bit7'den itibaren bit1'e doğru tanımlayacak olursak,


ö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 inen kenarından sayma işlemi yapılmaktadır. Yani butonun bırakma anında sayım yapılmaktadır. Sayma işlemini yükselen kenardan yapmak gerektiğinde OPTION değerindeki bit4'ün 1 olarak atanan değerini 0 olarak atamak gerekmektedir. Bu durumda OPTION değeri 10101000 olacaktır. Böylece butona basıldığı anda sayma işlemi gerçekleşir.

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ı:

Şekil 1: Sayıcı devrenin temel devre şeması.

Şekil 2: Sayıcı devrenin buton ile saydırıldığı devre şeması.

Resim 1: Tamamlanmış devrenin, çalışır vaziyetteki görünümü.

Ekler:

JAL Devreye ait programın Jal ile hazırlanmış dosyasına bakmak için tıklayınız.
Devreye ait programın Jal ile hazırlanmış dosyasını sıkıştırılmış zip dosya olarak indirmek için tıklayınız.
Devreye ait programın HEX yazılım dosyasını indirmek için tıklayınız.
JAL programı için ek olarak verilen .lib kütüphane dosyalarını indirmek için tıklayınız.

Notlar:


Resim 2: Progrmalama için IC-PROG programlayıcı konfigürasyon bilgileri.

Devrenin JAL ile hazırlanan programı:

-- ===============================================
-- mehmet.yilmaz@teknomerkez.net
-- 20070924
-- 0-999999 ileri LCD sayici
-- ===============================================
include 16f628_4i -- 4MHz dahili osilator
include jlib
include hd447804  -- hd447804 kütüphanesi kullanılacak
include comp      -- 16f628 icin analog
                  -- karsilastiricilerin kapatilmasi
-- === PORTLARIN YONLENDIRILMESI ===
disable_comp      -- analog karsilastiricilar kapatildi
-- === DEGISKENLER ===
var byte saymaya1 = 0
var byte saymaya2 = 0
var byte saymaya3 = 0
var byte saymaya4 = 0
var byte saymaya5 = 0
var byte saymaya6 = 0
-- === AYARLAMALAR ===
option = 0b10111000
tmr0 = 0
hd44780_clear
-- === ALT PROGRAMLAR ===
procedure sayici is
hd44780 = "S"
hd44780 = "A"
hd44780 = "Y"
hd44780 = "I"
hd44780 = "C"
hd44780 = "I"
end procedure
-- === PROGRAM BASLANGICI ===
forever loop
 if tmr0 > 9 then  -- eger tmr0 9'dan buyukse
    saymaya2 = saymaya2 + 1
    if saymaya2 == 10 then
     saymaya2 = 0
     saymaya3 = saymaya3 + 1
     if saymaya3 == 10 then
      saymaya3 = 0
      saymaya4 = saymaya4 + 1
      if saymaya4 == 10 then
       saymaya4 = 0
       saymaya5 = saymaya5 + 1
       if saymaya5 == 10 then
        saymaya5 = 0
        saymaya6 = saymaya6 + 1
        if saymaya6 == 10 then
         saymaya6 = 0
        end if
       end if
      end if
     end if
    end if
 tmr0 = 0 -- 0 yap seklinde tmr0 sayıcısı kosullandi
 end if
 saymaya1 = tmr0
   hd44780_line1
   sayici -- sayici alt programi cagrildi
   hd44780_line2
   print_decimal_1 ( hd44780, saymaya6, "0" )
   print_decimal_1 ( hd44780, saymaya5, "0" )
   print_decimal_1 ( hd44780, saymaya4, "0" )
   print_decimal_1 ( hd44780, saymaya3, "0" )
   print_decimal_1 ( hd44780, saymaya2, "0" )
   print_decimal_1 ( hd44780, saymaya1, "0" )
end loop
-- === PROGRAM SONU ===
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

Yorumlarınız

Hiç yorum yapılmamış, ilk yorumu siz yapabilirsiniz.

Yorum yapabilirsiniz

İsim:
E-posta:
Yorumunuz:
Güvenlik Kodu:
 
Tüm alanları doldurmak zorunludur. Yorumunuz kontrol edilince yayınlanacaktır
Sayfa Etiketleri:16F628 (4) Lcd (8) Sayıcı (10)
İçerik Yan Blok
Konular
Tasarım: Teknimer Teknoloji
Yukarı