У каждого радиолюбителя, разработчика, программиста есть множество программок “полезняшек”. Одни посерьезнее, другие с функциями попроще. И все они, так или иначе, помогают в творчестве на ниве радиолюбительства.
В один прекрасный день возникло ощущение, что чего-то не хватает. Даже программа Winamp никак не помогала избавиться от этого недуга. Дело касалось написания очередного русифицированного меню для знакосинтезирующего индикатора, в простонародье называемого LCD (2х16 и прочих – это для тех кто не понял). Да что говорить, очень многие столкнулись с вопросом непонимания кодировки LCD. И я об этом сужу по отзывам, сообщениям и письмам на статью “Темброблок с микроконтроллерным управлением на TDA8425”.
Друзья, ваши чувства мне близки по схожести эмоций. Если честно, и меня напрягает “кланяться” каждому кириллическому символу при написании русскоязычных экранных фраз. В итоге, без лишних изысков, по-быстрому была написана очередная полезняшка. Это конвертер текста в 16-ричные коды символов знакосинтезирующих индикаторов, собранных на HD44780, KS0066 и аналогичных.
Эта программа не имеет явной заточенности под какой либо синтаксис и контроллер. Полученный результат может быть использован как в ассемблере, так и в Си.
В ассемблере на PIC эффективнее работать с кодировкой через сопоставления, как это показано ниже (русский текст компилятор MPLAB адекватно обрабатывает, что выгодно PIC отличает от других микроконтроллеров):
; Cопоставление символов с числами ЖКИ А equ 0x41 Б equ 0xA0 В equ 0x42 ... |
Подобное оформление не занимает флеш-память МК и значительно облегчает работу.
Что касается синтаксиса Си для PIC, то здесь варианты использования ограничены только фантазией. Это могут быть и отдельные слова, и фразы, и словарные библиотеки в массивах, и даже контент в ПЗУ. В общем – кому как нравится и кто как умеет.
// массив заставка на русском const unsigned char arr_logo1 [8] = {0x50, 0x61, 0xE3, 0xB8, 0x6F, 0xBA, 0x6F, 0xBF}, // и тоже самое на английском const unsigned char arr_logo2 [8] = {‘R’,’A’,’D’,’I’,’O’,’K’,’O’,’T’}, |
Что мы видим? Про схожесть кодировки на английском не нужно рассказывать, это известный факт. А вот на русском языке придется приседать. И взята кодировка из типовой таблицы знакогенератора.
Ну и собственно программа. Всё просто.
Файлы:
Софт для ПК