binary counter

tomy

Üye
Katılım
22 Ara 2006
Mesajlar
5
Puanları
1
Yaş
40
arkadaslar ben 16f877 le calısan bir binary counter yapmak istiyorum
portA.1 biti registirin icindeki sayiyi artıracak
portA.2 biti registirin icindeki bilgiyi azaltacak
portB nin ilk altı bacagı cıkıs olacak yani registirin içindeki bilgi 64 u gecmeyecek
ve bu registirin icinde ilk acılısta decimal olarak 10 olmus olacak
yani port b ilk acılısta 001010 göstecek ve örnegin artırma butonuna bastık
portb 001011 azltmada aynı sekilde olacak
umarım acık olmustur ben bu pic basic pro konusunda cok az bilgiye sahipim ve yazdıgım programlar kendi kafalarına göre calısıyor benim yazdıgım programlarda hatalarımı sölerseniz cok sevinirim
yardımlarınızı bekliyorum simdiden tesekkuler
 

Ekli dosyalar

  • BINARY COUNTER.rar
    14.8 KB · Görüntüleme: 25
Moderatör tarafında düzenlendi:
şu şekilde olur:



Kod:
   define osc 4    ;hızı tanımlamalıyız
   adcon1 = 6         ;porta dijital

;ilkayar:               ;bu etiket gereksiz
   trisa.1=1
   trisa.2=1
   trisb=%11000000
   volume var portb     ;volume gereksiz
   volume=10
anaprogram:
   if porta.1==1 and volume<64 then artirma ;koşullar paranteze alınsa daha iyi olur
   if porta.2==1 and volume>0 then azaltma
   goto anaprogram     ;her iki butona da basılmazsa nereye gidecek? en büyük hata buradaydı

artirma:
   pause 100           ;buton sekmesi için bekleme yapılmazsa aynı 1'i defalarca okur    
   volume=volume+1
   volume=portb        ;volume gereksiz fakat bir anlamı olsaydı portb=volume olması gerekirdi
   goto anaprogram
azaltma:
   pause 100
   volume=volume-1
   volume=portb
   goto anaprogram
end

sonuç şudur:
Kod:
   define osc 4
   adcon1 = 6
   trisa = 255
   trisb =  0
   portb = 10
   goto anaprogram

;alt programlar önce yazılır
artirma:
   pause 100
   portb = portb + 1
   goto anaprogram
azaltma:
   pause 100
   portb = portb - 1
   goto anaprogram
anaprogram:
   if (porta.1=1) and (portb<64) then artirma 
   if (porta.2=1) and (portb>0) then azaltma
   goto anaprogram

End de gerekmiyor.

Bu şekilde isis'te çalışır fakat devrede çalışmaz, porta 1 ve 2. pinleri 10k dirençlerle pull-down
yapılmalı, yani gnd'a bağlanmalı.

Kolay gelsin..
 
saol tesekkur ederim
ben simdi devreyi degiştirmek istiyorum bunlara ek olarak sevensegmentle registirin içindeki bilgiyi göstermek istiyorum ama bir turlu yapamıyorum bide basılı tutunca tek pals artmasını istiyorum
simdiden tesekurler
 

Ekli dosyalar

  • Desktop.rar
    14 KB · Görüntüleme: 10
Moderatör tarafında düzenlendi:
Arkadaşlar bana basılı tutuncada tek pals gitmesi gerekmiyo sadece 64kademe sayan bu binay sisteminin seven segmentte nasıl göstereceği lazım yardım ederseniz cok sevinirim şimdiden teşekkürler.
 
işin acıkcası bu tek pals olayı piclerde oluyor mu onuda bilmiyorum plc lerde dusen kenar yukselen kenar olayıyla yapılabilir diye dusundum picdede wardir dedim ama umarım yanılmamısımdır
 

Forum istatistikleri

Konular
129,201
Mesajlar
924,193
Kullanıcılar
451,560
Son üye
mertcan5657

Yeni konular

Geri
Üst