Хм...
А почему только одна строка? И почему она рыжая? Контраст нужно настраивать до черного (точнее до темно-синего) или до рыжего?
Теперь по поводу инициализации вот стандартная библиотечная функция CodeVision:
Код
unsigned char lcd_init(unsigned char lcd_columns)
{
#asm
cbi __lcd_port,__lcd_enable;EN=0
cbi __lcd_port,__lcd_rs;RS=0
#endasm
_lcd_maxx=lcd_columns;
_base_y[2]=lcd_columns+0x80;
_base_y[3]=lcd_columns+0xc0;
_long_delay();
_lcd_init_write(0x30);
_long_delay();
_lcd_init_write(0x30);
_long_delay();
_lcd_init_write(0x30);
_long_delay();
_lcd_init_write(0x20);
_long_delay();
_lcd_write_data(0x28);
_long_delay();
_lcd_write_data(4);
_long_delay();
_lcd_write_data(0x85);
_long_delay();
#asm
in r26,__lcd_direction
andi r26,0xf ;set as input
out __lcd_direction,r26
sbi __lcd_port,__lcd_rd;RD=1
#endasm
if (lcd_read_byte0()!=5) return 0;
_lcd_ready();
_lcd_write_data(6);
lcd_clear();
return 1;
}
Эта функция завершается с возвращением нуля.
При дальнейшем lcd_goto_xy программа зависает, причем на портах PC0 и PC1 у меня светодиоды, так вот они горят в полнакала, и гаснут, когда прикасаешься пальцами к пайке разъема на индикаторе.