LCD problemi

Başlatan predator, 12 Ocak 2014, 20:10:51

predator

TRISD=0
TRISE=255  '!!!!!!!!!!!!!
DEFINE OSC 4
PAUSE 500
DEFINE LCD_BITS 4
DEFINE LCD_DREG PORTD
DEFINE LCD_DBIT 0
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 5 
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 4
DEFINE LCD_RWREG PORTD 
DEFINE LCD_RWBIT 6

DEFINE LCD_LINES 2

PAUSE 200
GOSTER:
LCDOUT   $FE,1
LCDOUT $FE,2,"ISIK:"
PAUSE 1000
GOTO GOSTER
END

Burada 200msde bir ekrana "ISIK" yazmasını istiyorum, bağlantılar doğru, bu kodlar çalışmıyor, işin garip kısmı trise=255 satırını sildiğimde çalışıyor, sorunu anlayabilen varmı

Maxim

işlemci nedir?
config tanımları nasıl?

Kabil ATICI

predator
200ms'de bir demişsin ama programda ilk 200ms'den sonra ekrana yazıyıyı yazıp ondan sonra her 1sn'de bir yazıyı yazıyor ki, LCD için ilk yazmadan sonraki yazmalar, aynı yazı için değişen bir şey olmaz.
ambar7

Tagli

İşlemcinin PIC16F877A olduğunu varsayıyorum.

TRISE register'ının sadece küçük 3 biti PORTE'nin yönünü belirliyor. Soruna sebep olan TRISE'nin 4. biti olan PSPMODE biti. Sen TRISE = 255 yazınca bu biti 1 yapıyorsun. Bu bit 1 olunca PORD'nin ilgili bacaklarını Parallel Slave Port moduna geçiriyor ve bu bacakların normal I/O özelliğini devre dışı bırakıyor.
Gökçe Tağlıoğlu

predator

Alıntı yapılan: ambar7 - 13 Ocak 2014, 11:47:55
predator
200ms'de bir demişsin ama programda ilk 200ms'den sonra ekrana yazıyıyı yazıp ondan sonra her 1sn'de bir yazıyı yazıyor ki, LCD için ilk yazmadan sonraki yazmalar, aynı yazı için değişen bir şey olmaz.
programda değişiklik yapmıştım buraya eski halini kopyalamışım,
PSPMODE ilk defa duydum, öğrenecek çok şey varmış, teşekkür ediyorum