RTV forum PL | NewsGroups PL

LCD 2x16 do LPT - ciągle wyświetla pierwszy rząd, co może być nie tak?

LCD do LPT

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - LCD 2x16 do LPT - ciągle wyświetla pierwszy rząd, co może być nie tak?

Ktos
Guest

Sat Dec 24, 2005 2:12 am   



Podłączyłem zwyczajny LCD 2x16 hm.. próbowałem go jakoś wysterować, ale
nie reaguje na procedury tylko wciąż jedno - wyświetla się cały pierwszy
rząd. Czy może coś jest uszkodzone? Zresztą gdy nie jest podłączony
do kompa też tak się dzieje. Jak to uruchomić?

Jarosław S
Guest

Sat Dec 24, 2005 8:00 am   



Użytkownik "Ktos" napisał w wiadomości

Quote:
Podłączyłem zwyczajny LCD 2x16 hm.. próbowałem go jakoś wysterować, ale
nie reaguje na procedury tylko wciąż jedno - wyświetla się cały pierwszy
rząd. Czy może coś jest uszkodzone? Zresztą gdy nie jest podłączony
do kompa też tak się dzieje. Jak to uruchomić?

Jeżeli się świeci cały rząd to najprawdopodobniej nie było albo źle
przeprowadzona inicjalizacja LCD.

Ktos
Guest

Sat Dec 24, 2005 10:16 am   



Jarosław S napisał(a):
Quote:
Jeżeli się świeci cały rząd to najprawdopodobniej nie było albo źle
przeprowadzona inicjalizacja LCD.

Hm.. więc musi być jakaś inicjalizacja przeprowadzona Wink
Ja myślałem, że źle zrozumiałem układ pinów.
W dokumentacji jest pokazany 1 i 14 pin
Tak to wygląda:

1 .
.. .
.. .
.. .
.. .
.. .
..14

1-8 : DB7-DB0
9 : E
10 : R/W
11 : RS
12,13,14 : V0,VSS,VDD

i zastanawiałem się czy to jest w takim układzie

1 2
3 4
5 6 itp

czy takim:

1 8
2 9
3 10 itp ;)

Wybrałem ten pierwszy sposób i tak zbudowałem kabel do LPT
w sumie jeszcze nie wiem do końca jak to zaprogramować
Np chciałem wysłać rozkaz czyszczenia ekranu
Ustawiam kolejno E=0; RS=0; R/W=0;
no i ustawiam dane na Dane=1 i potem E=1;
Oczywiście nic się nie dzieje.

Próbowałem jakieś pętle opóźnienia wprowadzić i być może źle to robię...
W dokumentacji było podane Execution time (fosc=270kHz) i na instrukcję
Clear Display 1,52 ms, w sumie to zlekceważyłem i uznałem za nieistotne,
ale może trzeba uwzględnić te czasy. Też nie wiem czy z tymi pinami nie
jest pomerdane.

pozdrawiam

Krzysiek.
Guest

Sat Dec 24, 2005 10:23 am   



Quote:
1 2
3 4
5 6 itp


raczej ten ale zoabcz jak ida sciezki, masa, podswietlnie itp
10 x sprawdz czy dobrze podlaczyles do LPT

Quote:
Wybrałem ten pierwszy sposób i tak zbudowałem kabel do LPT
w sumie jeszcze nie wiem do końca jak to zaprogramować
Np chciałem wysłać rozkaz czyszczenia ekranu
Ustawiam kolejno E=0; RS=0; R/W=0;
no i ustawiam dane na Dane=1 i potem E=1;
Oczywiście nic się nie dzieje.

oczywiscie czytales kursy sterowania LCD (po pl w EdW byly, nawet fajne) a
co podstawowe odpaliles gotowe programy do sterowania LCD podpietego do
kompa... smatie lcd i podobne?

czasy sa wazne jak nie czytasz flagi zajetosci! Daj sleep > max (wszystkie
poszczegolne execution time) sleep(25) da rade np.

Ktos
Guest

Sat Dec 24, 2005 10:46 am   



Krzysiek. napisał(a):
Quote:
oczywiscie czytales kursy sterowania LCD (po pl w EdW byly, nawet fajne) a

Oczywiście Nie, ale zaraz coś może znajdę w necie o tym.

Quote:
co podstawowe odpaliles gotowe programy do sterowania LCD podpietego do
kompa... smatie lcd i podobne?

czasy sa wazne jak nie czytasz flagi zajetosci! Daj sleep > max (wszystkie
poszczegolne execution time) sleep(25) da rade np.

Hm... poszukam tych programów, mam nadzieję że da się ustalić pod który
pin w LPT co jest podłączone.

Ja mam dane podłączone od LPT od 2-9 pinu (Data port - 0x378)
14 - E, 1 - R/W, 16 - RS (control port 0x37A)

procedurka wygląda tak:
void clear()
{
_asm{
cli
mov eax,udalo
mov edx,0x378 // data register
out dx,al

mov eax,7
mov edx,0x37A // control register
out dx,al
sti
mov ecx, 0x18000
lB: loop lB
cli
mov eax,5
mov edx,0x37A // control register
out dx,al
sti

retn
}
}

Jarosław S
Guest

Sat Dec 24, 2005 10:59 am   



Użytkownik "Ktos" napisał w wiadomości

Quote:
Jarosław S napisał(a):
Jeżeli się świeci cały rząd to najprawdopodobniej nie było albo źle
przeprowadzona inicjalizacja LCD.

Hm.. więc musi być jakaś inicjalizacja przeprowadzona Wink

Chyba żartujesz - nie robisz inicjalizacji ?

Quote:
Ja myślałem, że źle zrozumiałem układ pinów.
W dokumentacji jest pokazany 1 i 14 pin
Tak to wygląda:

1 .
. .
. .
. .
. .
. .
.14

Najlepiej sprawdź, który ze skrajnych pinów jest GND i to będzie pin nr 1.
Większość LCD ma dwu albo jedno-rzędowy rozkład pinów. Jeżeli dwurzędowy to
najprawdopodobniej jest tak :

14 13
12 11
10 9
8 7
6 5
4 3
2 1
(Patrząc na wprost wyświetlacza numeracja pinów zaczyna się od prawego
dolnego pinu)

Jeżeli masz już dobrze podłączone to teraz musisz zainicjalizować LCD.
Sekwencja danych jest niestety uzależniona od trybu pracy (1 linia, 2 linie,
interfejs 4 lub 8 bitowy.... kursor...itp.) Potem dopiero można wpisywać
znaki na LCD.

Greg(G.Kasprowicz)
Guest

Sat Dec 24, 2005 11:26 am   



Quote:
Podłączyłem zwyczajny LCD 2x16 hm.. próbowałem go jakoś wysterować, ale
nie reaguje na procedury tylko wciąż jedno - wyświetla się cały pierwszy
rząd. Czy może coś jest uszkodzone? Zresztą gdy nie jest podłączony do
kompa też tak się dzieje. Jak to uruchomić?

jest mnostwo softu obslugujacego LCD podczepione do LPT
http://www.google.pl/search?hl=pl&q=LCD+LPT&btnG=Szukaj+w+Google&lr=
sciagnij, sprawdz, jak zadziala, bierz sie za wlasne pisanie

Ktos
Guest

Sat Dec 24, 2005 12:24 pm   



Jarosław S napisał(a):
Quote:
Jeżeli masz już dobrze podłączone to teraz musisz zainicjalizować LCD.
Sekwencja danych jest niestety uzależniona od trybu pracy (1 linia, 2 linie,
interfejs 4 lub 8 bitowy.... kursor...itp.) Potem dopiero można wpisywać
znaki na LCD.



Oki dzięki narazie udało mi się sterować kursorem.
Miałem źle podkręcony kontrast bo dopiero pod kątem zobaczyłem że coś
tam się jednak steruje, podkręciłem kontrast i został tylko migający
kursor, no i mogę nim poruszać ;)

pozdrawiam wszystkich

elektroda NewsGroups Forum Index - Elektronika Polska - LCD 2x16 do LPT - ciągle wyświetla pierwszy rząd, co może być nie tak?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map