Малюємо свої символи на LCD (HD44780)
Дисплеї на основі контролера HD44780 вродливі і дуже зручні у використанні, але мають один недолік - обмежений набір символів. Може виникнути ситуація, коли потрібного для нашого проекту символу в стандартному наборі просто не виявиться і що ж тоді робити. Вихід з цієї ситуації є.
Розберемося як же це зробити.
Відповідь я знайшов в одному з прикладів, який йшов разом з CodeVisionAVR (до речі це не єдиний корисні і цікавий приклад, вони розташовуються Папка з програмою # 92; examples # 92;).
І так для запису одного символу в контролер дисплея нам необхідно зробити наступне:
typedef unsigned char byte; # 92; # 92; Оголошуємо новий тип змінної
# 92; # 92; Визначаємо безпосередньо сам символ (має 5 точок в ширину і 7 у висоту)
Запис символу проводиться строго тільки після ініціалізації дисплея, ніяк не до (тобто після lcd_init (16);).
Все основне для запису у нас є, тепер використовуємо на прикладі.
У минулій статті я розглядав спосіб створення прогрессбар на стандартному символі 0xFF. Прогрессбар складався з 16 прямокутників і заповнювався скажімо так дещо грубувато, додавши кілька своїх символів в екран ми можемо зробити його плавним.
Підготуємо коди нових символів, так як символ складається з 5 стовпців то можна намалювати п'ять цих стовпців і поступово зафарбовувати символ цілком:
flash byte char0 [8] =