LCD S6A0069 atmega8 – Mikrokontroléry – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

LCD S6A0069 atmega8 – Mikrokontroléry – Fórum – Programujte.comLCD S6A0069 atmega8 – Mikrokontroléry – Fórum – Programujte.com

 

Tadeáš
~ Anonymní uživatel
14 příspěvků
24. 8. 2012   #1
-
0
-

Ahoj,
snazim se rozchodit 4 bitovou komunikaci s LCD. Mam displej MC1601A RED NEGATIVhttp://www.gme.cz/alfanumericke-maticove-lcd-displeje-s-radicem-monochr/mc1601a-red-negativ-p513-142/  ale googlil som ako čert a nakoniec som zistil že S6A0069 nebo ST7066 neni kompatibilny  s radicom HD44780 což je obrovska smola lebo je nadherne podvieteny a chcel by som sa s nim hrat a experimentovat. Neviete niekto kde by sa dala naist knižnica pre tento druh LCD? Použivam mikrokontroler Atmega8 a pomali sa učim C. Dakujem za každu pozitivnu radu. P.S. už som našiel vela rad že indiciluj si LCD sám.. Neuspešne.. jednoducho neumim to...

Nahlásit jako SPAM
IP: 95.102.86.–
KIIV
~ Moderátor
+43
God of flame
25. 8. 2012   #2
-
0
-

vypada to velice podobne... ma to akorat vyrazne delsi cas cekani po nabehnuti displaye (original ma 15ms ale tendle ma cekat aspon 30ms po prekonani 4.5v)

takze prvni zkontrolovat casovani, pak jestli nemas spatne kontrast...

mimochodem mam uz od roku 2008 dvouradkovou verzi tohodle displaye a jediny co sem tusim resil bylo prave casovani

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Tadeáš
~ Anonymní uživatel
14 příspěvků
25. 8. 2012   #3
-
0
-

KIIV : Dekuju za odpoved Takže kedže som pisal že som totalne amater . Takže stači nejak len poupravyt knižnicu? mam stahlu knižnicu z :http://svetelektro.com/…ast-459.html

je tam nejake že lcd.c a lcd.h... no s kontrastem problem nebude ked sem ho skusil s tymato knižnicama tak tam nejake štvorečky a čarečky začali nabehovat takže v kontraste chybu nevidim...no ja mam tiež 2x16... Dekuju za troška presnejši popis kde to najdem

Nahlásit jako SPAM
IP: 95.102.86.–
KIIV
~ Moderátor
+43
God of flame
26. 8. 2012   #4
-
0
-

ctverecky na prvni radce znamenaji spatnej init

ctverecky na obou spatnej kontrast

a v kodu to bude prekvapive v lcd_init()  (radky 488 a pro jistotu i 494 dat aspon na dvojnasobek)

jo a hlavne jeste zkontroluj jestli mas F_CPU nastaveno na spravnou frekvenci...

Nahlásit jako SPAM
IP: 78.45.44.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Tadeáš
~ Anonymní uživatel
14 příspěvků
26. 8. 2012   #5
-
0
-

jo čtvorečky byly jen na prvnim... takže kontrastem to nebude... už sem neco take našel bylo to nastavene na 16000 ms tak sem to zmenil na 30000 ms vyskušam to ešte zapojit a či to bude fungovat ... no a ja jako #define F_CPU 1000000UL davam toto takže dufam že to je spravne...

Nahlásit jako SPAM
IP: 95.102.86.–
KIIV
~ Moderátor
+43
God of flame
26. 8. 2012   #6
-
0
-

F_CPU ma odpovidat frekvenci, na ktere pobezi ten jednocip...

tj pokud pouzivas vnitrnich 8MHz a zadny deleni kmitoctu tak to ma byt 8000000UL ... ten milion je 1MHz takze zalezi na tom, co mas nastaveny v pojistkach... defaultne je tusim zrovna ten 8MHz vnitrni oscilator akorat vydelenej 8 takze 1MHz

Nahlásit jako SPAM
IP: 78.45.44.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Tadeáš
~ Anonymní uživatel
14 příspěvků
26. 8. 2012   #7
-
0
-

no ja sa v tem totalne nevyznam... som totalny amater... a prave som skusil zapojit ten display s S6A0069 a po zapnuty je cez prvy riadok  vodorovna čiara  tvorena jednym pixelom cez cely displej takže takže neviem čim to je ... a ked som zapojil s HD44780 tak sa vysvietil cely riadok takže totalne nemam šajnu dke je chyba...

Nahlásit jako SPAM
IP: 95.102.86.–
KIIV
~ Moderátor
+43
God of flame
26. 8. 2012   #8
-
0
-

tak to holt neni projekt pro tebe .. ja ti samozrejme cim to je takhle na dalku nereknu .. moznosti je par... bud uz je to usmazeny, nepostupujes podle navodu, spatny nastaveni rychlosti a tim uplne spatny casovani (hlavne nizsi F_CPU oproti realu), spatny zapojeni, etc...

Nahlásit jako SPAM
IP: 78.45.44.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Tadeáš
~ Anonymní uživatel
14 příspěvků
26. 8. 2012   #9
-
0
-

no praveže ja postupujem presne podla navodu na : http://svetelektro.com/…ast-459.html

no a oni tam F_CPU nemaju takže neviem kde je chyba... ja už som jeden navod na to mal ale neviem kde som to dal tam mi všetko fungovalo s HD44780 ale našiel som tento navod po našom tak som sa snažil rozchodit S6A0069 ale ako vidim tak to asi nebude fungovat...

Nahlásit jako SPAM
IP: 95.102.86.–
KIIV
~ Moderátor
+43
God of flame
26. 8. 2012   #10
-
0
-

#9 Tadeáš
co by nefungovalo.. proste musis zacit experimentovat s tou inicializaci

bud je display spalenej nebo musi fungovat a jen neco posilas moc rychle...

Nahlásit jako SPAM
IP: 78.45.44.–
Program vždy dělá to co naprogramujete, ne to co chcete...
20. 11. 2012   #11
-
0
-

Pozor u ST7066, je nutné dodržet časování signálu E: v klidu je v L, nastavíš signál RS a data, pak E impulz do H a návrat do L jak je to v datasheetu. Pokud u instrukcí netestuješ příznak, musíš ponechat dost času, Clear a Return Home jsou výrazně časově náročnější. Jestli jsi to ještě nerozchodil, včera jsem to samé dodělal na ATMEGA 8A.

hu

Nahlásit jako SPAM
IP: 188.95.60.–
petr
~ Anonymní uživatel
746 příspěvků
30. 11. 2012   #12
-
0
-

protože jsem také měl  problém s tímto LCD, řešení je v kontrole připojení LCD, na pinech displeje 15-16 je podsvětlení LCD, a ty jsou před pinem 1, pokud to zapojujete přímo. To znamená, že napájení podsvětlení displeje je prakticky pin 1 a to dělá neplechu. LCD je prakticky zničený, nebere LCD velký proud? Mělo by být do 150mA  Zkontrolujte pořadí pinů LCD, kam jde napájení  

Nahlásit jako SPAM
IP: 212.80.67.–
Tadeáš
~ Anonymní uživatel
14 příspěvků
7. 12. 2012   #13
-
0
-

Napajani mam skontrolovane poradne.... ale s tej Inicializacie sem stale mimo stale sa nedary už mam s teho hlavu v smutku...

Nahlásit jako SPAM
IP: 78.98.106.–
7. 12. 2012   #14
-
0
-

když se v pondělí připomeneš, tak ti pošlu vyzkoušený kód na LCD 1 řádek 16 znaků.

hu

Nahlásit jako SPAM
IP: 188.95.60.–
Tadeáš
~ Anonymní uživatel
14 příspěvků
29. 1. 2013   #15
-
0
-

#14 hlucheucho
Asi sa až neskoro pripominam... ale program bych al vedel nejak spravit ale knižnice na inicializaciu tochto radiče je stale problem.

Nahlásit jako SPAM
IP: 87.197.0.–
30. 1. 2013   #16
-
0
-

žádné knihovny není potřaba, stačí posílat pár byte ve správném pořadí se správným načasováním. Můžu to sem dát až zítra.

hu

Nahlásit jako SPAM
IP: 188.95.60.–
31. 1. 2013   #17
-
0
-

   

/*
zapojeni LCD:
PC0	RS - register select
PC1	E - enable
PC2	DB4
PC3	DB5
PC4	DB6
PC5	DB7

DB0 - DB3 jsou na GND
*/

//LCD macros	
	#define RS  PORTC0
	#define E   PORTC1
	#define INSTR  0
	#define DATA   1


void ByteToLCD(char* Byte, int rs)  //rs ma funkci register select, makra INSTR a DATA
{
	//nejdrive hight polovina byte, pak low
	static char hPul, lPul;
	static int i;

	hPul = (*Byte & 0xf0) >> 2;	//umisti high pol. byte na pozici sbernice na portu PC (PC5 - PC2)
	lPul = (*Byte & 0x0f) << 2;	//umisti low pol. byte na pozici sbernice na portu PC (PC5 - PC2)
	if (rs)		//vlozi RS do bitu PC0 portu PC
	{
		hPul |= (1<<E) | (1<<RS);
		lPul |= (1<<E) | (1<<RS);
	} 
	else
	{
		hPul |= (1<<E);
		lPul |= (1<<E);
	}
	PORTC = hPul & (~(1<<E));
	PORTC = hPul;
	PORTC = hPul & (~(1<<E));
	PORTC = lPul & (~(1<<E));
	PORTC = lPul;
	PORTC = lPul & (~(1<<E));
	for (i=0; i < 12; i++)	//ceka asi 45 usec
	{
	}
}

void initLCD ()
{
	#define FSET  (0x03 << 2)  //Function Set 0011 se umisti na PC na D7 - D4
	#define FUNSET 0x28
	#define LCDOFF 0x08
	#define LCDON  0x0C
	#define CLEAR  0x01
	#define ENTRY  0x06
	
	uint16_t i;
	
	PORTC = FSET;
	for (i=0; i < 5000; i++);  //cekat >15msec
	PORTC = FSET | (1<<E);	
	PORTC = FSET;
	for (i=0; i < 1500; i++);  //cekat >4.1msec
	PORTC = FSET | (1<<E);	
	PORTC = FSET;
	for (i=0; i < 30; i++);	//ceka asi 120 usec
	PORTC = FSET | (1<<E);
	PORTC = FSET;
	
	for (i=0; i < 30; i++);	//ceka asi 120 usec
	PORTC = ((FUNSET >> 4) << 2);		
	PORTC = ((FUNSET >> 4) << 2) | (1<<E);
	PORTC = ((FUNSET >> 4) << 2);
	for (i=0; i < 30; i++);	//ceka asi 120 usec

	char povel = FUNSET;
	ByteToLCD(&povel, INSTR);	//nastavi pocet radku a font
	povel = LCDOFF;
	ByteToLCD(&povel, INSTR);	//vypne LCD
	povel = CLEAR;
	ByteToLCD(&povel, INSTR);	//vymaze LCD
	for (i=0; i < 700; i++);	//cekat >1.5msec
	povel = ENTRY;
	ByteToLCD(&povel, INSTR);	//Entry Mode Set
	povel = LCDON;
	ByteToLCD(&povel, INSTR);	//zapne LCD
}

void WriteLine(char* text)
{
	static int i;
	static char povel, end;
	
	povel = 0x80;	//nastavi na zacatek radku
	ByteToLCD(&povel, INSTR);
	end = 0;
	for (i = 0; text[i] != 0; i++)
	{
		if (i == 8)		//devaty znak LCD ma DDRAM adresu 40
		{
			povel = 0xC0;
			ByteToLCD(&povel, INSTR);
		}
		if (text[i] == 0)
		{
			end = ' ';
		}
		if (end)
		{
			ByteToLCD(&end, DATA);
		}
		else
		{
			ByteToLCD(&text[i], DATA);
		}
	}
}

int main(void)
{
	DDRB = 0x97;	//nastaveni portu
	PORTB = 0xff;
	DDRC = 0x3f;
	PORTC = 0xff;
	DDRD = 0xe6;
	PORTD = 0x1b;
	
	initLCD();
 //zde by mel byt LCD aktivni
	WriteLine("ahoj");
	return 0;
}

Taktování 1MHz vnitřní RC oscilátor. 

Nahlásit jako SPAM
IP: 195.178.67.–
Tadeáš
~ Anonymní uživatel
14 příspěvků
3. 2. 2013   #18
-
0
-

Dakujem moc tešim sa až to vyskušam... ale zarazilo ma port D0-3 ma byt uzemnení?? dakujem

Nahlásit jako SPAM
IP: 78.98.58.–
3. 2. 2013   #19
-
0
-

DB0 - DB7, E, RS jsou vstupy LCD. Vše je připojeno k portu C.

hu

Nahlásit jako SPAM
IP: 188.95.60.–
22. 2. 2013   #20
-
0
-
Nahlásit jako SPAM
IP: 147.175.179.–
22. 2. 2013   #21
-
0
-

Funguje s WH1601A - YGH-ET# .  Ten se také nastavuje jako dvouřádkový.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
23. 2. 2013   #22
-
0
-

za predpokladu že: #define FUNSET 0x28 výchadza pri druhá časť inštrukcie 4 bitovej komunikácii: D7 - D4 [1 0 0 0] opravte ma ak sa mylim. Datasheet čaká tvar D7 - D4 [0 0 N F]

N : Display line number control bit
When N = "Low", it means 1-line display mode.
When N = "High", 2-line display mode is set.
F : Display font type control bit
When F = "Low", it means 5 x 8 dots format display mode
When F = "High", 5 x11 dots format display mode.

potom mám 2 otázky: či treba do D7 0, prečo vlastne tam je jednotka,
a či pre dvojriadkový displej treba D7 - D4 [0 0 1 0]

Vďaka.

Nahlásit jako SPAM
IP: 147.175.179.–
23. 2. 2013   #23
-
0
-

Nedalo mi to a pozrel som datasheet pre WH1601A - YGH-ET#
http://www.transistor.ru/…-YGH-CTK.pdf od firmy Winstar Display
hovorí že, displej má radič HD 44870
a pre Function set druhá časť inštrukcie 4 bitovej komunikácii čaká tvar D7 - D4 [N F * *]

datasheet na stránke gme.sk http://www.gme.cz/…13-214.1.pdf hovorí, že displej má radič  ST 7066 a ten pre Function set druhá časť inštrukcie 4 bitovej komunikácii čaká tvar D7 - D4 [0 0 N F]
datasheet radiča: http://www.sparkfun.com/datasheets/LCD/st7066.pdf

kde je pravda?

Nahlásit jako SPAM
IP: 147.175.179.–
24. 2. 2013   #24
-
0
-

Bylo to programovaný podle datasheetu ze stránek GME. Funguje to už několik měsíců bez problémů. Možná se mýlím, ale ty řadiče se liší jen časováním, jinak bylo vše stejné. S HD 44870 jsem neměl co do činění už několik let.

hu

Nahlásit jako SPAM
IP: 188.95.60.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 2 hosté

Podobná vlákna

LCD — založil Filip

Lcd — založil lukes

LCD + AVR — založil Systém

LCD, materiály — založil d.mostek

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý