bir 16f877-portd ye bağlı bir lcd ve bir sorun

Başlatan mcan, 18 Şubat 2007, 03:32:32

mcan

selamlar,baya uğraştıktan sonra yazmaya karar verdim bir program yazdım ve biraz çalıştıktan sonra lcd ekran garipleşti, sonra gitti.bende başka bir şekilde denemeye kara verdim,azalta azalta en son bu kaldı  :D
2 tane 877 var ikisinde de lcd yi port b ye bağlarsam çalışıyor fakar portd ye bağlarsam kesinlikle çalışmıyorlar.elimde benzer 2 programlayıcı kartı(jdm) 2 ayrı program (icprog ve WinPICPgm).bunlarla olası tüm kombinasyonları denedim sonuç alamadım.isis de işler yolunda bir sorun gözükmüyor.portb de çalıştığından kablo,lcd, bağlantı şekli,ve picin portb si ile bir sorunum yok.  "lcd.c" dosyasını kontrol ettim port d yi kullanacaksam portd yi portb yi kullanacaksam portb yi seçtim.olmadı.
sonunda portd yanmış olabilirmi dedim hepsine led bağlayıp tek tek denedim....
pic donmuyor ama lcd de bişi de görünmüyor ,kontrastan değil.

işin içinden çıkamadım,acaba portb yi kullanırken yapmam gereken birşeymi var?yoksa ccs derleyicisi mi sabrımı sınayan? portd ye bağlı bir lcd porta zarar verebilir mi? vereceğim kodu gerçek bir pic ile denebilecek olan varsa çok menun olurum.
#include <16f877.h>
#fuses hs,NOWDT,NOPROTECT,NOLVP,NOPUT,NODEBUG,NOBROWNOUT,NOCPD,nowrt
#use delay(clock=4000000)

#include <lcd.c>

   void main()
   {
      lcd_init();
      printf(lcd_putc,"\fmerhaba");

      while(true)
      { 
         delay_ms(250);
         output_low(PIN_a0);
         delay_ms(250);
         output_high(PIN_a0);
      }
   }

eğer portd de bir bozukluk varsa led takıp denemekden başka nasıl bir şekilde deneyebilirim ?

arif

4mhz kristal için "#fuses xt " olması gerekiyor galiba.
Belki ondan olabilir.

Ziya

Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

mcan

ziya hocam standart geleni kullanıyordum ama genede koyuyorum lcd.c dosyası

düzeltme : hiç bir şey değişmedi,şu an hala doğru düzgün çalışmıyor.lcd yi çalışmadığı zamanlarda söktüm ve kabloyu-pinlerini kontrol ettim,tüm günümü yedi bu denemeler ,denemeler sırasında lcd nin düzgün çalışmadığı anlarda pinlerini dijital ölçü altetiyle ölçtüm ve d6 ile d5 in çoğu kez kısa devre gibi davrandığını gördüm (lcd hiç bir yere bağlı değilken iken).bi müddet bekleyince bu kısa devre durumu ortadan kalkıyor ve lcd çoğu kez tekrar doğru çalışıyor.portb de ise bu tarz sorunlar yok. yeni bir lcd ve bir pic alıcam bakalım ne olacak,habire masraf :(

climax

Hocam bir ara çalışırken bizde bu boardlar yüzünden baya sıkıntı yaşadık.O günden beri boardlara güvenemiyorum.Yaptığımız çalışmalarda çok zor durumda kalmadıktan sonra board kullanmayıda istemeyiz.
Paylaşmak düsturumuzdur.

Ziya

Bendeki sürümde #locate lcd = getenv("sfr:PORTB") bunun yerine doğrudan adres tanımı var.

Doğrudan #byte lcd = 0x06 ya da 0x08 olarak tanımlayıp tekrar dene.
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

mcan

hocam denedim gene olmadı hatta forumda gezinen tek tek pin tanımlamalı olanla denedim tık yok.lcd yi en son paralel port ile deneyecem eğer bilgisayarla da çalışmazsa bozuk diyebilirim ama eğer bilgisayarla çalışırsa naparım bilemiyorum.

ilker_32

c dosyasını derlerken hangi derleyiciyi killanıyorsunuz?  8)

mcan


Ziya

Alıntı yapılan: "mcan"...lcd yi en son paralel port ile deneyecem eğer bilgisayarla da çalışmazsa bozuk diyebilirim ama eğer bilgisayarla çalışırsa naparım bilemiyorum.
Hani lcd portb de çalışıyordu? Sorun portd de olabilir.
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

zafzaf82

Mikroişlemci bi araçtır, amaç değil.....

mcan

ziya hocam portb de çalışıyordu fakat onda da çalışmıyor şu an :)  .şimdi bişilerin bozuk olduğu açık ama neyin bilemiyorum evde 4-5 tane pic var ikisi 877 hepsi aynıa ndamı bozuldu yada nasıl bi  port bozulması ki ledi yakıyor lcd yi süremiyor sanırım en sonunda kendimi değiştirecem.şimdi 16x2 yi birde bilgisayarla deneyeceğim bakalım lcd  bozuk mu.ha bu arada şunu da denedim ;
istemeye istemeye evdeki 4x40 lcd yi söküp 877e taktım.sonuç gene aynı biraz çalışır gibi oldu sonra saçmaladı.ve bir daha çalışmadı telaşlanıp 4x40 ı bilgisayara taktım çatır çatır çalışıyor.

zafzaf hocam verdiğin için yine de sağol onları ve benzerlerini denedim olmadı.daha önce bir çok kez lcd ile oynadım fakat 2 gündür nasıl bir sorun var çözemedim.acaba 18f452 programlamak için aldığım programlayıcı mı bozuyor picleri.programlayıcı bu

görüldüğü gibi 40 bacaklı pice özeli bir soket yok onun için picin gereksin bacaklarınada voltaj gidiyor peki bu pici bozarmı? bozarsa bendeki gibi hepsinimi bozar :)

Ziya

Beslemesini düzgün yaptın mı? Vcc ve GND hattına 100 nF kondansatör bağla. Besleme gerilimi regüleli olsun.
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

INFINITY

kardeş o soketler pic icin hiç saglikli değil...bende bir kere 16f84 soketi bulamadım bu şekilde yaptım bacakların bazısına voltaj geliyor bazısına gelmiyordu...bence sorun programlayıcı
Elektron Hacısı Çekirdek Kabesini Tavafta...  Eğer atomda çekirdek ile elektron arasındaki boşluk yok olursa 1 çay kaşığı toprak 40.000 Ton gelir.

mcan

herkeze teşekkür ederim,
nasıl olduğunu çözemedim fakat yeni lcd ve yeni 877 aldım, yeni lcd ile tüm picler sorunsuz çalışıyor.eski lcd ile deniyorum olmuyor.sanırım eski lcd bozuk.eğer bozulduysa, çok narinler belkide dandikler çünki durduğu yerde bozuldu diyebilirim.