Elektronik / Mikrodenetleyici Projeleri/

PIC16F84A ile Lcd Göstergeli Sayıcı Devresi

Sponsorlu Bağlantılar

Bu devrede PIC16F84A mikroişlemcisi ve 16X2 LCD ekran kullanılarak 12 basamaklı bir sayıcı yapılmıştır. SWITCH butonundan gönderilen her sinyal LCD ‘deki değerin bir artmasını sağlar. SIFIRLA butonu ise LCD ’deki değerin sıfırlanmasını sağlar.

PIC16F84A ile sayıcı devre şeması
microchip pic16f84 sayıcı devresi

PIC16F84A ile LCD sayıcı devresinde kullanılan malzemeler;

  • 1 Adet PIC16F84A mikroişlemci
  • 1 Adet 16X2 LCD
  • 3 Adet 10K direnç
  • 1 Adet 4.7K direnç
  • 1 Adet 4Mhz kristal osilatör
  • 2 Adet 22pF kondansatör
  • 2 Adet buton

Kaynak Kodlar
Devreye ait mikroişlemci kodları MicroCode Studio Plus PICBASIC PRO derleyicisinde yazılmış ve derlenmiştir. Derleme işlemi için bilgisayarınızda PBP246 ve MPASM assembly derleyici dosyaları bulunmalıdır.

'****************************************************************
'*  Proje Adı: LCD SAYICI DEVRESİ                               *
'*  Yazar    : HASAN ÜZÜLMEZ                                    *
'*  Not      : LCD 12 basamaklı sayıcı devresi                  *
'*                                                              *
'*  Date     : 10.09.2008                                       *
'****************************************************************
DEFINE LCD_DREG PORTA 'LCD data bacakları hangi porta bağlı?
DEFINE LCD_DBIT 0 'LCD data bacakları hangi bitten başlıyor?
DEFINE LCD_RSREG PORTA 'LCD RS Bacağı Hangi Porta bağlı ?
DEFINE LCD_RSBIT 4 'LCD RS bacağı Hangi Bite bağlı ?
DEFINE LCD_EREG PORTB 'LCD Enable Bacağı Hangi Porta bağlı?
DEFINE LCD_EBIT 0 'LCD Enable Bacağı Hangi bite bağlı ?
DEFINE LCD_BITS 4 'LCD 4 bit mi yoksa 8 bit olarak bağlı?
DEFINE LCD_LINES 2 'LCD Kaç sıra yazabiliyor
TRISA=0
TRISB=%11000000
SAYI  VAR WORD
SAYI1 VAR WORD
SAYI2 VAR WORD
SAYI3 VAR WORD 
SAYI4 VAR WORD
SAYI=0
SAYI1=0
SAYI2=0
SAYI3=0
SAYI4=0
ANA:
    IF PORTB.6=0 THEN SAYI=0:SAYI1=0:SAYI2=0:SAYI3=0:SAYI4=0
    LCDOUT $FE,$80,"URETIM MIKTARI=>"
    LCDOUT $FE,$C0,DEC3 SAYI1,".", DEC3 SAYI2,".",DEC3 SAYI3,".",DEC3 SAYI4
    PAUSE 100
    IF PORTB.7=1 THEN GOTO ANA
    SAYI4=SAYI4+1
    IF SAYI4>=1000 THEN   
    SAYI4=0
    SAYI3=SAYI3+1 
    IF SAYI3>=1000 THEN
    SAYI3=0  
    SAYI2=SAYI2+1
    IF SAYI2>=1000 THEN
    SAYI2=0
    SAYI1=SAYI1+1
    IF SAYI1>=1000 THEN
    SAYI1=0
    SAYI=SAYI+1
    IF SAYI>=10 THEN
    SAYI=0
    ENDIF
    ENDIF  
    ENDIF     
    ENDIF
    ENDIF
    GOTO ANA
    END

Devrenin Proteus Ares programında görünümü
lcd göstergeli sayıcı devresi proteus ares pcb

Projenin Koynak simülasyon pcb ve kod dosyaları PIC16F84A ile Lcd Göstergeli Sayıcı Devresi

Dosya indirme LINK listesi (HTML formatında) link-3379.zip şifre-pass: 320volt.com

  • elektrofizik

    12 basamaklı sayımı ! :D kardeş naaptın sen… 12 basamak trilyon ediyor yav. bunu saymaya insan ömürü yetmez :D

  • Konyalı

    bu devreyi lisede staj yaparken(teneke ambalaj fabrikası) bir çok makinada görmüştüm, ama doğru bu kadar basamak var mıydı hatırlamıyorum. Maksat LCD ekran zengin gözüksün:)

  • orhan

    bu devreyi kurdum fakat çalışmıyor sanırım bir hata var.lcd üst satırda siyah kareler çıkıyor, alt satırda ise hiçbirşey çıkmıyor.
    programın 2. satırında “DEFINE LCD_DBIT 0” komutu “DEFINE LCD_DBIT 4” olması gerekmez miydi?

  • Konyalı

    DEFINE LCD_DBIT 0 data ucunun kaçıncı pinden başladığını belirtir devrede PORTA 0 bitinden başlıo zaten. ayrıca kodların yanında açıklamalarda yazıyor, devreyi proteustamı kurdunuz yoksa gerçek hayattamı:)

  • orhan

    tamam hata bendeymiş devre normal çalışıyor fakat birşey sormak istiyorum;
    beslemeyi kesince ekrandaki sayma değeri sıfırlanıyor bunu hafızada tutmak için ne yapmak gerekir?

  • sezai

    enerji kesilmesinde bilginin kaybolmaması için bilgiyi eeproma kaydetmelisin..

  • bme_gokhan

    dostum merhaba. ben ares dosyasını açamadım. proteus 7.6 sp0 var hangi versiyonu kurmam gerekli. ayrıca pcb çizimi yeni öğreniyorum. bu geniş yollar ( plane ) nasıl yapılıyor söyleyebilir misin? zone mode ile yapmaya çalıştım ama olmadı.

  • @bme_gokhan

    isis, ares kullanım kılavuzu işinize yarayabilir

    http://320volt.com/proteus-isisares-turkce-kullanim-kilavuzu/

  • Tolga

    kardeş ben bu devreyi 12 basamaklı değilde 2 basamaklı yapacağım ama bunu programdan ayarlayabılrmiyim acaba yardımcı olursnız sevinirim sadece tek fark 12 basamak değil 2 basamak olacak ben 30 a kadar saydırıcam bu lcd yi

  • Hakan

    ben devreyi boarda kuruyorum fakat yazılar birbirine giriyor ayrıca saymıyor devrede hangi osilatör kullanılacak söyleyebilirmisiniz

  • Konyali

    @Hakan
    4 MHz kristal ve 22pF kondansatör kullanmıştım.(Bunlar zaten malzeme listesinde var) yazıların birbirine girmesi muhtemelen temas probleminden kaynaklanıyor boardu kontrol edin

  • Solea

    Merhabalar;
    Ben bu devreyi bobin sarıyorken spir sayısı sayması için yapmayı istiyorum. Ancak devreden anlayamadığım birkaç sorum olacak..
    Devre kaç volt enerji ile çalışmakta, ve pıc ile hiç çalışma yapmadığım için devre bittikten sonra pıc e o kodları nasıl göndereceğiz. Yardımcı olursanız sevinirim. Elektronik bilgim çok fazla yok, 10 sene önce liseden öğrendiğim bilgilerden kalanlar ile yapmayı deneyeceğim.. Teşekkürler..

  • hawke

    konyalı arkadaşım bu devreyi arabaya uyarlamak istiyorum ama iki satır sayı sayması gerekmette ilk satır sürekli sayacak sıfırlanmayacak ve 0,000,000 değerinde yani milyona kadar çıkmalı ikinci satır 0,000 binler değerinde sayacak hafıza konusunu ve kalibrasyon işi bana ait bunları ayarlayabilirim bana sadece iki satır sayması gerekiyor bana bu konuda yardımcı olacak bir arkadaş varmı ?

  • osman

    merhabalar.Ben bu devreyi gerçek hayatta kurdum çalışıyor.ancak bir sorunum var sayma işlemi için butona bastığımda sayı butona basıldığı sürece artmaya devam ediyor, butondan elimi çektiğimde sayma duruyor tekrar saymak için bastığımda sayı sıfıra dönüp tekrar saymaya başlıyor.ben butona bastığımda sayının tek tek artm.asını istiyorum yardımcı olursanız sevinirim

  • haydar

    merhabalar sayıcı devresini kurdum gayet güzel çalışıyor. arkadaşın dediği gibi butona basılı tutulduğu sürece sayıyor. bunu butona her basış 1 defa sayacak şekilde nasıl düzenleyebiliriz teşekkürler.

    iyi çalışmalar

  • turan tunç

    Hocam devreyi yaptımda lcd ekranı kareler var yazı yok