Hola compañero Pantera
Supongo que estarias usando la libreria lcd.h que viene con el CSS, no??
Si es asi fi te fijas en la función definida por los creadores del CSS es la siguiente
void lcd_putc( char c) {
switch (c) {
case '\f' : lcd_send_byte(0,1);
delay_ms(2);
break;
case '\n' : lcd_gotoxy(1,2);
break;
case '\b' : lcd_send_byte(0,0x10);
break;
default : lcd_send_byte(1,c);
break;
}
}
Siendo:
\f = Borrar el LCD
\n = Retorno de Carro
\b = Retroceso una posicion
no esta definido nada para el caracter especial ñ, con lo que envia el codigo ASCII de la ñ. El cual si usas un LCD HD44780U de Hitachi o un LCD 2x16 compatible con el, puedes observar el codigo al que equivale la ñ en los patrones de dicho LCD no coinciden.
ascii
==========
ñ (1010 0100)
Ñ (1010 0101)
LCD HD44780U
==========
ñ (1111 0001)
Ñ (1101 0001)
Por lo que si lo usas a diario te aconsejaria q modificaras el lcd.h
podrias modificarlo asi:
void lcd_putc( char c) {
if(c=='ñ')
c=0b11110001;
else if(c=='Ñ')
c=0b11010001;
switch (c) {
case '\f' : lcd_send_byte(0,1);
delay_ms(2);
break;
case '\n' : lcd_gotoxy(1,2);
break;
case '\b' : lcd_send_byte(0,0x10);
break;
default : lcd_send_byte(1,c);
break;
}
}
Con esta pequeña modificación no te olvidas de problemas futuros

PD: Te adjunto el PDF de LCD que me refería y aparte aquí puedes ver la tabla ascii
http://www.lookuptables.com/