Grafik LCD bağlantısı

Başlatan ahmet2004, 26 Haziran 2006, 19:35:01

papylon

Gayet kolay çalıştırabilirsiniz, nasıl olsa pinleri elinizde mevcut.

İlk yapmanız gereken küçük bir kod yazıp elinizdeki LCD hangi driver'ı kullanıyor onu öğrenmek.

Daha sonra ekrana kolayca bir şeyler yazdırabilirsiniz.

Çin malı telefon ekranları başlıklı konuyu incelemenizde fayda var. @gevv Bu sayfada bir çok örnek kod ve proje paylaşmıştı. Siz öncelikle burayı bir inceleyin, takıldığınız yerlerde yardımcı olmaya çalışırım, bir çok arkadaş renkli LCD konusu ile ilgileniyor eminim onlarda yardımcı olacaklardır.

ByTEK

@papylon ilginiz için gerçekten çok teşekkür ederim.. müsait bir zamanımda oturup uğraşacağım.. pin bağlantısının olması çok büyük bir şans tabi hurda telefonların içinde öyle bir ekran bulmamda başka bir şans :) lcd ekranlara merak sardım.. daha dün 3310 lcd ekranını çalıştırdım ve büyük haz duydum.. şimde sırada e365 ekranı var.. takıldığım yerde edeceğiniz yardımlar için şimdiden teşekkür ederim..

Kolay gelsin..

ByTEK

@papylon selamlar.. bu lcd de bulunan pinler hakkında bilgi almak istiyorum.. örnek vermek gerekirse şu ayak lojik 1olacak data gidecek sonra şu ayak lojik 1 veya 0 olacak gibi.. bunun bir algoritması mutlaka vardır.. nette bulduğum bazı bilgiler tüm lcdler için geçerlimi. ? ve renk kodu nasıl gönderilir.. bu konular hakkında bilgileri nasıl edinebilirim.. e365 glcd datasheet bulamadım yada yok bilemiyorum..yol gösterebilirmisiniz...

kolay gelsin..

papylon

@3L3CTRO,
Aşağıdaki kod parçasını kullanarak elindeki LCD Modülün ID kodunu, yani sürücü adını okuyabilirsin.

Aşağıdaki kod parçası, LCD'den okuduğu 16-bit ID kodun, önce High Byte'ını daha sonra da 10 saniye kadar bekleyip Low Byte'ını PORTA'ya yazıyor. PORTA çıkışlarına 8adet Led bağlayarak veya ölçü aleti ölçüm yaparak okuyabilirsin.

Bu okuduğun kod'a göre de ilgili Driver'ın Datasheet'ne göre gerçek kodu kendin yazabilir ya da yazılmış kodlardan faydalanabilirsin.

Ben, bu kodu ATmega için yazdığımdan kullanacağın işlemciye ve PORT bağlantılarına göre yeniden düzenlemen gerekli.
Verdiğin LCD bağlantı şemasına göre 3 numaralı LCD_ID pinine herhangi bir bağlantı yapmayacaksın, yani boş.

#define	HighByte			PORTC	// LCD D15:D8
#define	LowByte				PORTD	// LCD D7:D0
#define	ILIxxxx_Controlbit	PORTB	// LCD Kontrol Port
#define	ILIxxxx_CS			4		// LCD CS
#define	ILIxxxx_RS			3		// LCD RS
#define	ILIxxxx_WR			2		// LCD WR
#define	ILIxxxx_RD			1		// LCD RD
#define	ILIxxxx_RESET		0		// LCD RESET


//###################################################################################################
void GLCD_IndexWrite(unsigned int index)
//###################################################################################################
{
	ILIxxxx_Controlbit |= _BV(ILIxxxx_RD);	// RD=1
	ILIxxxx_Controlbit &= ~_BV(ILIxxxx_RS);	// RS=0
	HighByte= (unsigned char)(index>>8);
	LowByte= (unsigned char)(index & 0x00FF);
	
	ILIxxxx_Controlbit &= ~_BV(ILIxxxx_WR);	// WR=0
	ILIxxxx_Controlbit |= _BV(ILIxxxx_WR);	// WR=1
}
//###################################################################################################
unsigned int GLCD_ID_Read(unsigned int index)
//###################################################################################################
{
volatile unsigned int DeviceCode=0;

	ILIxxxx_Controlbit &= ~_BV(ILIxxxx_CS);	// CS=0
	GLCD_IndexWrite(index);
	DDRC=  0x00;	// Portlar Giriş
	DDRD=  0x00;
	ILIxxxx_Controlbit |= _BV(ILIxxxx_RS);	// RS=1
	ILIxxxx_Controlbit &= ~_BV(ILIxxxx_RD);	// RD=0
	DeviceCode|=PINC;
	DeviceCode<<=8;
	DeviceCode|= PIND;
	ILIxxxx_Controlbit |= _BV(ILIxxxx_RD);	// RD=1
	ILIxxxx_Controlbit |= _BV(ILIxxxx_CS);	// CS=1
	DDRC=  0xFF;	// Portlar Çıkış
	DDRD=  0xFF;
	return DeviceCode;
}
//###################################################################################################
void delay(unsigned int value)
//###################################################################################################
{	
#define ms	*1
#define Sn	*1000
	for(unsigned int x=0;x<value;x++)  _delay_ms(1); 
}
//###################################################################################################
int main(void)
//###################################################################################################
{
unsigned int val;
PORTA= 0x00;
DDRA=  0xFF;

PORTB= 0xFF;
DDRB=  0xFF;

PORTC= 0xFF;
DDRC=  0xFF;

PORTD= 0xFF;
DDRD=  0xFF;

			delay(500 ms);
			val= GLCD_ID_Read(0x0000);	// Index Register'dan (IR= 0x0000) ID Code değerini PORTA'ya oku
		PORTA=(unsigned char)(val>>8);	// Yüksek Byte oku
			delay(10Sn);	// 10 Saniye bekle 
		PORTA=(unsigned char)val;	// Düşük Byte oku
	while(1);
} // main endcode

ByTEK

Çok Güzel Şeyler Anlattığını Düşünüyorum ama birde anlasaydım Keşke.. pic serisi ve jal dilini kullanacağım.. allah bana kolaylık versin diyeyim :)

Kolay gelsin..

papylon

Aslında kod çok uzun ve karmaşık bir yapıya sahip değil, C'den farklı bir dilde kullansan anlaşılmayacak bir şey yok aslında. Sadece LCD'nin kontrol bitlerine gerekli Puls'ları vererek LCD'nin ID Register'ından 16-bit ID kodunu okuyorsun o kadar. Zaten control bitlerinin olduğu satırların yanına kısa açıklamalar yazdım(RS=1, CS=0 gibi) buraya bakarak istediğin yerde kod yazabilirsin. Zaten ilk başta kafan karışmasın diye sadece ID kodun okunduğu kısmı yazdım sadece.
Sen bir şeyler yapmaya başla, yardımlar da gelir.

mehmet

Alıntı yapılan: sezer1247 - 17 Ocak 2008, 02:17:39


O ters olarak monte edilmiş olan entegreler HD44102 olması kuvvetle muhtemel çünkü data bus ortak.
Bir HD44102 50 x 8 x 4 pixel komuta edebiliyor
Aşağıda iki tane var yani 100 pixel bir kenar
Altlı üstlü yine ikişer tane var 8x4x2 = 64 pixel
Yani ekran 100x64 pixel olması gerekir diye düşünüyorum

4053 ün datasheeti http://www.hemenpaylas.com/download/1569133/4053.pdf.html

Çözebildiğim kadarı ile soket kısmını yukarda olacak şekilde baktığında en üst sol pin D7 altındaki D6 ; D7 in yanındaki D5 vede D3 D1 diye gidiyor.
Soketin alt tarfındaki ise soldan itibaren D6 D4 D2 D0 olması gerekir.

En sağdaki üsteki pin VCC onun altındaki GND

Çözebildiklerim bu kadar müsait olduğumda diğer bağlantılara devam ederim.


1 GND
2 VCC
3 contraste ( generalmente terminal medio de potenciometro de 10k colocado entre vcc y gnd)
4 NC (no conectado)
5 NC
6 CS1
7 CS2
8 CS3
9 NC
10 E
11 R/W
12 R/S (DATA/INSTRUCTION)
13 D0
14 D1
15 D2
16 D3
17 D4
18 D5
19 D6
20 D7

Bu LCD'den bir kaç adet var, çalıştıramadım. Vcc vd Gnd bağladğımda
ekranda bir şeyler olması gerekmiyor mu karakter LCD'ler gibi?
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

OG

Alıntı yapılan: tevfik_kadi - 07 Temmuz 2006, 22:21:14
Selamlar;

GLCD ler ile yeni uğraşıyorum elimde kaça kaç olduğunu çözemediğim bir GLCD var datasheeti bağlantıları ve özellikleri hakkında bilgi edinemedim. LCD boardu üzerinde yazılı olanlar...

HLM-9301
HLM-9332

5 adet satırları veya sütunları sürmek için kullandıldığını tahmin ettiğim entegre
1 x HD44105H (datasheet ini bulamıyorum)
2 x HD44102CH (datasheeti var sutun sürmek için kullanılıyor sanırım her biri 80 nokta için)
2 x ters olarak monte edilmiş parça numarası görünmüyor

4 Adet
40H004F
40H042F
40H367F
4053BF

20pin'lik bir konektör var üzerinde ve plaket üzerinde de E/L olarak adlandırılan iki tane adacık var.

Saygılarımla;
Kolay gelsin ....
Bunu çözebildinizmi, elime geçti bir tane datasını bulamadım.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

ErsinErce

#53
hocam yollları gözüken bir fotoğrafı alabilmemiz mümkün mü merak ettim bu lcd yi  :)
LCD HLM-9301 HD44102 HD44105 Arduino GLCD
yorumlarda kullanan kişi bir pin listesi vermiş benzeri ise bir denenebilir

OG

FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

Burak B

Alıntı Yap1 x HD44105H (datasheet ini bulamıyorum)

HD44105H  - Common Driver
"... a healthy dose of paranoia leads to better systems." Jack Ganssle

oooben

konunun çok eski olduğunu düşünmekle beraber bende de bu hlm 9332 var k.köyden aldım. acaba konnektör sıralamasında da bilgi verir misiniz. konnektörün nerden 1----10 ve 11-20 olduğu konusunda bilgi rica ediyorum şimdiden iyi bayramlar ve teşekkürler .

oooben

pin sıralamasıyla ilgili sorumu tekrarlamak istiyorum
pin sıralaması 1-2-3-4-5-6-7-8-9-10
     20-19-18-17-16-15-14-13-12-11
yoksa
                                     
20-18-16-14-12-10-8-6-4-2-0
     19-17-15-13-11-9-7-5-3-1
hangisi olur yada nasıldır
lütfen araştırdım bulamadım.