Pull UP

Başlatan Sıfır, 12 Temmuz 2014, 14:20:23

Sıfır

Arkadaşlar ben kurduğum devrede düğmeye basınca led yansın,tekrar basınca sönsün istiyorum.Bunun için pull up yapacaktım ama onu anlamadım  :-\.Nasıl böyle bir sistem kurabilirim(kodunu soruyorum)?

ete

#1
İşlemci girişleri digitaldir ve yalnızca 2 konumlu olabilirler. Ya low yani sıfır (0) yada high yani bir (1)
Birde arada bir yer vardır ne sıfır nede bir olan değer ki buna float yani yüzen yada gezinen değer denir.
Pic giriş pininde 0V ile 0,8V arasını Low kabul eder. Aynı girişte 2V ile 5v arasınıda High kabul eder bu durumda 0,8v ile 2V arası otomatikman float bölgesi olurki bu bölgede pic kararsız kalır.
Bütün giriş pinleri kesin olarak bir konumda olmalıdır. Float konumunda kalmaları hiç istenmez. Zaten işlemci girişten bir şey girildiğini anlaması için girişin konum değiştirmesi gerekir.
Örneğin High konumda bekleyen bir giriş birden low olursa oraya bir giriş yapıldığını kolaylıkla anlar.
İşte bir girişin high konumda bekletilmesi olayına pullup (yukarı çekme) aynı girişin Low da bekletilmesine ise pulldown ( aşağı çekme) işlemi denir. Bu bir donanım işidir. Pic pinine 10 K direnç bağlayıp direncin ucunu +5V ta bağlarsak bu bir pullup işlemidir. Aynı şekilde direnci 5V ta değilde Gnd ye bağlarsak buda bir pulldown işlemidir. Görüleceği üzere bu işin bir kodu falan olmayıp yalnızca donanımsal bir hazırlıktır. İşin yazılımla yapılanına gelince,
Bütün işlemcilerde genelde portB pinlerine verilmiş bir özellik vardır. Bu dahili pullup dirençleridir. Bu yazılımla açılıp (aktive edilip ) yada yazılımla kapatılabilir.
Açmak için , Option_Reg.7=0 vermeniz yeterlidir. Yani option registerinin 7. Bitini low yaparsanız portb de giriş olarak ayarlanmış pinlere otomatikman pullup direnci bağlamış olursunuz ki buda pullup işleminin yazılımsal olarak açılıp kapatılması anlamına gelir. Kolaylıkla anlaşılacağı üzere Option_Reg.7=1 vererek pullup işlemi iptal edilir.

Ete

Sıfır

#2
Peki bu pull up işini sadece portb'nin 0. pinine vermem mümkün müdür?Teşekkürler.

ete

Bazı işlemcilerde mümkündür. Ancak 16F628 de tek bir pine pullup verme işlemi yoktur. Giriş olarak ayarlanmış olması kaydı ile option registeri bütün pinleri pulluplı yapar. Bu işinize gelmiyorsa o zaman yazılmsal değil donanımsal pullup yapmanız daha doğru olur. Kısaca portb.0 pini ile +5V arasına 10K lık direnç bağlayın olsun bitsin.

Ete

Powered by EzPortal