4x20 lcd ye yazdırmak

Başlatan oyhan, 23 Kasım 2004, 19:37:41

oyhan

Selam ben henüz
proton a geçiyorum. Daha önce picbasicproda yadığım kod çalışıyorken 4x20 için
Şuan protonun kurallarına gore değiştirdim fakat işin içinden çıkamadım.
Bana yardımcı olabilirmisiniz. En azından bir örnek 4 satır lcd sürmek için işlemcim 877
Sample lar arasında da bulamadım. Saygılarımla...
BİRLİKTEN KUVVET DOĞAR:

mmengi

Selam,

Gerekli DECLARE tanımlamalarını yaptınmı?

DECLARE LCD_TYPE 1 or 0 , GRAPHIC or ALPHA
DECLARE LCD_DTPIN PORT . PIN
DECLARE LCD_ENPIN PORT . PIN
DECLARE LCD_RSPIN PORT . PIN
DECLARE LCD_INTERFACE 4 or 8
DECLARE LCD_LINES 1 , 2 , or 4

Eğer bunları doğru yaptıysan zaten gerisi kolay.



DEVICE 16F877
CONFIG XT_OSC , WDT_OFF , PWRTE_ON , BODEN_ON , LVP_OFF , WRTE_OFF , CP_OFF , DEBUG_OFF
ADCON1=7
DECLARE LCD_TYPE 0
DECLARE LCD_DTPIN PORTB.4
DECLARE LCD_ENPIN PORTB.0
DECLARE LCD_RSPIN PORTB.1
DECLARE LCD_INTERFACE 4
DECLARE LCD_LINES 4
DIM A AS BYTE
DELAYMS 200
BASLA:
PRINT $FE , 1 : DELAYMS 30
FOR A=0 TO 255
PRINT $FE,2   ,"DECIMAL ", DEC  A
PRINT $FE,$C0 ,"BINARY  ", BIN8 A
PRINT $FE,$94 ,"HEX     ", HEX  A
PRINT $FE,$D4 ,"SATIR 4"
DELAYMS 300
NEXT
GOTO BASLA
END

oyhan

Teşekkürler mmengi Hatamı buldum.
aslında senin kodla yazdıklarım farklı değildi fakat
DECLARE LCD_RWPIN = PORTE.1  LCD nin R/W ucunu direkt 0 a çekmedim benim deney bordunda bunu e1 portuna bağlı tutuyordum. Daha önce bu protu tanımlayıp pic basic proda
Low PORTE.1     ' LCD R/W low = write'    bu şekilde yazma durumuna geçiriyordum low a çekmeyi unutmuşum benim kodu da alta paste edeyim..
DEVICE 16F877
CONFIG XT_OSC , WDT_OFF , PWRTE_ON , BODEN_ON , LVP_OFF , WRTE_OFF , CP_OFF , DEBUG_OFF
DECLARE LCD_TYPE 0
DECLARE LCD_DTPIN PORTD.0
DECLARE LCD_ENPIN PORTE.2
DECLARE LCD_RWPIN = PORTE.1 ******* buraya dikkat ********
DECLARE LCD_RSPIN PORTE.0
DECLARE LCD_INTERFACE 8
DECLARE LCD_LINES 4
ADCON1 = 7      ' PORTA and E digital
       Low PORTE.1     ' LCD R/W low = write'     ******* buraya dikkat ********
DIM A AS BYTE
DELAYMS 200
BASLA:
PRINT $FE , 1 : DELAYMS 30
FOR A=0 TO 255
PRINT $FE,2   ,"DECIMAL ", DEC  A
PRINT $FE,$C0 ,"BINARY  ", BIN8 A
PRINT $FE,$94 ,"HEX     ", HEX  A
PRINT $FE,$D4 ,"SATIR 4"
DELAYMS 300
NEXT
GOTO BASLA
END
BİRLİKTEN KUVVET DOĞAR: