LCD'de yazı gözükmüyor

Katılım
16 Şub 2010
Mesajlar
382
Puanları
1
Yaş
32
benim bir sorum olacak lcd'ye bir türli yazı çıkaramıyorum.(2x16) program şu:
DEFINE LCD_DREG PORTB 'LCD DATA BACKLARI PORTB'YE BAGLI
DEFINE LCD_DBIT 4 'LCD DATA BITLRI HANGİ BTTEN BASLIYOR
DEFINE LCD_EREG PORTB 'LCD ENABLE BACAGI HANGI PORTA BAGLI
DEFINE LCD_EBIT 3 'LCD ENBLE BITI HANGI PORTA BAGLI
DEFINE LCD_RSREG PORTB 'LCD RS BACAGI HANGI PORTA BAGLI
DEFINE LCD_RSBIT 2 'LCD RS BACAGI HANGI BITE BAGLI
DEFINE LCD_BITS 4 'LCD 4 BIT BAGLI
DEFINE LCD_LINES 2 'LCD KAC SIRDAN OLUSUYOR

TRISA=%11001 'TRISA GIRIŞ
TRISB=0
PAUSE 200 '200 ms bekleme yap
LCDOUT $FE,1 'LCD temizle

SYMBOL BUTON_A=PORTA.0

BASLA:

IF BUTON_A=0 THEN
lcdout $FE,$0C
LCDOUT $FE,$06,"MUSTAFA ÇAKMAK"
pause 5000
ENDIF


IF BUTON_A=1 THEN LCDOUT $FE,$1
IF BUTON_A=1 THEN PORTB.2=0
PORTB.3=0
GOTO BASLA
END

neden yazı cıkmıyor hala anlayamadım.Pic de sağlam.bağlantılarda doğru.proteusta da çalışıyor.lütfen yarıdımcı olabilirmisiniz.
 
lcd ye bağladığın pot ile oyna olmazsa daha büyük pot koyup dene.
 
eger pbp ile dene birde benimde bir ara basima gelmisti pbp ile derledigimde kod calismisti birde pic ine bagli kristal varsa onun calisip calismadigini bir kontrol et bazen kristal calismadigindada bu gibi sorunlar ortaya cikabiliyor sana tavsiyem kodun eger proteus da calisiyorsa kisisel fikrim devrerede kesinlikle calisir mutlaka devrede calismayan bir unsur yada parca vardir devreni tekrar gozden gecir eger gene calismaz ise ozaman programını birde dahili osilator ile derle ole dene genellikle pic leri ilk tasarlandiginda osilator arizalari gozden kacabiliyor
Pbp ile yazılmıs bir ornek kod aşağıya yazıyorum bunu daha once denedim kesinlikle calisiyor ...


Pause 1000 "LCD'acilmasini bekleme suresi "
serout 1,N2400,[254,1] "ekranı silme kodu yolla "
Pause 2
serout 1,N2400,["picBasic Pro" ] "LCD ye yazilacak kod "
serout 1,N2400,[245,192] "İkinci satır Başına git"
pause 2
Serout 1,N2400,["Kullanmak Cok Kolay"] " ikinci satira yazilacak yazi"
End

birde eger n2400 olarak calismaz ise T2400 olarak derleyip dene birde elindeki lcd seri mi parelelmi haberlesiyor oda onemli tabi bunuda belirtirsen daha detaylı yardımcı olabilirim
Saygılarımla
 
Son düzenleme:
argetek73 arkadaşım dediği gibi donanımsal bir sorunda olabilir yani senin bağlantılardan kaynaklı. Yok onlar kesinlikle doğru diyorsan sana tavsiyem bir sürü örnek uygulama ve hex dosyaları var. Kullandığın mcu'ya uygun olan bir örnekteki derlenmiş hex dosyasını direk pic'e yükle ve bu şekilde dene. En azından sorunun derlerken veya senin yazılımından kaynaklı olup olmadığını anlamış olursun. Kolay gelsin...
 
teşekkürler.9'luk pil ile devrede kısa devre olmadığı halde devredeki gerilim olcerken 4.5V a düşüyor.Pili yeniledim yine aynısı oluyor.
 
pil ile calismalarda pic de kararsızlık hatta calısmama gibi sorunlar cok fazla olabilmekte mumkun ise bir reguleli adaptorden besleme yaparak denemeni tavsiye ederim mevcut piyasadaki çoğu pil boşta iken olaması gereken voltajı vermesine rağmen yuke binince değerini yitiriyor 4.5 volt da ise pic de kararlı bir çalışma bekleme bence stabil bir 5 volt edinmeni tavsiye ederim eger su an bulamam diyor isen bilgisayarının usb cıkısını 5 volt guc kaynagı olarak kullanabilirsin ( ben cogu devre icin besleme kaynagı olarak usb portunu kullanmaktayım )


Saygılarımla
 
Son düzenleme:
Mustafa, benden ufak düzeltmeler. Bunları mutlaka uygula.

BASLA:

IF BUTON_A=0 THEN
lcdout $FE,$0C <= BURDA KARAKTER ADRESİNİ YANLIŞ YAZMIŞSIN. $C0 OLACAK
LCDOUT $FE,$06,"MUSTAFA ÇAKMAK" <= BURDAKİ Ç HARFİ TANIMLANMAMIŞ. YAZDIRAMAZSIN. YA C YAP, YA DA Ç HARFİNİ KODLARIN BAŞINDA TANIMLAMASINI YAP
pause 5000
ENDIF

Kolay gelsin..
 
evet C0 benim gozumden kaçmış proteus da calisiyor kod söyleninde kodları incelemedim acıkcası direk donanısal arıza aradım :)


Saygılarımla
 
Mustafa,

TRISA=%11001
TRISB=0
PAUSE 200 <=BU BEKLEMEYİ LCD Yİ TEMİZLEDİKTEN SONRA YAP. yANİ ALTTAKİ SATIRDAN SONRA YAZ.
LCDOUT $FE,1 'LCD temizle

SYMBOL BUTON_A=PORTA.0 <=BURDA BUTONA SEMBOL ATMIŞSIN. BU İŞLEMDEN SONRA BUNU YA SIFIRA ÇEK, YA DA 1 YAP.
BUTON_A=1 GİBİ


Yazı çıkmamasının sebebi programın başında butonu low da tutuyor olman olabilir. Çünkü komutları "eğer butonu low yaparsam git şunu yap" şeklinde yazmışsın. Yukarıdaki satırı eklemende fayda var.

BASLA:

IF BUTON_A=0 THEN
lcdout $FE,$C0,"MUSTAFA CAKMAK"<=BEN C YAPTIM<=BUTON 0 OLUNCA 2. SATIRA YAZI YAZACAK
pause 5000<=BENCE BUNU KOYMA. KOYARSAN BUTONU 1 E ÇEKTİĞİNDE BİLE PIC BUNU ALGILAMAZ. ÇÜNKÜ 5 SANİYE SAYMAKLA MEŞGULDÜR.
ENDIF


IF BUTON_A=1 THEN LCDOUT $FE,$1<=BURADA 2 TANE IF KULLANMAN GEREKSİZ
IF BUTON_A=1 THEN PORTB.2=0
PORTB.3=0
GOTO BASLA
END

Programın en başında tris yazmacından sonra mutlaka pinlerin low mu high mı olduğunu yazman gerekir.
 
Yine olmuyor.lcd kodu ccm1620c.programlarken xt ve pwrt seçeneklerini kullanıyorum.kristalde de arıza yok pic sağlamlık testi için tüm çıkışları test ederken pic çalışıyor.hazır program yukledim yine olmadı.acaba lcd demi sorun var.çünkü bazı arkadaslar lcd de kare kare şekiller olusuordu ben hiçbir şey oluşmuyor.nokta bile çıkmıyor(pic16f84a ile yapıyorum)


saygılarımla
 

Forum istatistikleri

Konular
129,047
Mesajlar
922,824
Kullanıcılar
451,315
Son üye
gurbgurb

Yeni konular

Geri
Üst