Сайт про електроніку, мікроконтролерах і саморобки

Малюємо свої символи на 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] =