#include <avr/pgmspace.h>
const unsigned char LCD_CONV[] PROGMEM = {
'A' , // 0xC0 192 А/*{{{*/
0xA0 , // 0xC1 193 Б
'B' , // 0xC2 194 В
0xA1 , // 0xC3 195 Г
0xE0 , // 0xC4 196 Д
'E' , // 0xC5 197 Е
0xA3 , // 0xC6 198 Ж
0xA4 , // 0xC7 199 З
0xA5 , // 0xC8 200 И
0xA6 , // 0xC9 201 Й
'K' , // 0xCA 202 К
0xA7 , // 0xCB 203 Л
'M' , // 0xCC 204 М
'H' , // 0xCD 205 Н
'O' , // 0xCE 206 О
0xA8 , // 0xCF 207 П
'P' , // 0xD0 208 Р
'C' , // 0xD1 209 С
'T' , // 0xD2 210 Т
0xA9 , // 0xD3 211 У
0xAA , // 0xD4 212 Ф
'X' , // 0xD5 213 Х
0xE1 , // 0xD6 214 Ц
0xAB , // 0xD7 215 Ч
0xAC , // 0xD8 216 Ш
0xE2 , // 0xD9 217 Щ
0xAD , // 0xDA 218 Ъ
0xAE , // 0xDB 219 Ы
0xC4 , // 0xDC 220 Ь
0xAF , // 0xDD 221 Э
0xB0 , // 0xDE 222 Ю
0xB1 , // 0xDF 223 Я
'a' , // 0xE0 224 а
0xB2 , // 0xE1 225 б
0xB3 , // 0xE2 226 в
0xB4 , // 0xE3 227 г
0xE3 , // 0xE4 228 д
'e' , // 0xE5 229 е
0xB6 , // 0xE6 230 ж
0xB7 , // 0xE7 231 з
0xB8 , // 0xE8 232 и
0xB9 , // 0xE9 233 й
0xBA , // 0xEA 234 к
0xBB , // 0xEB 235 л
0xBC , // 0xEC 236 м
0xBD , // 0xED 237 н
'o' , // 0xEE 238 о
0xBE , // 0xEF 239 п
'p' , // 0xF0 240 р
'c' , // 0xF1 241 с
0xBF , // 0xF2 242 т
'y' , // 0xF3 243 у
0xE4 , // 0xF4 244 ф
'x' , // 0xF5 245 х
0xE5 , // 0xF6 246 ц
0xC0 , // 0xF7 247 ч
0xC1 , // 0xF8 248 ш
0xE6 , // 0xF9 249 щ
0xC2 , // 0xFA 250 ъ
0xC3 , // 0xFB 251 ы
0xC4 , // 0xFC 252 ь
0xC5 , // 0xFD 253 э
0xC6 , // 0xFE 254 ю
0xC7 // 0xFF 255 я/*}}}*/
};
char lcd_convert(char byte)
{
if ((unsigned char)byte > 0xBF) {
byte = pgm_read_byte(LCD_CONV + ((unsigned char)byte - 0xC0));
}
return byte;
}