Добавление своих символов на дисплее 1602 (русификация) - РАДИОСХЕМЫ

     простые интересные РАДИОСХЕМЫ сделанные своими руками


» ПОИСК СХЕМ


» РАДИОБЛОГИ
Сервотестер на микроконтроллере AtTiny13
Управление по UART со смартфона
Серво сбрасыватель и поисковая пищалка для квадрокоптера
Работа с адресными светодиодами WS2812B
Схема и проверка модулей SIM800
Двухканальное зарядное для гелевых аккумуляторов
Добавление своих символов на дисплее 1602 (русификация)
Очень простой датчик-реле уровня воды

Добавление своих символов на дисплее 1602 (русификация)

На просторах интернета очень много информации о работе с символьным дисплеем 1602. Может профессиональным программистам не составляет труда по этим заумным описаниям на устройства сразу начать использовать их во всех возможных режимах. Но в моем случае я столкнулся с жестким непониманием принципа добавления своих символов в этот дисплей (в том числе русификация дисплея 1602). Промучившись несколько дней и экспериментируя много много раз, я все-таки добился своего. При этом отметил несколько основных моментов, непонимание которых как раз мешали сразу решить свою задачу читая только инструкции. Может после прочтения данного блога кто то скажет: да это все итак в инструкции написано! Зачем еще раз это повторять!?

Но я вот, читая инструкции, этого не смог понять. Поэтому хочу поделиться своими умозаключениями по поводу данного дисплея. Может кому нибудь это поможет. Итак, поехали:

Первое: Внутри каждого дисплея 1602 есть таблица соответствия (рис 1).

По рис 2 можно увидеть что значения ячеек с адреса 16 до 127 соответствует стандартной кодировке ASCII.

А вот где-то после 157 до 255 идут какие то иероглифы. В алиэкспресс продаются дисплеи, в которых в таблице от 157 до 255 сразу зашиты русские символы. (Рис 3)

Такие дисплеи уже без прошивки будут выдавать русские буквы. Поэтому, если хотите купить русифицированный дисплей смотрите таблицу соответствия продаваемого дисплея.

Второе: Про инициализацию дисплея говорить не буду, а скажу сразу про отправку символов. Первым делом устанавливаем курсор в том месте дисплея где хотим печатать и отправляем нужный нам символ. Например отправляем символ "W".

При этом компилятор преобразует по таблице кодировки ASCII в биты - это 0b01010111 (это цифра 87 в десятичном исчислении) и отправляет его на дисплей.
Дисплей, получив эту цифру смотрит свою таблицу соответствия, и выводит на дисплей тот символ, который лежит у него по адресу 87.

И можно сказать, что не только выводит, а связывает эту ячейку дисплея с данной ячейкой таблицы соответствия. Почему связывает? Потому что если в ходе работы мы изменим ячейку таблицы соответствия, которая выведена на дисплей, то выведенный символ тоже измениться.

Теперь о самом главном: когда в инструкции на дисплей говориться о таблице CGRAM, куда можно добавлять свои символы, речь идет о первых 8 ячеек таблицы соответствия дисплея (рис 3). Грубо говоря - таблица соответствия дисплея, она постоянна, кроме первых 8 ячеек. И поэтому, когда нам нужно вывести свои символы, необходимо записать в эти 8 ячеек свои символы и потом направлять на вывод дисплея не символ ('W') как я писал вначале, а в двоичном виде (например 0b00000011) сразу номер ячейки, где лежит сделанный нами символ.

Запись своего символа осуществляется в таком порядке: после инициализации дисплея, в режиме rs0 отправляешь 0b01000 _ _ _ - и последние 3 бита это номер ячейки в таблице соответствия, куда хочешь записать свой символ.

После этой команды, применяя ту же команду, что и отправка обычных букв на печать отправляешь 8 байт (8 букв) на дисплей. Все эти 8 букв будут создавать рисунок твоего добавляемого символа (1 символа).

После 8 буквы можно установить курсор на необходимое место на дисплее и вывести созданное изображение на дисплей. Делается той же команду, что и отправка обычных букв на печать, только вместо ('W') пишешь а двоичном виде адрес ячейки в таблице соответствия куда ты запихнул новый символ (0b00000010).

На этом все. Надеюсь кому нибудь поможет данная статья. Всем удачи!


KOHTPOJIJIEP - 10.09.2020 - Прочитали: 3086



Ваши комментарии к материалу
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]


» РАДИОЭЛЕМЕНТЫ

Группа вконтакте Канал ютуб Группа в фэйсбук © 2010-2021 "Радиосхемы" Все права защищены Почта Моб.версия