192x64 GRAFIK LCD ??

Başlatan Maxim, 22 Mart 2009, 18:58:00

Maxim

mutlaka birileri denemiştir ,

normal 128x64 grafik ekranın arkasında 3 tane ana chip vardır ,
CS1 ve CS2  chip select uçları vardır , KS0108 chipleri yani ..

şimdi bendeki lcd 192x64
plaketin arkasında 4 tane ana chip var , ama gene 2 tane CS1 ve CS2 uçları var ,

ne yaptıysam çalışmadı ,çalışmadı derken ekrana görüntü problemli geliyor, ekranın yarısı boş bazen karışık ,tuhaf yani ..

Declare GLCD_CS_INVERT On falan denedim ,dediğim gibi sağlıklı bir görüntü alamadım bir türlü .

hiç uğraşan oldumu ?

selamlar

kodu vereyim ama kodla ilgisi yok gibi ,standart grafik lcd kodu ,
zaten aynı kodda 128x64 lcd breadboardda çalışıyor ayrıca proteusta da 128x64 lcd çalışıyor .

Maxim

lcd ters takılı




Device = 16F877
XTAL = 4
Config CP_OFF, DEBUG_OFF, CPD_OFF, LVP_OFF, BODEN_OFF, PWRTE_OFF, WDT_OFF, XT_OSC

TRISA=%11111110
TRISB=%11111111
TRISD=%00000000
TRISE=%00000000
Declare ALL_DIGITAL = True

PORTA.0=0
DelayMS 10
PORTA.0=1
        
Declare LCD_DTPORT = PORTD
Declare LCD_RSPIN = PORTC.1
Declare LCD_ENPIN = PORTE.0
Declare LCD_RWPIN = PORTC.0
Declare LCD_CS1PIN = PORTE.1
Declare LCD_CS2PIN = PORTE.2
Declare LCD_TYPE SAMSUNG
Declare INTERNAL_FONT = On
Declare FONT_ADDR = 0

'Declare GLCD_CS_INVERT On

DelayMS 400
Cls


LOOP:
Print At 1,1 ,"Graphic LCD Test"
DelayMS 1000
Print At 2,1 ,"Graphic LCD Test"
DelayMS 1000
Print At 3,1 ,"Graphic LCD Test"
DelayMS 1000
Print At 4,1 ,"Graphic LCD Test"
DelayMS 2000
Cls       
GoTo LOOP
        
Include "FONT.INC"

bymrz

hocam hazır grafik lcd komutlarını kullanmadan denesen???

Ete 'nin grafik lcd hakkında yazdığı bişeyler vardı bir yerde(Pic basic ile)...
Pic basic te zaten grafik lcd komutu yok biliyosun, proton da var... Ete de orda Pic basic ile grafik lcd kontrolünü anlatıyordu... Aynı şekilde elindeki grafik lcdnin boyutuna göre bi kod yaz derim. Tabi biraz uzun ve sor oluyo öyle ama dene istersen...

Hocam sende görüyosun ki komutlar 128x64 LCD ye göre komut üretiyor ve, grafik lcdnin de sanırım 128x64 bitlik kısmı çalışıyor...

Maxim

evet bende görmüştüm ete ustanın o yazısını ,
olmadı denerim tabi ama gariplik şu ,
bu lcd de 3 tane chip select ucu olması lazım dimi ? oraya takıldım ben .

bymrz

hocam belki 1. yi 1 yapınca 1. çip,  2.yi 1 yapınca 2. çip... ikisini birden 1 yapınca da 3. cü çip seçiliyo olamaz mı  ;)

Maxim

Alıntı yapılan: "alone_lover"hocam belki 1. yi 1 yapınca 1. çip,  2.yi 1 yapınca 2. çip... ikisini birden 1 yapınca da 3. cü çip seçiliyo olamaz mı  ;)

öyle gözüküyor ,
peki ben bunu protonda kullanamazmıyım normal komutlarla ?
asıl soru bu şimdi ,sanırım olmayacak ?


bymrz

yok hocam aynı komutlarla protonda da yaparsın. Zaten o dediğim de özel komutlar felan yoktu. temel komutlar kullanılıyor.

Ama dediğim gibi biraz uğraştırabilir  ;)

Maxim

şöyle birşey gönderdiler ,

bu kodu bu lcd ile 89C51 işlemci üzerinde test ediyorlarmış ,
2 tane CS hattı ile .. kod assembler ,
anlayan varmı acaba , bu cs hatlarını nasıl kullanmış amcalar ??

slm

       DI   BIT  P2.0
        RW   BIT  P2.1
        E    BIT  P2.4
        CS1  BIT P2.7
        CS2  BIT P2.6
        RESET BIT P2.3
        ORG 00H
        AJMP MAIN
        ORG 0030H
MAIN:
        MOV SP,#60H
        LCALL INIT
        MOV R3,#00H
        LCALL CLRRAM
        LCALL BMP3
        LCALL DEL200MS
        MOV R3,#0AAH
        LCALL BMP1
        LCALL DEL200MS
        MOV R3,#0FFH
        LCALL BMP2
        LCALL DEL200MS 
        AJMP MAIN
CLRRAM:
        MOV R4,#0B8H
        MOV R1,#08D
CLRRAM10:
        MOV R0,#64D
        MOV A,#0C0H
        LCALL WC1
        LCALL WC2
        LCALL WC3
        MOV A,#40H
        LCALL WC1
        LCALL WC2
        LCALL WC3
        MOV A,R4
        LCALL WC1
        LCALL WC2
        LCALL WC3       
CLRRAM11:        
        MOV A,R3
        LCALL WD1
        LCALL WD2
        LCALL WD3
        DJNZ R0,CLRRAM11
        INC R4
        DJNZ R1,CLRRAM10
        RET 
BMP1:
        MOV R4,#0B8H
        MOV R1,#08D
BMP10:
        MOV R0,#64D
        MOV A,#0C0H
        LCALL WC1
        MOV A,#40H
        LCALL WC1
        MOV A,R4
        LCALL WC1
        MOV A,R3      
BMP11:           
        CPL A
        LCALL WD1
        DJNZ R0,BMP11

        MOV R3,A
        MOV R0,#64D
        MOV A,#0C0H
        LCALL WC2
        MOV A,#40H
        LCALL WC2
        MOV A,R4
        LCALL WC2
        MOV A,R3
BMP12:
        CPL A
        LCALL WD2
        DJNZ R0,BMP12

        MOV R3,A
        MOV R0,#64D
        MOV A,#0C0H
        LCALL WC3
        MOV A,#40H
        LCALL WC3
        MOV A,R4
        LCALL WC3
        MOV A,R3
BMP13:
        CPL A
        LCALL WD3
        DJNZ R0,BMP13

        MOV R3,A
        INC R4
        DJNZ R1,BMP10
        RET
BMP2:
        MOV R4,#0B8H
        MOV R1,#08D
BMP20:
        MOV R0,#64D
        MOV A,#0C0H
        LCALL WC1
        MOV A,#40H
        LCALL WC1
        MOV A,R4
        LCALL WC1
        MOV A,R3      
  
BMP21:           
        LCALL WD1
        DJNZ R0,BMP21

        MOV R3,A
        MOV R0,#64D
        MOV A,#0C0H
        LCALL WC2
        MOV A,#40H
        LCALL WC2
        MOV A,R4
        LCALL WC2
        MOV A,R3
BMP22:
        LCALL WD2
        DJNZ R0,BMP22

        MOV R3,A
        MOV R0,#64D
        MOV A,#0C0H
        LCALL WC3
        MOV A,#40H
        LCALL WC3
        MOV A,R4
        LCALL WC3
        MOV A,R3
BMP23:
        LCALL WD3
        DJNZ R0,BMP23

        MOV R3,A
        INC R4
        DJNZ R1,BMP20
        RET  
BMP3:
       MOV R4,#0B8H
       MOV R1,#08D
BMP30:
	 MOV A,#0C0H
       LCALL WC1
       LCALL WC3
       MOV A,#040H
       LCALL WC1
       MOV A,#07FH
       LCALL WC3
       MOV A,R4
       LCALL WC1
       LCALL WC3
BMP31:
       MOV A,#0FFH
       LCALL WD1
       LCALL WD3
	 INC R4
       DJNZ R1,BMP30
       MOV R4,#01H
       MOV R3,#0B8H
       LCALL BMP3A
       MOV R4,#80H
       MOV R3,#0BFH
       LCALL BMP3A
       
       MOV R0,#2D
       MOV R4,#0BAH
       MOV DPTR,#0810H
BMP32:
       MOV R2,#2D
       MOV A,#0C0H
       LCALL WC1
       MOV A,#60H
       LCALL WC1
       MOV A,R4
       LCALL WC1
BMP32A:
       MOV R1,#16D
BMP32B:
       CLR A
       MOVC A,@A+DPTR
       LCALL WD1
       INC DPTR
       DJNZ R1,BMP32B
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       DJNZ R2,BMP32A

       MOV R2,#4D
       MOV A,#0C0H
       LCALL WC2
       MOV A,#40H
       LCALL WC2
       MOV A,R4
       LCALL WC2
BMP33A:
       MOV R1,#16D
BMP33B:
       CLR A
       MOVC A,@A+DPTR
       LCALL WD2
       INC DPTR
       DJNZ R1,BMP33B
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       DJNZ R2,BMP33A

       MOV R2,#2D
       MOV A,#0C0H
       LCALL WC3
       MOV A,#40H
       LCALL WC3
       MOV A,R4
       LCALL WC3
BMP34A:
       MOV R1,#16D
BMP34B:
       CLR A
       MOVC A,@A+DPTR
       LCALL WD3
       INC DPTR
       DJNZ R1,BMP34B
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       DJNZ R2,BMP34A
        
       INC R4
       INC R4
       MOV R2,#4D
       MOV A,#0C0H
       LCALL WC2
       MOV A,#40H
       LCALL WC2
       MOV A,R4
       LCALL WC2
BMP35A:
       MOV R1,#16D
BMP35B:
       CLR A
       MOVC A,@A+DPTR
       LCALL WD2
       INC DPTR
       DJNZ R1,BMP35B
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       INC DPTR
       DJNZ R2,BMP35A

       DJNZ R0,BMP35
       RET
BMP35:
       MOV DPTR,#0800H
       MOV R4,#0BBH
       JMP BMP32

BMP3A:
       MOV R1,#63D
BMP3B:
       MOV A,#0C0H
       LCALL WC1
       LCALL WC2
       LCALL WC3
       MOV A,#041H
       LCALL WC1
       MOV A,#040H
       LCALL WC2
       LCALL WC3
       MOV A,R3
       LCALL WC1
       LCALL WC2
       LCALL WC3

       MOV A,R4
BMP3C:
       LCALL WD1
       LCALL WD2
       LCALL WD3
       DJNZ R1,BMP3C

       MOV A,#0C0H
       LCALL WC2
       MOV A,#7FH
       LCALL WC2
       MOV A,R3
       LCALL WC2
       MOV A,R4
       LCALL WD2
       RET 
INIT:
        LCALL DEL20MS
        CLR RESET
        LCALL DEL20MS
        SETB RESET
        LCALL DEL20MS
        MOV A,#0C0H
        LCALL WC1
        LCALL WC2
        LCALL WC3
        MOV A,#3FH
        LCALL WC1
        LCALL WC2
        LCALL WC3
        RET
WC1:
     MOV P0,A
     CLR CS1
     CLR CS2
     CLR RW
     CLR DI
     SETB E
     CLR E
     LCALL RFG1
     RET
WC2: 
     MOV P0,A
     SETB CS1
     CLR CS2
     CLR RW
     CLR DI
     SETB E
     CLR E
     LCALL RFG2
     RET
WC3:
     MOV P0,A
     CLR CS1
     SETB CS2
     CLR RW
     CLR DI
     SETB E
     CLR E
     LCALL RFG3
     RET

WD1:
     MOV P0,A
     CLR CS1
     CLR CS2
     CLR RW
     SETB DI
     SETB E
     CLR E
     LCALL RFG1
     RET
WD2:
     MOV P0,A 
     SETB CS1
     CLR CS2
     CLR RW
     SETB DI
     SETB E
     CLR E
     LCALL RFG2
     RET
WD3:
     MOV P0,A
     CLR CS1
     SETB CS2
     CLR RW
     SETB DI
     SETB E
     CLR E
     LCALL RFG3
     RET
RFG1:
     PUSH ACC
     MOV P0,#0FFH
     NOP
     NOP
     SETB RW
     CLR DI
BUSY1:
     SETB E
     NOP
     NOP
     NOP
     MOV A,P0
     CLR E
     JB ACC.7,BUSY1
     POP ACC
     RET 
RFG2:
     PUSH ACC
     MOV P0,#0FFH
     NOP
     NOP
     NOP
     SETB RW
     CLR DI
BUSY2:
     SETB E
     NOP
     NOP
     NOP
     MOV A,P0
     CLR E
     JB ACC.7,BUSY2
     POP ACC
     RET  
RFG3:
     PUSH ACC
     MOV P0,#0FFH
     NOP
     NOP
     NOP
     SETB RW
     CLR DI
BUSY3:
     SETB E
     NOP
     NOP
     NOP
     MOV A,P0
     CLR E
     JB ACC.7,BUSY3
     POP ACC
     RET  
 
DEL20MS: 
        MOV R7,#20D
DD6:    MOV R6,#200D
DD5:    NOP  
        NOP
        NOP
        DJNZ R6,DD5
        DJNZ R7,DD6
        RET 
DEL200MS: 
        MOV R7,#10D
DEL2:   MOV R6,#200D
DEL1:   MOV R5,#200D
DEL0:   DJNZ R5,DEL0
        DJNZ R6,DEL1
        DJNZ R7,DEL2
        RET
      ORG 0800H
      DB	000H,07FH,025H,025H,025H,025H,07FH,000H;¾§
	DB	000H,07FH,025H,025H,025H,025H,07FH,000H
	DB	000H,000H,000H,000H,07EH,02AH,02AH,02AH
	DB	02AH,02AH,02AH,07EH,000H,000H,000H,000H
	DB	004H,004H,07EH,001H,040H,020H,020H,010H;ºº
	DB	00BH,004H,00BH,010H,030H,060H,020H,000H
	DB	010H,060H,001H,086H,060H,004H,01CH,0E4H
	DB	004H,004H,004H,0E4H,01CH,004H,000H,000H
	DB	040H,020H,01FH,020H,050H,048H,044H,043H;´ï
	DB	040H,041H,042H,044H,05CH,048H,020H,000H
	DB	080H,082H,084H,00CH,010H,010H,010H,010H
	DB	0FEH,010H,010H,010H,010H,010H,000H,000H
	DB	000H,000H,000H,000H,000H,040H,040H,07FH;£±
	DB	040H,040H,000H,000H,000H,000H,000H,000H
	DB	000H,000H,000H,000H,000H,008H,004H,0FEH
	DB	000H,000H,000H,000H,000H,000H,000H,000H
	DB	000H,000H,000H,018H,020H,041H,041H,041H;£¹
	DB	041H,041H,020H,01FH,000H,000H,000H,000H
	DB	000H,000H,000H,078H,084H,002H,002H,002H
	DB	002H,002H,084H,0F8H,000H,000H,000H,000H
	DB	000H,000H,000H,078H,044H,042H,041H,041H;£²
	DB	040H,040H,040H,070H,000H,000H,000H,000H
	DB	000H,000H,000H,018H,004H,002H,002H,002H
	DB	082H,082H,084H,078H,000H,000H,000H,000H
	DB	000H,000H,000H,01FH,021H,040H,040H,040H;£¶
	DB	040H,040H,021H,01EH,000H,000H,000H,000H
	DB	000H,000H,000H,0F8H,004H,082H,082H,082H
	DB	082H,082H,004H,018H,000H,000H,000H,000H
	DB	000H,000H,00CH,00AH,009H,008H,048H,048H;£´
	DB	07FH,048H,048H,008H,000H,000H,000H,000H
	DB	000H,000H,000H,000H,080H,060H,01CH,002H
	DB	0FEH,000H,000H,000H,000H,000H,000H,000H
	DB	000H,0FFH,042H,042H,041H,041H,048H,072H;ͼ
	DB	054H,040H,041H,043H,041H,0FFH,000H,000H
	DB	000H,0FEH,042H,042H,022H,01EH,0AAH,04AH
	DB	0AAH,09AH,00AH,002H,002H,0FEH,000H,000H
	DB	080H,040H,030H,00FH,000H,000H,07FH,000H;ĞÎ
	DB	084H,042H,021H,010H,008H,00EH,004H,000H
	DB	040H,042H,042H,0FEH,042H,042H,0FEH,042H
	DB	042H,040H,010H,088H,0E4H,047H,002H,000H
	DB	000H,040H,030H,007H,012H,062H,002H,00AH;µã
	DB	012H,062H,002H,00FH,010H,060H,000H,000H
	DB	000H,000H,000H,0E0H,020H,020H,020H,03FH
	DB	024H,024H,024H,0F4H,024H,000H,000H,000H
	DB	0FFH,000H,002H,004H,003H,004H,004H,004H;Õó
	DB	004H,0FFH,004H,004H,004H,004H,004H,000H
	DB	0FEH,002H,012H,02AH,0C6H,088H,0C8H,0B8H
	DB	08FH,0E8H,088H,088H,088H,088H,000H,000H

bymrz

Hocam belki de her bir çip 96x64 lük kısmı kontrol ediyo olabilir...

Sen o bahsettiğim yazıyı buldun mu hocam?

Maxim

uff yaa bugün tepemde kara bulutlar dolaşıyor sanki ,

sanırım basit bir kapı devresiyle falan olacak bu iş ,
veya dediğin gibi tek tek halletmek lazım kodları .

şöyle oldu ,
devre çalışırken kafama göre cs uçlarını 1 ve 0 a bağladım rastgele ,
görüntü %90 düzgün geldi ,tam o sırada power uçları kısa devre oldu ,
sonra bir daha ekrana görüntü gelmedi ,heralde dedim lcd yi bozduk .
sonra tekrar program yükleyeyim madem dedim 16F877 ye meğer o bozulmuş artık 16F876 görüyor programlayıcı entegreyi ! saçma sapan şeyler işte .Ben bugünlük bu konuyu kapatayım, yarın bakarım artık ..

bu arada sanırım ete ustanın açıklamaları bu ,onuda okuyayım güzelce..
https://www.picproje.org/index.php/topic,18978&postdays=0&postorder=asc&start=0

Maxim







malesef bu lcd standart proton plus komutlarıyla kullanılamaz ,
ben onu anladım ,
yani print at .... diyemem veya özel bir font yaratıp 18 punto yazı yazdıramam .Tek tek komut yazmam lazım .

Bu yukarıdaki resimler başka marka aynı mantıkta bir lcd nin datasheetinden aldım ,bunlar daha güzel açıklamış.