problem z inicjacja LCD

Apr 10, 2008 8 Replies

witam.



Zmontowa³em po³±czenia jak na stronie:

formatting link
wy¶wietlacze LCD na uk³adzie HD44780 16x2 lub 20x4 przy zastosowaniu programu:
formatting link
sprawdzi³em poprawno¶æ po³±czeñ i LCD ³adnie dzia³a.



Chcia³em potrenowaæ sterowanie wy¶wietlaczem z delphi posi³kuj±c siê wiadomo¶ciami ze stron:

formatting link
u¿y³em kodu ze strony 4programmers i dzia³a wy¶wietlanie dowolnego tekstu. chcia³em potrenowaæ sterowanie LCD 4 bitowo (przed u¿yciem do sterowania uk³adu o wyj¶ciu 4 bitowym) i tu pojawiaj± siê schody wy¶wietlacz nie chce siê zainicjalizowaæ pry u¿yciu 4 bitów. W wy¿ej wymienionym programie jest procedura LCD_Init, która wywo³uje 3 razy LCD_WriteCommand($38) (czyli 0011 1000) ale jest to instrukcja do sterowania



8bitowego, gdy zamieniam j± na w³a¶ciw± czyli 0011**** -> 0011 0000 -> $30 wy¶wietlacz siê nie inicjalizuje prawid³owo.

Gdzie jest b³±d. Dlaczego LDC nie dzia³a przy $30 a dzia³a przy $38 Nigdzie nie mogê znale¼æ odpowiedzi wszêdzie napisane ze wystarczy zapisaæ 3 krotnie $30 z przerwami. - a to nie dzia³a


Dnia Thu, 10 Apr 2008 10:14:17 +0200, krokodyl napisał(a):

Ja wysyłałem 1 raz 0010 1000 - wg pdf'a 5 bit to tryb 4/8-bit. Ściagnij PDF z opisem HD44780 tam instrukcje są ladnie rozpisane.

Pozdrawiam, Henry

mam instrukcje HD44780 i jest podane ze wysyla sie 3 krotnie 0011**** obojetne czy przy 8 czy 4 bitach. Ty Henry wysy³asz 0010 1000 ale do tego jest potrzebne sterowanie 8 bitowe. a ja chce wszystko robic tylko 4 bitami.

Pozdrawiam. Pawe³

A wed³ug mojega pdfa wychodzi, ¿e powinno byæ wys³ane

0010 0010 00**

U¿ytkownik "EM" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:ftkrh8$9mh$ snipped-for-privacy@news.onet.pl...

Mo¿e co¶ ¿e widzê:

formatting link
albo zle wyjasnilem na stronie 45 jest graf inicjalizacji 8bit 0011****, a na stronie 46 dla 4 bitow 0011 wykonac 3 razy dopiero dalej ustawia sie wlasciwy tryb pracy na 4 bit 0010 (D7-D4) (D3-D0 mam wtedy 0000) i dalej reszta ustawien.

Jak w programie zainicjalizujê go tak jak pisa³em przy urzyciu 8 bitów (LCD_WriteCommand($38) (czyli 0011 1000) ) czyli znikn± pocz±tkowe czarne kwadraciki dam inicjalizacje na nowo 4 bitowo (LCD_WriteCommand($30) (czyli

0011 0000) ) to kwadraciki pojawiaj± siê na nowo. Nie wydaje mi siê aby to by³ problem ze kilka razy próbujê inicjalizowaæ wy¶wietlacz, bo jak dam kolejny raz 8 bitow (LCD_WriteCommand($38) (czyli 0011 1000) ) to kwadraciki znikaj± i mo¿na sterowaæ. I dlaczego dzia³a przy $38 a nie $30??

Pozdrawiam

Dnia Thu, 10 Apr 2008 12:16:18 +0200, krokodyl napisał(a):

Mam procedurkę w asm która wysyła 4-bitowo najpierw górę, a potem dół bajtu, czyli wysyła:

0010 1000

tylko masz rację - przed tym wysyłam jeszcze 0010 maskując port więc w sumie trzy komendy:

0010 ; init 0010 ; 4-bity 1000 ; wyświetlacz 2 linie, 5x8

a potem już tylko włączanie kursorów itp...

Pozdrawiam, Henry

U¿ytkownik "krokodyl" snipped-for-privacy@tbf.com.pl> napisa³ w wiadomo¶ci news:ftkst8$enc$ snipped-for-privacy@news.onet.pl...

akurat w tej chwili strona niedostêpna, ale w moim lokalnym pdf-ie jest dok³adnie tak jak Henry pisa³ - pierwsz± instrukcj± jest 0010 (pojedynczy wpis - i jest to jedyny pojedynczy wpis po w³±czeniu zasilania) i potem 0010

00** jako w³a¶ciwa inicjalizacja, wpisywane ju¿ jako dane 4-bitowe (czyli 2 kolejne wpisy).

e.

Dnia Thu, 10 Apr 2008 14:38:29 +0200, Henry(k) napisał(a):

..i jeszcze jedno - jakby ktoś chciał się pobawić to niech uważa na przerwy między komendami - LCD gubi komendy które są podane za szybko.

Pozdrawiam, Henry

Ogólnie racja z t± inicjalizacj±. Sprawdza³em u siebie w obs³udze i zgadza siê ogólnie z tym grafem - te¿ siê na nim wzorowa³em pisz±c to. Niestety trudno wyczuæ co mo¿e byæ nie tak, gdy siê u¿ywa PCta do sterowania LCD przez LPT. Na pocz±tek próbowa³bym z d³uzszymi czasami przerwy. Nie wiadomo te¿ jak to jest ze sterowaniem LPT - chodzi o wyzwolenie impulsu E. W takim wypadku warto by prze¶ledziæ przebiegi na oscyloskopie.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required