Muchas gracias por las respuestas, mañana lo volvere a mirar y a montar.
Lo del ";" como dice ppyote, al estar en el string no da problemas.
Edito-> Ya consegui hacerlo funcionar, me faltaba tamnbien el lcd_gotoxy como señalaba ppyote, no tenia los pines del lcd no usados conectados a tierra no se si por esto me daba el fallo o por otra conexion, pero hoy al montarlo ha funcionado. Me he pasado al 18f2550, este es el codigo:
#include <18F2550.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP,NODEBUG,NOUSBDIV,VREGEN
#use delay(clock=4000000)
#define use_portb_lcd True//Para usar puerto B
#include <lcd.c>
void main()
{
output_low(PIN_A0);//indicador programa funciona
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_OFF);
setup_spi(SPI_SS_DISABLED);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
delay_ms(1000);
//Setup_Oscillator parameter not selected from Intr Oscillator Config tab
///PROGRAMA
lcd_init(); //inicializa lcd
while(1)
{
printf(lcd_putc,"Hola mundo\n"); //muestra por pantalla el mensaje
output_high(PIN_A0);//indicador programa funciona
delay_ms(1000);
output_low(PIN_A0);//indicador programa funciona
printf(lcd_putc,"Soy una prueba"); //muestra por pantalla el mensaje
delay_ms(1000);
lcd_putc('\f'); //borra lcd
lcd_gotoxy(1,1);
delay_ms(100);
printf(lcd_putc,"Adios mundo\n"); //muestra por pantalla el mensaje
output_high(PIN_A0);//indicador programa funciona
delay_ms(1000);
output_low(PIN_A0);//indicador programa funciona
printf(lcd_putc,"Y segunda linea"); //muestra por pantalla el mensaje
delay_ms(1000);
lcd_putc('\f'); //Borra lcd
lcd_gotoxy(1,1);
delay_ms(100);
}
}
Lo pongo por si a alguien le interesa o viene bien algun dia