Hola buen día, necesito trabajar con una LCD 16x2 de 8 bits, he trabajado con 4 bits, pero no sé como implementar una librería para trabajar con 8 bits. Cree una libreria y es la siguiente:
#byte porta = 0x0F80
#byte portb = 0x0F81
void lcd_init(void)
{
set_tris_a(0xF0);
set_tris_b(0x00);
porta = 0;
portb = 0;
delay_ms(20);
bit_clear(porta,0);
bit_clear(porta,1);
portb = 0x38; //function set, paso 6
bit_set(porta,0);
delay_us(10);
bit_clear(porta,0);
delay_ms(2);
portb = 0x0C; //display control
bit_set(porta,0);
delay_us(10);
bit_clear(porta,0);
delay_ms(2);
portb = 0x01;//borrar pantalla
bit_set(porta,0);
delay_us(10);
bit_clear(porta,0);
delay_ms(2);
}
void putlcd(int8 dato, int8 modo)
{
if(modo)
bit_set(porta,1);
else
bit_clear(porta,1);
portb = dato;
bit_set(porta,0);
delay_us(10);
bit_clear(porta,0);
if(modo)
delay_us(50);
else
delay_ms(2);
}
pero no puedo utilizar las funciones como lcd_putc u printf, Si alguien pudiera ayudarme se los agradecería mucho.