Os dejo una simulación del circuito que tengo montado con un lcd 1x16 que me tiene loco.
Para probar si el pic funcionaba conecté a ra0 un diodo que se enciende como se ve en la simulacion en cada paso del bucle.
el tema es que he descubierto que el pic se queda colgado en el momento en el que intenta hacer un lcd_init(). Llegada a esa línea el pic no sigue adelante...
He usado dos tipos de librerias lcd.c la original y otra que encontré aqui supuestamente con los timings más amplios.
El pic que uso es el 16f628...
http://rapidshare.de/files/5752726/lcd.rar.html// Conexiones: B0 -> E
// B1 -> RS
// B2 -> RW
// B4 -> D4
// B5 -> D5
// B6 -> D6
// B7 -> D7
//////////////////////////////////////////////////////////////////////////////////
#include <16f628.h> //pic a utilizar
#fuses NOWDT, INTRC_IO, PUT, NOPROTECT, NOMCLR, NOBROWNOUT, NOLVP
#use delay (clock=4000000) //Fosc=4Mhz
#define use_portb_lcd TRUE //definir portb lcd
#include<lcd.c> //libreria manejo lcd
///PROGRAMA
void main(void)
{
delay_ms(500);
set_tris_a(0xff);
lcd_init(); //inicializa lcd
lcd_putc("f" ); //borra pantalla lcd
while (true)
{
printf(lcd_putc,"%s","Insoladora Ok"
;
delay_ms(1000);
lcd_putc("f" ); //borra pantalla lcd
printf(lcd_putc,"%s","Insoladora off"
;
delay_ms(1000);
lcd_putc("f" ); //borra pantalla lcd
output_bit(PIN_A0,1);
delay_ms(500);
output_bit(PIN_A0,0);
}
}