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: