Я пользуюсь для перекодировки русского язака таблицу
Код
code byte Table_coder[64]={
0x41,0xA0,0x42,0xA1,//0xC0...0xC3 <=> А Б В Г
0xE0,0x45,0xA3,0x33,//0xC4...0xC7 <=> Д Е Ж З
0xA5,0xA6,0x4B,0xA7,//0xC8...0xCB <=> И Й К Л
0x4D,0x48,0x4F,0xA8,//0xCC...0xCF <=> М Н О П
0x50,0x43,0x54,0xA9,//0xD0...0xD4 <=> Р С Т У
0xAA,0x58,0xE1,0xAB,//0xD5...0xD7 <=> Ф Х Ц Ч
0xAC,0xE2,0xAC,0xAE,//0xD8...0xDB <=> Ш Щ Ъ Ы
0x62,0xAF,0xB0,0xB1,//0xDC...0xDF <=> Ь Э Ю Я
0x61,0xB2,0xB3,0xB4,//0xE0...0xE4 <=> а б в г
0xE3,0x65,0xB6,0xB7,//0xE5...0xE7 <=> д е ж з
0xB8,0xA6,0xBA,0xBB,//0xE8...0xEB <=> и й к л
0xBC,0xBD,0x6F,0xBE,//0xEC...0xEF <=> м н о п
0x70,0x63,0xBF,0x79,//0xF0...0xE4 <=> р с т у
0xE4,0xD5,0xE5,0xC0,//0xF5...0xE7 <=> ф х ц ч
0xC1,0xE6,0xC2,0xC3,//0xF8...0xEB <=> ш щ ъ ы
0XC4,0xC5,0xC6,0xC7 //0xFC...0xEF <=> ь э ю я
};
byte coder(byte b)
{
if (b<192) return b;
else return Table_coder[b-192];
}
Для создания строки удобно пользовать функцию sprintf,(Конец строки добавляется автоматом):
Код
sprintf(buffer,"Строка 1");
for(...)
buffer[i] =coder(buffer[i]);
//Write to LCD