Уря! Победил собственный знакогенератор. Теперь очередная версия библиотеки для ЖКИ.
Итак. Если подключаете собственные "рисованные" символы, то достаточно поставить ЕДИНИЧКУ в нужном месте (все в шапке файла LCD4.asm), а после этого нарисовать свои символы в массиве (таблице), которая ниже. Таблица организована так, чтобы наглядно было сразу, где и какой символ. Но помните, три старших бита не будут выведены на экран, значащие только пять младших (см. даташиты на ЖКИ). Таблица занимает в памяти программ 64 Байта соответственно.
Теперь, при подключении своих символов ваша программа вырастет на
118 Байт (
64 Байта таблица и 54 Байта перенос этой таблицы в CGRAM ЖКИ).
Если хотите сэкономить на Байтах, то можно не подключать все это, а просто рисовать символы самому... Но так не удобно..
В таблице по умолчанию уже прописан (нарисован) "шрифт цифр" из которого потом нарисованы вон те часики, что сверху на фотках.
Чтобы вам не лень было считать, то подключенная библиотека и инициализированный дисплей с чтением флага занятости и с таблицей символов добавит к вашей программе
306 Байт... Но, как и раньше, все зависит от вашего выбора, можно не подключать некоторые модули. В исходном состоянии Без таблицы и без флага занятости так и осталось
158 Байт.
Теперь, чтобы вывести свой символ на экран, нужно (все просто).
SYMBOL Х (где Х - это код символа от 0х00 до 0х08)
вот так. всего 8 штук. Если посмотрите на таблицу символов встроенного знакогенератора, то увидите, что там как раз первые 8 ячеек пустые, как раз под ваши символы.
На всякий случай добавил свой основной файл в архив, чтобы можно было посмотреть на инициализацию и вывод символов. )))))
З.Ы. Чуть позже добавлю макрос, если кто хочет нарисовать только один символ в процессе программы его вставит, а памяти на целую таблицу жалко.
Добавил. Теперь можно нарисовать только один символ, при этом с помощью этого макроса ваша программа увеличится на
50 Байт на каждый новый символ. Поэтому, один, ну два символа еще выгодно так нарисовать, но если используется более двух собственных символов, то выгоднее подключить всю таблицу...
Итак, макрос USER_SYM у которого ДЕВЯТЬ(!) параметров.

Все про него в файле LSD4_MACRO.inc.
Используется
сразу после инициализации ЖКИ. Можно было организовать сразу вывод в текущую позицию, то тогда надо бы было читать из ЖКИ текущее значение DDRAM, а это увеличит код и мне лень.
Вывод своих символов как обычно: SYMBOL X, где Х - код собственного символа от 0 до 7.
Архив добавил (на всякий случай, добавил основной файл программы, чтобы можно было видеть использование макросов).
З.З.Ы. Пока рассматривал код, еще чуток улучшил его сэкономив один байт... Теперь при чтении флага занятости не 198 Байт, а
196 Байт кода.

Версия - 3.