Добрий день, шановні читачі!
Настав час підключити до нашого микроконтроллеру екран, який дозволить відображати різну інформацію. Для даної мети прекрасно підійде РКІ на базі контролера HD 44780, наприклад WH 1601, компанії WINSTAR.
Вартість даних РКІ досить низька, що дозволяє використовувати їх в аматорських проектах. Даний дисплей може відображати один рядок з 16 символів. Так само існують моделі, що відображають 2 рядки по 16 символів, 2 рядка по 8 символів, і безліч інших. Управління дисплеєм відбувається за допомогою передачі команд і даних від керуючого мікроконтролера - контролеру дисплея.
Призначення 16 висновків дісплеяWH1601:
VSS - 0 харчування, земля.
Vdd - +5 Вольт харчування.
V - Висновок настройки контрастності дисплея, шляхом подачі напруги від 0 до напруги харчування.
RS - Якщо на виведенні RS логічна "1" передаються дані, якщо логічний "0" передається команда.
R / W - Напрямок передачі. При R / W = "1" відбувається читання з дисплея, при R / W = "0", відбувається запис в дисплей.
E - При перемиканні логічного рівня на даній лінії, дисплей виробляє цикл читання / запису даних представлених на висновках DB 0- DB 7.
DB 0- DB 7 - Висновки даних. Даними висновками ми кодируем байт для передачі дисплея, або декодуємо байт, прийнятий від дисплея. Якщо DBx = "1" даний біт дорівнює одиниці, при DBx = "0" біт дорівнює нулю.
A - Анод світлодіода підсвічування екрану.
K - Катод світлодіода підсвічування екрану.
Передача даних відбувається наступним чином:
1.Устанавліваем логічну одиницю на RS. щоб вказати контролеру про передачу даних.
2. Встановлюєте логічний нуль на лінії R / W. так як напрямок передачі - до дисплея.
3.Виставляем байт даних на лінії DB 0- DB 7.
4.Подаем логічну одиницю на лінію E. на 60 мілісекунд, потім подаємо на лінію логічний нуль.
Читайте також AVR для початківців. Урок 8. АЦП.
Тим самим ми записуємо байт даних в відповідну пам'ять DDRAM. CGROM або CGRAM. Розглянемо кожен з видів пам'яті докладніше:
DDRAM - пам'ять виділена під зберігання символів на екрані. Все що записується в цій пам'яті, миттєво виводиться на екран. Запис символів необхідно виробляти в ASCII коді.
CGROM - пам'ять виділена під зберігання таблиці символів. При записи байта в DDRAM. відповідний символ знаходиться в даній таблиці і виводиться на екран.
CGRAM - пам'ять виділена для зберігання призначених для користувача символів. Якщо Вам необхідно вивести на екран символ, якого немає в стандартній таблиці, Ви можете самостійно намалювати його, і помістити в цю таблицю. В даному уроці розглядатися не буде.
Крім передачі даних, необхідно подавати спеціальні команди дисплею. Наприклад, вибір пам'яті, очищення екрана, зміна позиції курсора, і так далі. Контролер HD 44780 має наступну таблицю команд:
Дана таблиця має потребу в деякому поясненні.
Розглянемо формування команди по даній таблиці на прикладі команди зсуву курсора / екрану:
Насамперед записується номер команди, потім задаються параметри (див. Таблицю вище), а після можуть йти незначущі біти.
Передача команди відбувається за наступним алгоритмом:
1.Устанавліваем логічний нуль на RS. щоб вказати контролеру про передачу команди.
2. Встановлюєте логічний нуль на лінії R / W. так як напрямок передачі - до дисплея.
3.Виставляем байт команди на лінії DB 0- DB 7.
4.Подаем логічну одиницю на лінію E. на 60 мілісекунд, потім подаємо на лінію логічний нуль.
Наприклад, розглянемо послідовність команд, що реалізує наступний алгоритм:
Висновок на екран символу 'H'.
Для реалізації даного алгоритму подамо на контролер наступну послідовність команд:
* Перед передачею команд встановити R / W = 0, RS = 0
Читайте також AVR. Мови програмування.
Команда 001 "Визначення параметрів розгортки і ширини шини даних".
DL = 1 - ширина шини даних - 8біт.
N = 0 - один рядок символів.
F = 0 - матриця символів 5 x 8 точок.
Команда 00001 "Вибирається режим відображення"
- D = 1 - Екран включений.
- С = 0 - Курсор у вигляді прочерку вимкнений.
- І = 0 - Курсор у вигляді мерехтливого знакоместа вимкнений.
Перед передачею символу встановити R / W = 0, RS = 1
Передача символу 'H' в пам'ять DDRAM.
Як приклад зберемо простий пристрій инициализирующее РКІ, та виводить рядок "Hi!" На нього.
Цього разу, давайте спробуємо симулювати роботу нашого пристрою. У цьому нам допоможе програма Proteus. уроки роботи з якої ви можете знайти на нашому сайті. Дана програма надає широкі можливості емуляції роботи різних пристроїв на мікроконтролерах.
Зберемо просту схему.
Код прошивки на Сі: