Какой смысл D0-D3 на ЖК-дисплее?

10

Библиотека Arduino LiquidCrystal имеет 4 конструктора с разными аргументами:

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)

Следующие комментарии приведены для аргументов конструктора:

[...] d0, d1, d2 и d3 являются необязательными; если не указан, ЖК-дисплей будет управляться с использованием только четырех строк данных (d4, d5, d6, d7).

Какой смысл, d0-d3если они не нужны? Уменьшат ли они время отклика?

Друг ким
источник

Ответы:

12

Этот тип ЖК-дисплея имеет два основных режима работы: 4-битный режим, который использует 4 контакта данных (d4-d7), и 8-битный режим, который использует все 8 контактов данных (d0-d7).

Преимущество 4-битного режима в том, что на Arduino требуется меньше выходных контактов. Однако это означает, что ваш эскиз должен отправлять каждую команду / символ в виде двух отдельных пакетов по 4 бита (один за другим). Это автоматически обрабатывается библиотекой LiquidCrystal, поэтому вам не понадобится дополнительная сложность кода. Однако это означает, что вашему эскизу требуется примерно удвоенное количество тактов процессора для отправки чего-либо на ЖК-дисплей.

В отличие от этого, 8-битный режим отправляет каждую команду / символ как один пакет из 8 бит. Это просто означает, что технически он работает немного быстрее.

С учетом сказанного человек, смотрящий на дисплей, вероятно, большую часть времени не увидит значительной разницы в скорости, поскольку она все еще идет очень быстро. Основное влияние будет на микроконтроллер (в данном случае Arduino). Если он может использовать более быстрый 8-битный режим, он может посвятить немного больше времени обработке другим вещам. Это может быть особенно полезно для критически важных приложений.

Питер Блумфилд
источник
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.Как правило, это не проблема, поскольку многие модули (особенно дешевые китайские, например, на eBay), как правило, имеют низкие частоты обновления, поэтому вы не сможете обновить их слишком быстро, пока они не превратятся в размытый, нечитаемый беспорядок.
Synetech
3

Ответ находится на той же странице, что и цитата, которую вы упомянули (я выделил важное утверждение):

Создает переменную типа LiquidCrystal. Дисплей можно контролировать с помощью 4 или 8 строк данных . Если первый, пропустите номера выводов для d0 до d3 и оставьте эти линии неподключенными. Контакт RW может быть привязан к земле, а не подключен к контакту на Arduino; если так, опустите его из параметров этой функции.

Оказывается, ЖК-дисплей Hitachi HD44780 может работать в 4-битном или 8-битном режимах.

jfpoilpret
источник
1
Да, он говорит, что им можно управлять, используя как 4, так и 8 строк данных. Но какой смысл использовать 8, если вам нужно только 4? Я имею в виду, нет ли преимущества использования 8 над 4? Зачем тратить 4 строки данных, если они бесполезны?
Друг Ким
1
Использование режима 8 битов немного быстрее на стороне Arduino и проще (меньше кода). Но в целом это не стоит того, чтобы сэкономить 4 выходных контакта.
jfpoilpret
@jfpoilpret Это того стоит, если у вас есть четыре дополнительных вывода вывода ...
Anonymous Penguin
@annon Можете ли вы быть более конкретным о том, КАК стоит использовать режим 8 пинов? Конкретные значения эксперимента?
jfpoilpret
1
@jfpoilpret Как указано в ответе Питера , это дает немного больше времени на обработку чипа. Если у вас есть четыре дополнительных булавки, добавьте их. Если это потребовало бы, чтобы это было намного больше / более дорого, это действительно не стоит того.
Анонимный пингвин
1

Наличие этих выводов является требованием техники, которая должна была использоваться для интерфейса ЖК-дисплея с микропроцессорами, которые были доступны еще при разработке чипа контроллера HD44780U.

Однокристальные микроконтроллеры, какими мы их знаем, еще были в будущем, и ЖК-дисплей пришлось сопрягать с 8-разрядными микропроцессорными микросхемами того времени, используя те же методы, что и любые другие 8-разрядные устройства ввода-вывода или устройства памяти, которые были немного автобус

Floresta
источник