avatar_ete

PIC Basic Ders-08 (Tuş Takımı, Led Display, Port Çoğullama)

Başlatan ete, 28 Ağustos 2011, 16:15:20

ete

Bu dersimizde Pic mikro işlemcilere dışarıdan bağlanan aletleri inceleyeceğiz. Dışarıdan bağlanabilen aletler olarak;


1. Tus takımları (keyboard)
2. LED display ler
3. Port Çogullayıcılar

gozkan

Erol bey size bir sorum olacaktı. Giriş çoğaltıcıda TRISA ve TRISB komutlarının ikisindede portları 0 olarak ayarlamışınız 0 yapınca çıkış olmuyormu bu portlar. Bilgi yazısında giriş yapılmıştır diye not düşmüsünüz o yüzden sormak istedim. Teşekkür ederim iyi çalışmalar

ete

Giriş çoğullayıcıda pic'e giren yada giriş olarak kullanacağımız tek bir pin mevcut oda PORTA.0 dır.
Normalde TRISA=%00000001 şeklinde ayarlanmalıdır. Ancak Basic komutları giriş olması gereken pinleri kendileri otomatik giriş yapar. Bu programda da biz pini giriş olarak ayarlamamış olsak da SHIFTIN komutu PORTA.0 pinini giriş olarak kendisi yaparak programı doğru çalıştırmaktadır. Dediğim gibi doğru ayarlama TRISA=%00000001 şeklinde olmalıdır.

Programları yazarken hepsini yeniden yazmak yerine önceden yazılmış programlardan kopyalayarak aldığımız satırlar oldu. Satır açıklamaları bazen yanlış kalmış onuları gözden kaçırmışız. Kusura bakmayın.

Ete

zeynal

Merhaba Erol bey.Yardıma ihtiyacım var.PIC16F628 giriş sayısını 32 ye yükseltmem lazım ve giriş sayısını 2 adet 7 seg yansıtmam lazım.Bu iş 16f628 ile mümkün mü acaba?Teşekkürler

ete

32 adet giris port cogullama ile mumkun elbette. Birde 7 segmentler olacak ise nerden baksa neredeyse 40 adet Pin gerekecek. Neden şartları zorluyorsunda yerine çok bacaklı bir işlemci kullanmıyorsun?.
Ete

zeynal

Merhaba Erol bey.Aslında 16f877 düşündüm,fakat bu işlemcide de 74hc165 kullanmam gerekiyor.Bu konuda sizin tavsiyeleriniz benim için önemlidir.Teşekkürler

ete

Ben genelde giris cogullamak icin 4067 veya 4051 veya 74138 kullanirim. Cikis cogullamak icin 74595 kullanirim.
Ete

zeynal

Merhaba ETE bey.Bu yaptığım şemaya bakarmısınız.Bunu 2 adet 7 seg. nasıl yansıtırım.Teşekkürler

ete

Bu nesaja biraz daha detay vermen gerekiyor. Ben şemada yalnızca çoğullanmış buton gurubu gördüm.
Neyi displaylere yansıtacaksın anlamadım doğrusu.
Ayrıca devrede kullanıulan ULN2803 lerin ne amaçla kullanıldığınıda anlamadım. Hiç gerek yoktu onlara. Onun yerine bağlı 4532 leri guruplayacak bir başka 4532 orada kullanılabilirdi.

Ete

zeynal

Merhaba ETE bey.2003 leri bir deneme için koymuştum sonra silmedim.7 seg. ise hanki tuşa basıldıysa onun numarasını göstermek lazım.Yani 1 numaralı tuşa basarsam 7 seg 01 görmem lazım.Teşekkürler

ete


zeynal

ETE bey program güzel olmuş ellerinize sağlık.Sadece bir tuş basılıyken başka bir tuşa basarsan ğöstergeler doğru göstermeye başlıyor.Mesele 2 nolu tuş +7 no.Teşekkürler

ete

Bence senin simulasyonda bir sorun var. Devre sorunsuz çalışıyor. İki tuşa aynı anda basarsan tek haneli rakamlar ise ikisinide göstermeye çalışıyor ama çift hane ise zaten ilk basılanı gösteriyor.
Şimdi yeniden denedim sorun yok gözüküyor bende.
Bazı isis versiyonlarında taramalı tuş takımında tuşların hatları kısa devre etmesi nedeni ile olumsuz çalışma sonucu çıkıyor idi.
Bu sorunu hatlardan birisine (yatay yada dikey) 150 ohm direnç bağlamak işi çözüyor idi. Ben şimdi yatayların hepsine 150 ohm bağladım. Yine güzel çalışıyor muhtemelen doğrusu da budur.
Sende dene istersen

Ete


veli dayı

 :'(    :-\     Hocam tuş takımı kullanılmasıyla ilgili anlamadığım bazı yerler var.önce dersinizi açtım ve mantığını sökmeye çalıştım.şöyleki devremde sutunların olduğu yerlere pullup dirençleri taktım sütünlar sürekli hıgh konumunda.şimdi sırasıyla önce yatay a satırını low yapıyoruz 1 e basılırsa dikey_1 sutunu low oluyor
ıf dıkey_1=0 then
tus=1
endıf diyoruz.2 ye basılırsa ıf dıkey2=0 then  tus=2 endıf diyor böylecene devam ediyoruz.diğer satırlardada mantık aynı bende bu mantığa bağlı kalarak sizin yayınladığınız kodları da işin özüne dokunmadan biraz değiştirdim.
    yani yatay satırları sırasıyla döngü olacak şekilde low yapıp duruyorum ve hangi tuşa basarsam o tuşu algılattırıyorum.buraya kadar sorun yok.sizin yazdığınız kodalara bakıyorum.bu değişim esnasında arada herhangi bir bekletme komutu yok bende tuttum araya bekletme komutları koymamıştım.fakat simülasyonda hata veriverdi. öyle olunca bu değişimlerin aralarına pause 10 şeklinde bekletme komutları koydum.ozaman sorun çıkmıyor.acaba bu bekletme komutlarını koymak zorunlu mu yoksa simülasyonun gönlünü etmek için mi konulması gerekiyor.yani bekletme komutları koymassam gerçek devrede çalışır mı ki

Powered by EzPortal