Picproje Elektronik Sitesi

BİLGİSAYAR => Donanım ve Yazılım => Konuyu başlatan: tapir - 01 Aralık 2004, 13:40:10

Başlık: tek bir portu inp/output kullanmak
Gönderen: tapir - 01 Aralık 2004, 13:40:10
arkadaşlar picde  tek pini kullanarak hem input hemde out put olarak kullanabilirmiyiz örneğin 16f628 in a portuna bir led bir de buton bağladım butona bir kez basıp çektğimde aynı port üzerindeki led yanık kalacak tekrar basıp çektiğimde sönük kalacak lütfen bir çözümü varsa yardımlarınızı bekliyorum
Başlık: tek bir portu inp/output kullanmak
Gönderen: ete - 01 Aralık 2004, 15:57:08
@tapir,

istediğin mümkün. Örnek kodlar aşağıdadır. Bunun için bir Pic devresi kur.
Portb.7 ye 470 Ohm direnç bağla direncin ucuna bir LED bağla LED in diğer ucunu GNDye bağla.
PortB.7 ye ayrıca 10K bir direnç bağla direncin diğer ucunu yine GND ye bağla.
Son olarak Portb.7 ye birde buton bağla butonun diğer ucunu +5V a bağla.
Sistemin çalışmaya hazır.
Aşağıdaki programı PIC'e yükle ve çalıştır.

   z   var bit
   led var byte
   tus var portb.7
 
 lcdout $FE,1

start: input portb.7
       if tus=1 then
           if z=1 then start
           output portb.7
           led=1-led
           portb.7=led
           z=1:
           Lcdout $fe,1,"z=",#z,"  led=",#led
           pause 200
           goto start
        endif
       output portb.7
       portb.7=led
       Lcdout $fe,1,"z=",#z,"  led=",#led
       pause 100
        z=0
     goto start  
   
        end


Ben isis te denedim mükemmel çalışıyor.
İşin temeli port sürekli çıkış modunda tutulacak ve yalnızca çok kısa bir süre giriş moduna alınıp tuşa basıldımı diye test edilecek. Tuşa basıldı ise gerekli işlem yapılacak.

Kolay Gelsin
ETE
Başlık: tek bir portu inp/output kullanmak
Gönderen: bsivgin - 01 Aralık 2004, 16:38:01
Sizin söylediğiniz devreyi denemedim ama çıkş sıfırken butona basılırsa garip bir durum ortaya çıkmayacak mı acaba, sanki bana öyle geliyor.

Saygılarımla
Bülent ŞIVGIN
Başlık: tek bir portu inp/output kullanmak
Gönderen: cozturk - 01 Aralık 2004, 16:41:17
http://s11.yousendit.com/d.aspx?id=5DF29109BEED14D6A9A008F39064CCC6
Başlık: tek bir portu inp/output kullanmak
Gönderen: tapir - 01 Aralık 2004, 18:02:18
cöztürk arkadaşım verdiğin link çalışmıyor yükleyemedim ilgine teşekkürler
Başlık: tek bir portu inp/output kullanmak
Gönderen: ete - 01 Aralık 2004, 18:03:41
Sayın Bülent Şıvgın,

Programı denedim diyorum size sizde gerekirse isis te deneyin göreceksiniz.

@ Sevgili Çöztürk;
  Yousendit.com'u daha önce kullanmadım. Verdiğin link yalnızca download için buraya bir şey upload nasıl edilecek.? Home sayfasında E-Mail yolu ile bir şey göndermek istiyor sanki. Anlamadım ve bir sorayım dedim.

ETE
Başlık: tek bir portu inp/output kullanmak
Gönderen: tapir - 01 Aralık 2004, 18:08:35
ar-ge dostum  verdiğin programı proteusda 16f628 ile denedim portb.7 de kararsız çalıştı porta.0 a bağlayınca sorun yok teşekkürler
Başlık: tek bir portu inp/output kullanmak
Gönderen: cozturk - 01 Aralık 2004, 18:09:01
Çalışmayan link bazen çalışabilir. gönderdiğin kişiye haber gitmesini istersen email yazıyorsun yoksa gerekmez. sonra linki ilgili kişiye kendin de bildirirsin istersen.
gönderme yeri:
http://s11.yousendit.com/

Benim koda aşağıda  ilaveten isis dosyası vardı belki yukarıdaki sonra çalışır (şemaya şuan bakamıyorum pull up ve led bağlantısına ) :
Loop:

input portb.0       'pin input
if portb.0 =0 then  'but. basılıdı ise bırakılana kadar bekler
  while portb.0 =0: wend
  low portb.0         'sonra bu pini output yap
  pause 3000          '3 saniye out olarak kalsın!!!
endif

Goto loop


Ayrıca isis ve pbp dosyalarını burada da bulabilirsiniz.:
http://groups.yahoo.com/group/elektronik_sebil/files/
Başlık: tek bir portu inp/output kullanmak
Gönderen: tapir - 02 Aralık 2004, 10:23:09
selam
elektronik sebil den nasıl faydalanabiliriz ben giremiyorum yahoo ıd de aldım
Başlık: tek bir portu inp/output kullanmak
Gönderen: aster - 02 Aralık 2004, 11:33:46
https://www.picproje.org/index.php/topic,2648
Başlık: tek bir portu inp/output kullanmak
Gönderen: ete - 02 Aralık 2004, 11:52:40
@Çöztürk,

Yaptığın programa baktım. Tuşa basılı tuttuğun müddetçe led yanıyor bıraktığın zaman sönüyor. Bilmiyorum Tapir arkadaş böyle bir şeymi istiyordu. Ben olayı farklı algıladım. Benim yaptığım sistemde led toggle olarak çalışıyor. Yani tuşa bir kere basarsanız LED yanıyor, ikinci bastığınızda sönüyor. Tekrar basarsanız tekrar yanıyor. Sanırım Tapir'in istediğide bu ama yinede kendi karar versin. Her iki şekilde de çalışan program örneği elinde var.


@Tapir,

Benim programda 16F628 için gerekli olan Cmcon=7 ibaresi yok idi. Bu ifadeyi programa ilave etmeniz gerekir. Bu şekilde sistem düzgün çalışması gerekir. Bende çalışıyor.

Kolay Gelsin
ETE
Başlık: tek bir portu inp/output kullanmak
Gönderen: tapir - 04 Aralık 2004, 13:59:38
selam arkadaşlar
bu tek portu hem input hemde output olarak kullanma olayı proteusda yukardaki programla sorunsuz çalışıyor ama pic'e yüklediğimde olmuyor yani gerçek devrede çalışmıyor sorunu bir türlü çözemedim yardımcı olacak arkadaşlara şimdiden teşekkürler
saygılar
Başlık: tek bir portu inp/output kullanmak
Gönderen: ete - 04 Aralık 2004, 14:29:14
@Tapir,

Şayet 16F628 kullanıyorsan aşağıdaki programı bir dene. Yok 16F84A kullanıyor ise yalnızca CMCON=7 ibaresini kapa veya çıkart.
Sorun muhtemelen butondaki debouncing (ark) olayından kaynaklanıyor olabilir.
Aşağıdaki programa biraz gecikme koydum. Muhtemelen sorunu çözecektir. Dene ve lütfen neticeyi bildir.

Kolay Gelsin
ETE


z   var bit
   led var byte
   tus var portb.7
   
 lcdout $FE,1
 cmcon=7

start: input portb.7
       if tus=1 then
            if z=1 then
               pause 100
                goto start
            endif
           output portb.7
           led=1-led
           portb.7=led
           z=1:
           Lcdout $fe,1,"z=",#z,"  led=",#led
           pause 200
           goto start
        endif
       output portb.7
       portb.7=led
       Lcdout $fe,1,"z=",#z,"  led=",#led
       pause 100
        z=0
     goto start    
     
        end
Başlık: tek bir portu inp/output kullanmak
Gönderen: tapir - 06 Aralık 2004, 11:16:31
selam
Ete arkadaşım
walla bende ne olduğunu anlayamadım isisde geçen gün çalışan ilk programın dahi şu anda tekrar denediğimde aynı pic 16f628e yüklediğimde ki gibi çaışmıyor oysa daha önce en azından isisde çalışıyordu tabii doğal olarak yeni gönderdiğin programda çalıimıyor
nasıl böyle oldu anlamadım iki gün önce isisde çalışan şimdi çalışmıyor
Başlık: tek bir portu inp/output kullanmak
Gönderen: ete - 06 Aralık 2004, 13:04:29
@ Tapir,

Yazdığım programı ve isis dosyasını aşağıdaki adrese upload ettim
Programlar LCD-Test.Zip dosyası içinde. Al bak ve dene bakalım.
Belki hatanı bulursun. Yok benimkilerde çalışmaz ise mutlaka makinende veya programlarında bir sorun vardır. Zira burada programlar çalışıyor.

http://groups.yahoo.com/group/PicProjeUP4/files/ETE-Files/

Kolay gelsin

ETE
Başlık: tek bir portu inp/output kullanmak
Gönderen: tapir - 06 Aralık 2004, 15:51:54
dostum ete
ilgine çok teşekkürler ama maalesef olmadı lcd de dahi bi değer göremedim denemeyi proteus 6.4 sp2 de yaptım gönderdiğin hex dosyasını aynen kullandım bu arada simulasyon devresine 16f628 ile 16f 84ü üst üste koymuşsun 628i ayırıp sadece 84 ü kullandım genede olmadı
Başlık: tek bir portu inp/output kullanmak
Gönderen: ete - 06 Aralık 2004, 16:14:43
@Tapir,

Sanırım sorunun isis te veya başka bir yerde. Bendeki dosyalar çalışıyor.

Bu aşamdan sonra yardımcı olamıyacağım. Kusura bakma.

ETE
Başlık: tek bir portu inp/output kullanmak
Gönderen: aster - 06 Aralık 2004, 17:22:35
@ete hocam, sanırım U1 (16f84 var) üstüne U2 koymuşsun (16f628)
84 devrede bağlı ama 628 öyle boşta duruyor
arkadaşın ot yolmasına sebep bu herhalde ?   :roll:
U2 yi silin hex i yeniden yükleyin ve çalıştırın normal çalışıyor (84 olarak )
Başlık: tek bir portu inp/output kullanmak
Gönderen: ete - 06 Aralık 2004, 17:33:41
@Aster,

Sanırım sorun o değil. Zira dosyayı ben açtım. Devreyi önce F84 ile çalıştırmıştım. SOnra F628 kullanıyorum deyince onu da koydum ve programda gerekli değişikliği yaptım. Bu arada 628 in bacaklarını bağlamadan araya bir şey girmiş (başka bir işle uğraşmışım herhalde) ve sonuçta devreye bakınca 628 bağlı gibi duruyor. Ama yinede program çalışıyor.
Hatta bir dakika önce isis teki durumuda düzelterek 16F628'e çevirdim ve aynı program yine çalışıyor.
Hata muhtemelen arkadaşın sisteminde olabilir. Bilemiyorum.

ETE
Başlık: tek bir portu inp/output kullanmak
Gönderen: ete - 06 Aralık 2004, 17:51:16
@Tapir,

Şimdi aklıma geldi, acaba LED' i ters mi bağlıyorsun. Böyle şeyler basit ve sorulmaması gereken şeyler ama insanın aklınada başka bir şey gelmiyor.
Devrede bulunan 10K direncide kaldırabilirsin. Zira devre LED üzerinden zaten gerek eksi kuplaj alıyor. Bu akşam gerçek devrede deneyip sana yarın bir cevap vermeye çalışacağım.

ETE
Başlık: tek bir portu inp/output kullanmak
Gönderen: aster - 06 Aralık 2004, 17:52:54
ŞÖYLEki, hex dosyasını gidiyor hep sendeki yerinde arıyor ( hex in yeri değişmiyor) sende çalışması bu sebeple normal
sim yapınca zaten 1 tek o hatayı veriyor yani hex in yerini (sendeki yerinde) bulamadım diyor, halbuki biz U2 ye hex i gösteriyoruz ama çalışan 84
Başlık: tek bir portu inp/output kullanmak
Gönderen: ete - 06 Aralık 2004, 18:02:28
Sevgili Aster,

Bu durumda isis de Pic leri silip yerine yeniden bir pic koyulsa ve aynı bağlantılar yapılsa ve sonuçta Hex de adres olarak gösterilse düzelmezmi?. Sanırım sende öyle yapıyorsun.?

Enteresan bir durum. Şimdi bende aynı dosyayı evde deneyeceğim. Böylece senin söylediğin hataları görürüm sanırım.

ETE
Başlık: tek bir portu inp/output kullanmak
Gönderen: aster - 06 Aralık 2004, 21:07:04
Evet , ben 628 i silip altaki 84 e hex in yerini gösterince çalıştı zaten
ama hiç bir şey değiştirmeden hex i gösterip (U2 16f628) play dersen
amcam sim sırasında gidiyor U1 16f84 için hex arıyor, senin pc de her nerdeyse buluyor tabi bizde o dosyayı bulamıyor ve sadece o kısımda error veriyor. (umarım arkadaş klavyeyi yememiştir, bazen böyle hatalar olabiliyor sonuçta insanız hepimiz bkz:osc sorunu)
şimdi gördüm
Alıntı yapılan: "tapir"16f628 ile 16f 84ü üst üste koymuşsun
o zaten olayın farkına varmış ondaki sebep nedir acaba ?
Başlık: tek bir portu inp/output kullanmak
Gönderen: tapir - 07 Aralık 2004, 10:22:56
arkadaşlar
bende sizin anlattığınız sorunlar yok yani hex dosyasını bulamama falan gibi derdim yok sorun devreyi çalıştırıp butona bastığımda led'in yanması tekrar bastığımda sönmemesi devamlı yanık kalıyor on_off olmuyor yani ayrıca displeyde de hiç bişey görünmüyor sadece display ekranı ışıgı yanıyor hepsi bu
herkese selam başarılar
not:devreyi 16f84 ile simüle ediyorum
Başlık: tek bir portu inp/output kullanmak
Gönderen: ete - 07 Aralık 2004, 10:24:31
@Tapir,

Senden ricam benim gönderdiğim isis dosyasında üst üste olan pic lerden 16F628 olanını sil. alttki 16F84 ün kullanacağı program (Lcd-Test.hex) ın yerini göster ve çalıştır. Şayet yine çalışmıyor ise ne olup bittiğini anlat.
Yani çalışmıyor ama ekranda z=0 Led=0 gibi ifadeler gözüküyor veya gözükmüyor gibi. Merak ettiğim program çalışıyor da buton ve led mi çalışmıyor yoksa hiç birşeymi çalışmıyor. BUnu merak ediyorum.

BU dediklerimi Aster arkadaşımız yapmış ve program çalışmış. Akşam evde bende yaptım ve çalıştı. Senin sorununu gerçekten merak ediyorum.

ETE
Başlık: tek bir portu inp/output kullanmak
Gönderen: tapir - 07 Aralık 2004, 10:50:08
ete dostum
yukarıdaki mesajıma tekrar bakarsan orada anlattım butona basınca led yanıyor tekrar basınca sönmesi gerekir ama bunu yapmıyor led sürekli yanık kalıyor ayrıca displayde hiç bir karakter görünmüyor
Başlık: tek bir portu inp/output kullanmak
Gönderen: aster - 07 Aralık 2004, 12:46:13
(http://img51.exs.cx/img51/2326/m4jadsz1.jpg)
Başlık: tek bir portu inp/output kullanmak
Gönderen: ete - 07 Aralık 2004, 13:03:38
@Tapir,

Gördüğün gibi Aster benim devreyi koymuş, hemde çalıştırmış da koymuş.
Bu durumda sen istersen sıfırdan kendi isis'inde bu devreyi yeniden yap ve hex'i göstererk çalıştır bakalım çalışacakmı.?
Mikro işlemci olarak 16F628 kullan.

ETE
Başlık: tek bir portu inp/output kullanmak
Gönderen: tapir - 07 Aralık 2004, 16:29:54
sonunda devreyi proteus 6.1 sp2 de yeniden çizip çalıştırmayı başardım
sorun kullandığım 6.4 sp2 versiyonundan kaynaklanıyormuş sanırım bendeki bu 6.4 sp2 hatalı çalışıyor 6.1 sp2 de yapınca oldu birde ben derlemeyi picbasic plus 1.23 de yapıyordum derlerken hata vermemesine ragmen define lcd komutları işlemedi yerine declare lcd kullanınca display sorunumda halloldu şimdi sıra gerçek devrede denemeye geldi umarım sorunsuz çalışır
emeği gecen arkadaşlara teşekkürler başarılar