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

lcd

В библиотеке 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, если они не нужны? Уменьшат ли они время ответа?

, 👍13


3 ответа


Лучший ответ:

14

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

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

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

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

,

С учетом сказанного, человек, глядя на дисплей, скорее всего, не увидит значительной разницы в скорости большую часть времени, поскольку скорость все равно очень высокая. Что обычно не является проблемой, поскольку многие модули (особенно дешевые китайские, вроде тех, что продаются на eBay), как правило, имеют низкую частоту обновления, поэтому вы в любом случае не сможете обновить их слишком быстро, не превратив изображение в размытое и нечитаемое., @Synetech


3

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

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

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

,

Да, там говорится, что им можно управлять с помощью как 4, так и 8 линий данных. Но какой смысл использовать 8, если вам нужно только 4? Я имею в виду, разве нет никаких преимуществ использования 8 перед 4? Зачем тратить 4 линии данных, если они бесполезны?, @Friend of Kim

Использование 8-битного режима немного быстрее на стороне Arduino и проще (меньше кода). Но в целом, это того не стоит, по сравнению с экономией 4 выходных пинов., @jfpoilpret

@jfpoilpret Оно того стоит, если у вас *есть* четыре дополнительных выходных контакта..., @Anonymous Penguin

@annon, можешь ли ты сказать более конкретно, КАК стоит использовать режим 8 контактов? Конкретные экспериментальные значения?, @jfpoilpret

@jfpoilpret Как указано в ответе Питера, это дает немного больше времени обработки чипу. Если у вас есть четыре дополнительных контакта, продолжайте и добавляйте их. Если это потребует от него большего размера/более высокой стоимости, то это того не стоит., @Anonymous Penguin


2

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

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

,