Jaki jest sens D0-D3 na wyświetlaczu LCD?


10

Biblioteka Arduino LiquidCrystal ma 4 konstruktory z różnymi argumentami:

LiquidCrystal(rs, enable, d4, d5, d6, d7) 
LiquidCrystal(rs, rw, enable, d4, d5, d6, d7) 
LiquidCrystal(rs, enable, d0, d1, d2, d3, d4, d5, d6, d7) 
LiquidCrystal(rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7)

Dla argumentów konstruktora podano następujące komentarze:

[...] d0, d1, d2 i d3 są opcjonalne; jeśli zostanie pominięty, wyświetlacz LCD będzie sterowany przy użyciu tylko czterech linii danych (d4, d5, d6, d7).

Po co, d0-d3jeśli nie są potrzebne? Czy skrócą czas reakcji?

Odpowiedzi:


12

Ten typ wyświetlacza LCD ma dwa główne tryby działania: tryb 4-bitowy, który wykorzystuje 4 piny danych (d4-d7) oraz tryb 8-bitowy, który wykorzystuje wszystkie 8 pinów danych (d0-d7).

Tryb 4-bitowy ma tę zaletę, że wymaga mniejszej liczby pinów wyjściowych w Arduino. Oznacza to jednak, że szkic musi wysłać każdą komendę / postać jako dwie oddzielne partie 4-bitowe (jedna po drugiej). Jest to obsługiwane automatycznie przez bibliotekę LiquidCrystal, więc nie potrzebujesz dodatkowej złożoności kodu. Oznacza to jednak, że szkic wymaga około dwukrotnej liczby cykli procesora, aby wysłać cokolwiek na wyświetlacz LCD.

Natomiast tryb 8-bitowy wysyła każde polecenie / znak jako pojedynczą partię 8-bitów. Oznacza to po prostu, że technicznie działa trochę szybciej.

Powiedziawszy to, osoba patrząca na wyświetlacz prawdopodobnie nie zobaczy znaczącej różnicy prędkości przez większość czasu, ponieważ wciąż idzie bardzo szybko. Główny wpływ będzie miał na mikrokontroler (w tym przypadku Arduino). Jeśli może korzystać z szybszego trybu 8-bitowego, może poświęcić nieco więcej czasu na inne rzeczy. Może to być szczególnie pomocne w aplikacjach o krytycznym czasie.


With that said, a person looking at the display probably won't see a significant speed difference most of the time, as it still goes very quickly.Co zwykle nie stanowi problemu, ponieważ wiele modułów (szczególnie tanich chińskich, takich jak te na eBayu) ma zwykle niskie częstotliwości odświeżania, więc nie można ich aktualizować zbyt szybko, bez zamiany w zamazany, nieczytelny bałagan.
Synetech,

3

Odpowiedź znajduje się na tej samej stronie co cytowany przez ciebie cytat (podkreśliłem ważne stwierdzenie):

Tworzy zmienną typu LiquidCrystal. Wyświetlaniem można sterować za pomocą 4 lub 8 linii danych . Jeśli to pierwsze, pomiń numery pinów od d0 do d3 i pozostaw te linie niepodłączone. Szpilka RW może być przywiązana do uziemienia zamiast podłączana do szpilki w Arduino; jeśli tak, pomiń go w parametrach tej funkcji.

Okazuje się, że ekran LCD Hitachi HD44780 może pracować w trybach 4-bitowych lub 8-bitowych.


1
Tak, mówi, że można nim sterować za pomocą 4 i 8 linii danych. Ale po co używać 8, jeśli potrzebujesz tylko 4? Mam na myśli, czy nie ma przewagi używania 8 nad 4? Po co marnować 4 linie danych, jeśli nie ma sensu?
Przyjaciel Kim

1
Korzystanie z trybu 8 bitów jest nieco szybsze po stronie Arduino i prostsze (mniej kodu). Ale ogólnie rzecz biorąc, to nie jest tego warte, w porównaniu do oszczędzania 4 pinów wyjściowych.
jfpoilpret

@jfpoilpret warto jeśli mają cztery dodatkowe piny wyjściowe ...
Anonymous Penguin

@annon, czy możesz być bardziej konkretny na temat JAK warto używać trybu 8 pinów? Konkretne wartości eksperymentów?
jfpoilpret

1
@ jfpoilpret Jak stwierdzono w odpowiedzi Petera , procesor ma nieco więcej czasu przetwarzania. Jeśli masz cztery dodatkowe szpilki, dodaj je. Jeśli wymagałoby to, aby był znacznie większy / droższy, to naprawdę nie jest tego warte.
Anonimowy pingwin

1

Obecność tych pinów jest wymogiem techniki, która musiała zostać zastosowana do połączenia wyświetlacza LCD z mikroprocesorami, które były dostępne już w momencie opracowania układu kontrolera HD44780U.

Mikrokontrolery jednoukładowe, jakie znamy, były jeszcze w przyszłości, a wyświetlacz LCD musiał być podłączony do 8-bitowych mikroprocesorów tamtych czasów, przy użyciu tych samych technik, jak każde inne 8-bitowe we / wy lub urządzenie pamięci, które było 8- bit bus.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.