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
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
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