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ć?
LCD do LPT
Dec 24, 2005
7 Replies
U¿ytkownik "Ktos" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:doian9$1pq$ snipped-for-privacy@nemesis.news.tpi.pl...
Je¿eli siê ¶wieci ca³y rz±d to najprawdopodobniej nie by³o albo ¼le przeprowadzona inicjalizacja LCD.
Jarosław S napisał(a):
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 . . . . . . . . . . . .141-8 : DB7-DB0
9 : E 10 : R/W 11 : RS 12,13,14 : V0,VSS,VDDi zastanawiałem się czy to jest w takim układzie
1 2 3 4 5 6 itpczy 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
raczej ten ale zoabcz jak ida sciezki, masa, podswietlnie itp
10 x sprawdz czy dobrze podlaczyles do LPT
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.
Krzysiek. napisał(a):
Oczywiście Nie, ale zaraz coś może znajdę w necie o tym.
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 } }
U¿ytkownik "Ktos" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:doj72m$dou$ snipped-for-privacy@nemesis.news.tpi.pl...
Chyba ¿artujesz - nie robisz inicjalizacji ?
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.
jest mnostwo softu obslugujacego LCD podczepione do LPT
formatting link
sprawdz, jak zadziala, bierz sie za wlasne pisanie
Jarosław S napisał(a):
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
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required