PIC Buton bağlama

ReiS_

Üye
Katılım
14 Eyl 2007
Mesajlar
180
Puanları
1
Yaş
45
Buton bağlama
bir portda bazı pinlerin buton girişi için kullanılması gerekiyorsa bu işlem
için gerekli olan pinlerin giriş olacağı belirtilmelidir.


Bu işlem Tris yazmacına yüklenecek sayı ile yapılır.

portda giriş olarak kullanılacak bitler için TRIS yazmacında ilgili bite "1" (bir)


portda çıkış olarak kullanılacak bitler için TRIS yazmacında ilgili bite "0" (sıfır) girilir.


Örneğin A portunun birinci ve ikinci pinleri (RA0 ve RA1) çıkış olarak kullanılacaksa;


PIC_buton_bagla.jpg




BCF STATUS,6 ; trisA ve trisB yazmaçlarıyla işlem yapmak için
BSF STATUS,5 ;bu yazmaçların bulunduğu bank1 e geçiliyor
CLRF TRISA ;Tris A temizle
CLRF TRISB ;Tris B temizle
MOVLW B'0011' ;binary sayıyı W ye yükle
MOVWF TRISA ;w deki sayıyı TRISA
ya yükle


bu komut sayesinde portA nın birinci ve ikinci bitleri giriş, 3 ve 4. bitleri çıkış olarak tanımlanmıştır.

ve RA0 ve RA1 pinlerine giriş olarak buton veya başka bir devreden gelecek bir sinyal bağlanabilir.
 
selam buton bağlanışını güzel anlatmışsın ama ben 16f877'ye bunu yaptım ve pic yandı acaba sürekli akım gelmesiyle bi alakası olabilir mi?saçmalamış olabilirim çok anlamıyorum piclerden ama proje yapmaya çalışıyorum.buradaki gibi bağladığımda bacağa gelen verinin "0" olup olmadığını kontrol ediyorum buraya kadar kavradım yaptım oldu. ama o bacağa sürekli akım gelmesi pici yakmış olabilirmi?
 
butonun beslemesine kaç volt bağladın ve oraya ne kadarlık direnç koydun.. değerler uygun değilse yanması normal.. ben yaptığım devrelerde buton beslemesini 5V ve oradaki direncide 10k olarak ayarlıyorum.. o şekilde yaparsan eğer bacak ucu tuşa basıldığı analrda digital olarak 1 basılmadığı anlarda digital olarak 0 değeri alacaktır..

NOT: yukarıdaki çizim benim devrelerimden farklı direnç ve butonun tam ters yerlere koyuyorum ben yani bnde basınca 1 basmayınca 0.. yukarda basmayınca 1 basınca 0..
 
anladım sanırım ben 4.7k kullandım 5V gerilim verdim. ama öteki türlü de denerim çok teşekkürler basınca 1 gelmesi daha mantıklı geliyor. bu arada 4.7k buton için uygunmudur? yoksa 10k bağlamak mı gerekir? kusura bakma sordukça soruyorum ben bilgisayar müh. okuyorum bu konularda eksiğim bayağı.
 
10k kullan.. önemli değil paylaşım içn burdayız yardım edebiliyorsam sorun yok..
 
Pic girişi için gnd ya da Vcc (+5V) olması hiç sorun değil.
Herhangi bir dirence ihtiyaç yok.Port girişleri bu şekilde yakılamaz.Ancak bir şekilde çıkış portu olarak tanımlanmış ise ve çekildiği değerin tersinde polarmaya maruz kaldı ise yanar çünkü port başına max:artıya doğru 25mA,gnd ye doğru 20mA eşik değerlerdir.Kısa devre anında :5V de 20mA geçirmesine göre bir direnç her zaman koruyucu olacaktır.Bu sadece pic için değil pc portları içinde önemli bir püf noktasıdır.Özet , portlar her zaman min 270 ohm gibi seri olabilecek dirençle kullanılır.Bu tabii tehlikenin olabileceği durumlar içindir.
Ancak bir pozisyonda durması ve bir buton veya switchle konum değiştirmesi ve sonra geri dönmesi gerektiğinde konumuzdaki gibi :pull-Up ve ya Pull-Down dirençleri kullanırız.
Bu değer pici ilgilendirmez.Bu değer besleme ve butonla ilgilidir.Örnek 10ohm kullanırsak sürekli güç harcarız ve aynı zamanda buton kullanımında buton üzerinden kaynağa bağlanır ve aşırı akım çeker.
4,7k-10k genelde kullanılanlar.
Örnek olarak 100k da kullanmayız.Evet pic çalışır evet buton çalışır ama hele az uzunca kablolarda parazitler 100k gibi büyük değerlerle kaynağa çekilemeyebilir.
Değerlendirme ölçülerimiz bunlar.
Genel olarak giriş portu, dirençle +5V ye çekilir butonla şaseye çekilir.Bu polarma yönünün Bir sebebi de port değişimi için gereken seviyenin gnd ye yakın oluşudur.Her ne kadar schmit trigger olsalarda.Böylece gereksiz işaretlerden kurtulmuş oluruz.
 
teşekkür ettim arkadaşlar yeterince açıklayıcı ve cesaretlendirici oldu :) proteusda simulasyon yapmayı parçaları kullanmayı falan bilmiyodum onuda öğrendim aslında gerçek parçalarla uğraşmaktansa proteusda bu simulasyon hem daha pratik hemde daha ucuz oluyomuş onuda keşfettim artık :)
tekrardan bilgisini paylaşan herkese teşekkür
 

Forum istatistikleri

Konular
129,808
Mesajlar
930,313
Kullanıcılar
452,615
Son üye
ismail_gök

Yeni konular

Geri
Üst