Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

LCD w trybie 4-bit na at89c2051

markom
-
-
Posty: 7
Rejestracja: 4 sty 2004, o 13:29

LCD w trybie 4-bit na at89c2051

Postautor: markom » 4 sty 2004, o 13:50

Witam,
mam problem z uruchomieniem wyswietlacza LCD (2x16) na procku 89c2051 (magistrala 4-bity).

1 wersja: Program napisany w asemblerze, uruchominoy na at89s8252. Bity danych - P2.4 - P2.7; bity sterujace - P3.6 (RS); P3.4 (EN); P3.5 (R/W). DZIAŁA!

2 wersja: w/w program przerzucony na 89c2051. Bity danych - P1.2 - P1.5; bity sterujace - P3.7 (RS); P1.6 (EN); P1.7 (R/W). NIE działa!

Podejrzewam, ze przy zapisie danych do P1 cos sie dzieje z bitami sterujacymi. NIE jestem wytrawnym programista, wiec prosze o wyrozumialosc i jakies sugestie. Na co zwrocic szczegolna uwage. :?

Dzieki. Pozdrawiam

Awatar użytkownika
gawel
-
-
Posty: 683
Rejestracja: 24 lis 2003, o 11:19
Lokalizacja: Białystok

Postautor: gawel » 5 sty 2004, o 12:35

Trudno jest wskazać błędy w programie nie widząc jego, ale...nasuwa mie się taka jedna sugestia:
w jednym przypadku masz dane na jednym porcie, sterowania na drugim,
w drugim przypadku masz dane i część sterowania (szczególnie E i RW na tym samym porcie,

Jeżeli robisz to w ten sposób, że ustawiasz sobie w akumulatorze bity danych i robisz OUT na portm to będzie żle, bo w ten sposób wyserowywujesz sygnal E i RW do stanu niskiego, czyli wnosisz zamieszanie dla LCD.
Przed wysłaniem OUT'em danych do portu ustaw w akumulatorze bity odpowiadające sygnałom E i RW do stanu odpowiedniego.

Nie wiadomo, czy to pomoże, bo nie znany jest sposób obsługi, ale jest to jakaś sugestia.

gktiger
-
-
Posty: 43
Rejestracja: 6 paź 2003, o 14:20

Postautor: gktiger » 5 sty 2004, o 15:10

Zwróć uwagę na inicjowanie wyświetlacza w trybie 4. bitowym. Najpierw wysyłasz cztery bity inicjujące tryb czterobitowy na linie danych. Póżniej wszystkie pozostałe rozkazy sterujące wyświetlaczem przesyłane są jako: najpierw cztery starsze bity słowa i później cztery młodsze bity słowa ośmiobitowego.

Awatar użytkownika
gawel
-
-
Posty: 683
Rejestracja: 24 lis 2003, o 11:19
Lokalizacja: Białystok

Postautor: gawel » 6 sty 2004, o 09:58

Kologo gktiger, zwróć uwagę, że markom miał interfejs na 4 bitach i pozostał na 4 bitach.

gktiger
-
-
Posty: 43
Rejestracja: 6 paź 2003, o 14:20

Postautor: gktiger » 6 sty 2004, o 10:31

Racja :D

markom
-
-
Posty: 7
Rejestracja: 4 sty 2004, o 13:29

Postautor: markom » 6 sty 2004, o 18:59

Witam,
caly czas walcze z tym LCD, narazie bezskutecznie. Bazuje na kodzie J.Bogusza ze strony easy-soft.prv.pl Odkrylem, ze po instrukcji "swap A" moga dziac sie dziwne rzeczy i narazie jestem na etapie modyfikacji procedur pomocniczych. Zapis do portu P1 moze ingerowac tylko w 4-bity magistrali LCD.... Jak juz sie uporam to dam znac. Tymczasem uwagi i sugestie mile widziane.
Pozdrawiam

Awatar użytkownika
gawel
-
-
Posty: 683
Rejestracja: 24 lis 2003, o 11:19
Lokalizacja: Białystok

Postautor: gawel » 7 sty 2004, o 10:46

Sprawdz miejsca, w których używasz portu P1 w formie OUT na P1, szczególnie w obsługach przerwań, bo te mogą włamywać się w twoją obsługę LCD w sposób asynchroniczny.

Awatar użytkownika
gawel
-
-
Posty: 683
Rejestracja: 24 lis 2003, o 11:19
Lokalizacja: Białystok

Postautor: gawel » 7 sty 2004, o 10:49

Jak nic nie wymyślisz, to daj znać, udostępnię w asm własne procedury obsługi LCD.

markom
-
-
Posty: 7
Rejestracja: 4 sty 2004, o 13:29

Postautor: markom » 8 sty 2004, o 19:45

Hej,
:no: nadal nic. Po uruchomieniu układu na LCD pierwszy rzad swieci na czarno i tyle. W ktoryms momencie udalo mi sie cos zrobic, ze tylko jedno pole mi pulsowalo a po sygnale RESET przeskakiwalo na nastepna pozycje. Co ciekawe gdy tak RESET-owalem zauwazylem, ze kursor "zalicza" 40 pozycji w rzedzie i przeskakuje do nastepnego. Nie wiem jak to sie stalo, nie wiem dlaczego - nie zapisalem sobie co zmienilem i nie potrafie do tego wrocic. :?
:evil: Chyba dam luz na 1 dzien, bo juz nie wiem czego sie przyczepic.

PS: Chetnie zerkne na gotowe procedury - gawel. Dzieki! Jakbys chcial, to moge podeslac to, co udalo mi sie sklecic (do oceny i wytkniecia bykow :) ).

Pozdrawiam

Awatar użytkownika
gawel
-
-
Posty: 683
Rejestracja: 24 lis 2003, o 11:19
Lokalizacja: Białystok

Postautor: gawel » 9 sty 2004, o 10:09

Istnieje duże prawdopodobvvieństwo, ze błędu nie ma w obsłudze LCD, bo piszesz o niepowtarzalnym zachowaniu się całości.
Przyślij na adres an177@poczta.fm
i do poniedziałku
[/list]

markom
-
-
Posty: 7
Rejestracja: 4 sty 2004, o 13:29

Jeszcze nie poskromiłem LCD

Postautor: markom » 28 sty 2004, o 13:22

Witam,
jeszcze sie nie uporalem z tym paskudnym wyswietlaczem :oops: niestety grypa rozwalila mnie na lopatki. No ale... powrocilem do zywych i walcze nadal.

Pozdrawiam.

INFEL
-
-
Posty: 2
Rejestracja: 4 cze 2003, o 13:49
Lokalizacja: Szczecin

Mogę pomóc

Postautor: INFEL » 4 lut 2004, o 08:06

Jeśli przyślesz schemat i kod programu na e-mail to na pewno pomoge.
U mnie działa kilka takich wyswietlaczy z własnym oprogramowaniem w asm.

Awatar użytkownika
Tomasz Gumny
-
-
Posty: 685
Rejestracja: 4 lut 2004, o 23:31
Lokalizacja: Trzcianka/Poznań

Re: LCD w trybie 4-bit na at89c2051

Postautor: Tomasz Gumny » 5 lut 2004, o 05:28

1 wersja: na at89s8252. DZIAŁA!
2 wersja: na 89c2051. NIE działa!
Jeśli nadal się z tym nie uporałeś, to proponuję podciągnąć do +5V wszystkie piny wychodzące do LCD za pomocą rezystorów ~10k. AT89S8252 ma Voh=800uA, a AT89C2051 tylko 80uA.

:oops: Poprawka: to wartość wypływającego prądu, przy którym Voh ma jeszcze sensowną wartość.
Ostatnio zmieniony 5 lut 2004, o 12:15 przez Tomasz Gumny, łącznie zmieniany 1 raz.

markom
-
-
Posty: 7
Rejestracja: 4 sty 2004, o 13:29

Postautor: markom » 5 lut 2004, o 11:34

Witam,
udało się. LCD pokonany.
Problem tkwił w tym, że 2 linie portu P1 wykorzystuje również przetwornik AC i on wprowadza zamieszanie. Pisał o tym GAWEL, ale dopiero dziś mnie olśniło :D Co prawda nie wymyśliłem jeszcze sposobu na niego, ale wiem w czym problem.

Dzięki za wszelaką pomoc.

Pozdrawiam.

Awatar użytkownika
gawel
-
-
Posty: 683
Rejestracja: 24 lis 2003, o 11:19
Lokalizacja: Białystok

Postautor: gawel » 5 lut 2004, o 11:51

No to moje gratulacje, markom

Wróć do „8051”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 19 gości