Який сенс D0-D3 на LCD?


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-бітному режимах.


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-бітний ввід / вивід або пам'ять, який був 8- розрядний автобус.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.