witam, zadalem juz to pytanie wczesniej ale sam nie wiem czemu w innej dyskusji, calkiem nie na temat. teraz sie poprawilem i zamieszczam nowego posta
w jaki sposob sa dzielone i wysylane rozkazy do wyswietlacza lcd po szynie 4 bitowej?
musze wiedziec bo mam wyswietlacz ktory ma tylko 4 bitowa szyne a robie program w assemblerze (AVR)
wiem ze inicjalizacja nie rozni sie od sterowanie 8 bitami bo wykorzystuje tlko 4 pierwsze ale co potem?
i czy po przeslaniu jednej polowki bajta trzeba czekac az wysw. nie bedzie zajety??
wlasne gotowe procedurki tez mile widziane ale przede wszystkim chcialbym sie dowiedziec jak to dziala i samemu napisac (a jak dostane od razu jakis przyklad to wiem ze nie bedzie mi sie chcialo robic i od razu walne gotowca)
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 4bit w asm...
Moderatorzy:Jacek Bogusz, procesorowiec, r-mik, Moderatorzy
-
- -
- Posty:269
- Rejestracja:1 kwie 2003, o 20:32
- Lokalizacja:Bielsko-Biała
Wysyłasz młodszą cześć bajta i zaraz po niej starszą. Albo odwrotnie, nie pomnę kolejności.
Też nie pamiętam, ale być może trzeba odczekać chwilę po wysłaniu jednej połówki bajta.
Aha, nie ma sensu sprawdzać, czy wyświetlacz jest gotowy. Lepiej odczekać jakiś czas (40us do chyba 1,54ms w zal. od rozkazu) i po sprawie.
Też nie pamiętam, ale być może trzeba odczekać chwilę po wysłaniu jednej połówki bajta.
Aha, nie ma sensu sprawdzać, czy wyświetlacz jest gotowy. Lepiej odczekać jakiś czas (40us do chyba 1,54ms w zal. od rozkazu) i po sprawie.
kawalek kodu :
kursor_on: ;wlaczenie migania kursora
ldi temp1, 0b00001111 ;
rcall lcd_command
rcall delay5ms
ret
lcd_command:
mov temp2, temp1
swap temp1
andi temp1, 0b00001111
out PORTD, temp1
rcall lcd_enable
andi temp2, 0b00001111
out PORTD, temp2
rcall lcd_enable
rcall delay50us
ret
moze sie na cos przyda
kursor_on: ;wlaczenie migania kursora
ldi temp1, 0b00001111 ;
rcall lcd_command
rcall delay5ms
ret
lcd_command:
mov temp2, temp1
swap temp1
andi temp1, 0b00001111
out PORTD, temp1
rcall lcd_enable
andi temp2, 0b00001111
out PORTD, temp2
rcall lcd_enable
rcall delay50us
ret
moze sie na cos przyda
-
- -
- Posty:269
- Rejestracja:1 kwie 2003, o 20:32
- Lokalizacja:Bielsko-Biała
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 17 gości