Более лучше разобрался оказалось кириллица работает. Но в редакторе вместо кириллицы кракозябры. Функции писал сам.
CODE
void LCD_cmd (char param)
{
xdata char i;
P2 = P2 & ~RS & ~RW & ~E;
for(i=0;i!=REACTTIME;i++);
P2 = P2 | E;
for(i=0;i!=REACTTIME;i++);
P0 = param;
for(i=0;i!=REACTTIME;i++);
P2 = P2 & ~E;
for(i=0;i!=REACTTIME;i++);
}
void LCD_data(char Data)
{
xdata char i;
P2 = P2 & ~RW | RS;
for(i=0;i!=REACTTIME;i++);
P2 = P2 | E;
for(i=0;i!=REACTTIME;i++);
P0 = Data;
for(i=0;i!=REACTTIME;i++);
P2 = P2 & ~E;
for(i=0;i!=REACTTIME;i++);
}
void LCD_start (void)
{
LCD_cmd(0x38);
LCD_cmd(0x01);
LCD_cmd(0x06);
LCD_cmd(0x0C);
LCD_cmd(SCR_CLR);
LCD_cmd(RST_AC);
}
void SendCharLCD (char chr)
{
LCD_data(chr);
}
//--------------------------------
// Таблицы символов
// Win
code const unsigned char WinTable [] =
{
'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И',
'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т',
'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ь', 'Ы', 'Ъ',
'Э', 'Ю', 'Я',
'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и',
'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т',
'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ы', 'ъ',
237 ,238, 239,
};
// Дисплей
code const unsigned char DispTable [] =
{
0x41, 0xA0, 0x42, 0xA1, 0xE0, 0x45, 0xA2, 0xA3, 0xA4, 0xA5,
0xA6, 0x4B, 0xA7, 0x4D, 0x48, 0x4F, 0xA8, 0x50, 0x43, 0x54,
0xA9, 0xAA, 0x58, 0xE1, 0xAB, 0xAC, 0xE2, 0x62, 0xAE, 0xAD,
0xAF, 0xB0, 0xB1,
0x61, 0xB2, 0xB3, 0xB4, 0xE3, 0x65, 0xB5, 0xB6, 0xB7, 0xB8,
0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0x6F, 0xBE, 0x70, 0x63, 0xBF,
0x79, 0xE4, 0x78, 0xE5, 0xC0, 0xC1, 0xE6, 0xC4, 0xC3, 0xC2,
0xC5, 0xC6, 0xC7,
};
//--------------------------------
// Перекодировка символа
unsigned char WinToDisp ( unsigned char c )
{
xdata unsigned char i;
for ( i = 0; i < sizeof ( WinTable ); i++ ) if ( c == WinTable [ i ] ) return ( DispTable [ i ] );
return ( c );
} // WinToDisp
Кракозябры сильно мешают мне. Можно конечно писать в редакторе. Но это очень не удобно.
Сообщение отредактировал Alex_Golubev - Sep 12 2017, 01:44
Эскизы прикрепленных изображений