Bu devrede 16F84A mikroişlemcisi ve 7 parçalı göstergeler kullanılarak 0-9999 sayıcı devresi oluşturulmuştur. Artı (+) butonu sayıcı değerinin artmasını eksi (-) butonu ise azalmasını sağlar. RESET butonu ise sayıcıdaki değeri sıfırlar.
Şekil 1: PIC16F84A ile 0-9999 sayıcı devresi
PIC16F84A ile 0-9999 sayıcı devresinde kullanılan malzemeler;
- 1 Adet PIC16F84A mikroişlemci
- 4 Adet 7 parçalı gösterge (ortak katot)
- 4 Adet 4511 entegresi
- 28 Adet 330Ω direnç
- 2 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ı: 0-9999 SAYICI DEVRESİ * '* Yazar : HASAN ÜZÜLMEZ * '* Not : PIC16F84 İLE 0-9999 İLERİ-GERİ SAYICI * '* * '* TARİH : 10.09.2008 * '**************************************************************** TRISA=1 'PORTA'NIN TAMAMI GİRİŞ TRISB=0 'PORTB'NIN TAMAMI ÇIKIŞ SAYI VAR WORD BIRLER VAR WORD '1.DİJİT ONLAR VAR WORD '2.DİJİT YUZLER VAR WORD '3.DIJIT BINLER VAR WORD '4.DIJIT PORTB=0 'PORTB'NİN TAMAMINI SIFIRLA SAYI=0 'SAYI İÇERİĞİNİ SIFIRLA MAIN: IF PORTA.0=0 THEN ILERISAY IF PORTA.1=0 THEN GERISAY GOTO MAIN ILERISAY: IF SAYI=9999 THEN SAYI=0 SAYI=SAYI+1 PAUSE 10 BIRLER=SAYI DIG 0 ONLAR=SAYI DIG 1 YUZLER=SAYI DIG 2 BINLER=SAYI DIG 3 PORTB=240 | BIRLER LOW PORTB.7 PAUSE 10 HIGH PORTB.7 PAUSE 10 PORTB=240 | ONLAR LOW PORTB.6 PAUSE 10 HIGH PORTB.6 PAUSE 10 PORTB=240 | YUZLER LOW PORTB.5 PAUSE 10 HIGH PORTB.5 PAUSE 10 PORTB=240 | BINLER LOW PORTB.4 PAUSE 10 HIGH PORTB.4 PAUSE 10 GOTO MAIN GERISAY: IF SAYI=0 THEN SAYI=9999 SAYI=SAYI-1 PAUSE 10 BIRLER=SAYI DIG 0 ONLAR=SAYI DIG 1 YUZLER=SAYI DIG 2 BINLER=SAYI DIG 3 PORTB=240 | BIRLER LOW PORTB.7 PAUSE 10 HIGH PORTB.7 PAUSE 10 PORTB=240 | ONLAR LOW PORTB.6 PAUSE 10 HIGH PORTB.6 PAUSE 10 PORTB=240 | YUZLER LOW PORTB.5 PAUSE 10 HIGH PORTB.5 PAUSE 10 PORTB=240 | BINLER LOW PORTB.4 PAUSE 10 HIGH PORTB.4 PAUSE 10 GOTO MAIN END
pic16f84-ile-0-9999-ileri-geri-sayici
Şifre-Pass: 320volt.com
Yayım tarihi: 2008/10/15 Etiketler: 09999 sayıcı, microchip pic projeleri, PIC16F84 örnekleri, sayıcı devresi
ilginç bir devre neden 0-9999 9999dan daha fazla olmuyormu bu devreyi yapmayı düşünüyorum maliyeti ortalama ne olur teşekkürler
pic pin sayısına ve kullanımına bağlı olarak 0-9999 pinleri farklı kullanarak çok daha fazla basamaklı sayıcılar yapabilirsiniz
pic in 12 adet port çıkışı olduu için ancak 4 display çalıştırılabiliyor. 4 displayde de yazılabilecek en büyük sayı değeri 9999 dur
eğer daha fazla saydırmak istiyorsanız ya daha fazla port çıkışı olan pic sececeksiniz yada devreye ek malzemeler eklemek gerekir böle oluncada hem program değişir hemde dere. bu kunuyla ilgili bilgiler internettte mevcut aynı zamanda bu devrenin daha az maaliyetlileride bulunuyor 😉
peki arkadaşlar bu devrenin 10 adet clock pulse geldiğinde 1 diye sayması ve her 10 clock pulsede 1 artması için ne gibi bir değişiklik yapmalıyız???
çok güzel bi çalışma olmuş emğinize sağlık.
ben ASM ile program yazıyordum baktım bir yere kadar gidebiliyorum ASM ile.
BASIC i öğrenmeye çalışıyorum şimdi.
buna benzer bi program daha inceledim daha basitti.
orada da “DIG” komutu ve
PORTB=240 l birler
şeklinde ifadeler vardı.
tam olarak bu komutlar ne işe yarıyor. Yada BASİC komutlarını detaylı olarak anlatan bir kaynak varsa çok daha güzel olur benim için.
kodları MicroCode Studio Plusina yazıyorum ama çalışmadı hata veriyor nedendir..?
bu devrenin asm kodları var mı acaba sizde?
öncelikle teşekkür ederim ama ben bunun baskı devresini arıyorum elinizde mevcut ise gönderebilir misiniz?
bana bu devrenin 16f877 ile yapılıp mikro C ile hazırlanmış hali lazım elinizde çalışan yazılım varsa verirmisiniz? malum bu dersi geçmem lazım projem.
bunun ares çizimini bana atabilecek bi vatandaş var mı rica etsem
MERHABA DEVREYİ KURDUM PROGRAMI YAZDIM ÇALIŞIYOR AMA TEK SIKINTI 3 ER 3ER SAYIYOR NE YAPABİLİRİM
Devreyi yaptım çok güzel çalışıyor, enerji kesildiğinde son sayı değerini saklamak için, SAYI değişkenini EEPROM a kaydediyorum ve READ la okutuyorum, sorun bazen farklı değerler çıkıyor, nedeni ne olabilir.?