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
Moderatorzy:Jacek Bogusz, procesorowiec, robertw, tomasz_jablonski, r-mik, Moderatorzy
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
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
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.
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.
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.
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
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
Hej,
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.
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
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.
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
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]
Przyślij na adres an177@poczta.fm
i do poniedziałku
[/list]
Jeszcze nie poskromiłem LCD
Witam,
jeszcze sie nie uporalem z tym paskudnym wyswietlaczem niestety grypa rozwalila mnie na lopatki. No ale... powrocilem do zywych i walcze nadal.
Pozdrawiam.
jeszcze sie nie uporalem z tym paskudnym wyswietlaczem niestety grypa rozwalila mnie na lopatki. No ale... powrocilem do zywych i walcze nadal.
Pozdrawiam.
Mogę pomóc
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.
U mnie działa kilka takich wyswietlaczy z własnym oprogramowaniem w asm.
- Tomasz Gumny
- -
- Posty:685
- Rejestracja:4 lut 2004, o 23:31
- Lokalizacja:Trzcianka/Poznań
Re: LCD w trybie 4-bit na at89c2051
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.1 wersja: na at89s8252. DZIAŁA!
2 wersja: na 89c2051. NIE działa!
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.
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 31 gości