Test a zprovoznění LCD displeje HC160203C-VA s Atmega8-16

Já to zapojuji přesně pomocí těchto stránek pier.own.cz/index.php?text=5-isp … vr-atmega8 mohu to tak dělat?díky za trpělivost
A tak to mám prakticky:

Fotka je sice nezretelna, ale melo by to byt v pohode. Pokud na tech pinech MISO, MOSI, SCK a Reset neni uz nic jineho, tak v pohode. Toto zapojeni je mnohokrat odzkouseno a funguje.

Taky mě to už funguje při programování nebo při čtení ta ledka přestane blikat veryfikace proběhne OK co mě je to platné když jsem vzal ten původní zdroják opravil jsem ty chyby a nacpal to do mcu a nic :smiling_imp:díky za trpělivost

Připoj pin RW LCD displeje na 0V.

Sekvence inicializace LCD pro HD44780:

čekej 15ms
D7 D6 D5 D4

0 0 1 1
E=0, čekej >= 4,1ms, E=1

0 0 1 1
E=0, čekej 100us,E=1

0 0 1 1
E=0, čekej >= 40us,E=1

0 0 1 0 4bitová komunikace
E=0,čekej >= 40us,E=1

0 0 1 0
1 0 x x 2řádky LCD
čekej >= 40us

0 0 0 0
0 0 0 1 Smaž LCD
čekej >= 1,64ms

0 0 0 0
1 1 0 0 Zapni LCD
čekej >= 40us

0 0 0 0
0 1 1 0 Incrementace
čekej >= 40us

Takže by to celé mělo vypadat asi takhle:

void LCD_init(void)
{
//Inisilaisasi LCD
_delay_ms(15);
LDP = 0x00;
LCP = 0x00;
LDDR |= 1<<LCD_D7 | 1<<LCD_D6 | 1<<LCD_D5 | 1<<LCD_D4;
LCDR |= 1<<LCD_E | 1<<LCD_RS;

          LDP|=1<<LCD_E|0<<LCD_RS;

//LCD_D7 až LCD_D4 nastav na 0011
LDP=0<<LCD_D7|0<<LCD_D6|1<<LCD_D5|1<<LCD_D4;
LDP&=~(1<<LCD_E); //E=0,zápis dat do LCD
_delay_ms(5); //čekej >=4,1ms

//LCD_D7 až LCD_D4 stále na 0011
LDP|=1<<LCD_E; //E=1
LDP&=~(1<<LCD_E); //E=0,zápis dat do LCD
_delay_us(100);

//LCD_D7 až LCD_D4 stále na 0011
LDP|=1<<LCD_E; //E=1
LDP&=~(1<<LCD_E); //E=0,zápis dat do LCD
_delay_us(40);
LDP|=1<<LCD_E; //E=1

//LCD_D7 až LCD_D4 na 0010__4bitová komunikace
LDP=0<<LCD_D7|0<<LCD_D6|1<<LCD_D5|0<<LCD_D4;
LDP&=~(1<<LCD_E); //E=0,zápis dat do LCD
_delay_us(100);
LDP|=1<<LCD_E; //E=1

LCD_send_command(0x28); //4-bit 2-line 4×8
LCD_send_command(0x0c); //disply on, cursor off, bling off
LCD_send_command(0x06); //shift inc, unsivible

}

tak jsem to upravil takto a ten signál RW sem na zem ale pořád to nefunguje díky za trpělivost
Text_LCD.c (3.78 KB)

Ještě jsem našel jednu chybu, pro příkaz LCD_HOME by měla být hodnota 0x02 a pro LCD_CLR 0x01.

A co takhle použít nějaké knihovny "LCD.c"nevíte o nějaké? díky za trpělivost.

Zkus stranku homepage.hispeed.ch/peterfleury/avr-lcd44780.html.
Soubor je na homepage.hispeed.ch/peterfleury/lcdlibrary.zip
S uspechem ji pouzivam, je jednoduse konfigurovatelna pro jakykoliv AVR. Zabira sice trochu vice v pameti, ale vleze se i do AtMegy8.
Vecer se dostanu doma, tak muzu dodat cely projekt pro tve zapojeni pro AVR Studio, vyzkousene na svem display ve stejnem zapojeni.

:arrow_right: administrator: přiloženy externí soubory
lcdlibrary.zip (21.8 KB)

Tak posilam priklad pro tve zapojeni. Vyzkouseno. melo by to fungovat.
V souboru lcd.h lze menit nastaveni pinu, na ktere to lze pripojit, ostatni pochopis z prikladu.
Projekt je vytvoreny v AVR Studiu.
LCD_Test.zip (74 KB)

Já nevím co tomu je ale bohužel pořád to nefunguje já to mám zapojeno podle project.irone.org/wp-content/upl … mega-8.gif plus ledka PB1 přes odpor na +5V a pojistky mám na tom nastaveny takto:viz obrázek když to zapnu tak na 3 sekundy se rozsvítí ledka pak začne blikat displej vůbec nic ani neblikne a v tom AVR studiu4 pří překladu to má 3 warmingy
…/LCD_Test.c: In function ‘main’:
…/LCD_Test.c:22: warning: implicit declaration of function ‘sprintf’
…/LCD_Test.c:22: warning: incompatible implicit declaration of built-in function ‘sprintf’ díky za trpělivost

:arrow_right: administrator: přiloženy externí soubory
lcd-with-atmega-8.gif
pojistky.JPG

Ahoj.
Ja to mam zapojene uplne stejne jako ty, takze to ma fungovat. Pokud ti blika LED, znamena to, ze uC funguje a dela to co ma, to znamena, ze je nutno hledat chybu v dratech mezi uC, napajenim a LCD. Kdyz vyndas uC zobrazi se ti cerne ctverecky v prvni rade?
Urcite bych zkusil vytahat vsechny draty a zapojit je zpatky, hezky jeden po druhem, treba je jenom nejaky nedolehly dratek, nebo to nepajive pole uz nefunguje tak jak ma. Anebo je to spatne zapojene, jenom prohozeny drat RS s RW.
Software by mel byt v poradku.
Pochybuji, ze by LCD byl nejak znicen, ale nemas nahodou jeste jeden na odzkouseni?
Warningy se mi tam objevuji taky, zatim jsem neprisel na to proc, ale funguje mi to.
Zkouseni zdar

sprintf asi bude potřebovat stdio.h

Meloun: pro začátek tam nahraj hex z dragonova programu, ne svůj po překladu.

DragonSoul: když nechám ten drátek R/W nezapojený tak mě se zobrazí ty čtverečky na celém horním řádku jinak je fakt že to nepajivé pole už “hodně pamatuje” také musím zkontrolovat drátek po drátku, a k tomu displeji bohužel nemám druhé pro kontrolu.díky za trpělivost

Hmm, ja mam vsechny draty krome D0-D3 zapojene, vcetne R/W. Doporucuji zmerit ohmetrem od vyvodu LCD k vyvodum uC, zda je to fyzicky spojene. Samozrejme bez napajeni.

To jsem samozřejmě udělal všechno sedí ,další zajímavý poznatek když vyndám displej z desky tak ledka svítí trvale díky za trpělivost

Ahoj.
To je asi v poradku, me to taky tak funguje, kdyz vytahnu LCD tak se uC zasekne na inicializaci LCD.
Je mi lito, ale asi ti vice pomoci uz nemuzu. Mam to tady na stole uplne stejne jako ty. Kdyz tak prosim jeste zkontroluj zapojeni dle datasheetu zdegme.cz/_dokumentace/dokumenty/513/513-109/dsh.513-109.1.pdf a dle datasheetu pro AtMega8. Ja vim ze si to uz nekolikrat zkontroloval, ale me se casto stava, ze to nefunguje nefunguje, vim 100% ze je to zapojene spravne, ale potom tam najdu 2 spatne propojene dratky.
Kdyz tak zkus jeste jednou vyfotit ten uC s displayem, trosku mene rozmazane foto…

Tady je to foto díky za trpělivost

Pokud dobře vidím, tak DATA4 není připojený k Portd.4.

:smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: díky díkydíkydíkydíkydíkydíkydíkydíkydíkydíkydíkydíkydíkydíky už to funguje :slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile: mám druhé vánoce

:arrow_right: administrator: příspěvek byl upraven
Předchozí příspěvky se necitují.

neskutocne…z toho vypliva ze treba menej pracovat a viacej odychovat… pac do oci bijuce chyby nevidime…