hola, yo tenía ese problema al asignar pines con el lcd.c que viene con el ccs, y finalmente el único problema es que deben poner el #define port... antes del include<lcd.c> (tampoco es necesario modificar el lcd.c) error de principiante supongo. para conectar el lcd al puerto A en un 16f628a yo usé la siguiente asignación utilizando uno de los pines B, ya que ni el a4 y ni el a5 me funcionaron :S
ahora estoy buscando una forma de utilizar el lcd con 8 bits, he encontrado algunas librerías pero sólo tienen las funciones lcd_putc() y yo busco alguna que tenga la funcion printf(...) ¿alguna sugerencia?
#define LCD_ENABLE_PIN PIN_a2 ////
#define LCD_RS_PIN PIN_a0 ////
#define LCD_RW_PIN PIN_a1 ////
#define LCD_DATA4 PIN_a3 ////
#define LCD_DATA5 PIN_b0 ////
#define LCD_DATA6 PIN_a6 ////
#define LCD_DATA7 PIN_a7
#define LCD_EXTENDED_NEWLINE
#include<lcd.c>
Los pines 4 y 5 de PORTA estan configurados inicialmente como comparadores, para usuarlos como entradas y asi poder usarlos para el lcd debes desactivar los comparadores, te recomiendo que cheques en el datasheet del PIC16F628A, ahi viene como inicializar el porta, creo que es la página 33, analiza la inicialización e inserta ese pedazo de código ensamblador.
Saludos!
Edit: Perdón, pin A5 de PORTA es para resetear la pic, no funciona como salida sino como entrada, siempre como entrada.
Por cierto, MikroC trae una libreria para usar los lcd a 8 bits
Última edición: