Cacharreando con la pantalla LCD y despues de entender bien como se crean las librerias, he desarrollado una que solo necesita 3 pines del PIC para enviar informacion en la pantalla. En este ejemplo use los 3 del puerto E del 16F877. y asi totalmente libres los demas.
Pruebenlo y me cuentan como les fue.
//-------------- Funcion que envia byte a pantalla lcd --------------------
void lcd_send_byte( int1 cont_ascci, char n ) {
char i;
//----------------------------------------------------------------
output_bit(pin_e2,0);//Inicia transmision con CLK en 0
//----------------------------------------------------------------
output_bit(pin_e1,cont_ascci);//Coloca el RS en el puerto
//----------------------------------------------------------------
output_bit(pin_e2,1);
delay_cycles(1); //Pulso de reloj para registro serial
output_bit(pin_e2,0);
delay_cycles(1);
//----------------------------------------------------------------
for(i=4;i<=7;i++){
output_bit(pin_e1,bit_test (n,i));//Coloca el bit a transmitir
//----------------------------------------------------------
output_bit(pin_e2,1);
delay_cycles(1); //Pulso de reloj para registro serial
output_bit(pin_e2,0);
delay_cycles(1);
}
//----------------------------------------------------------------
output_bit(pin_e0,1);
delay_ms(2); //Pulso de enable
output_bit(pin_e0,0);
//----------------------------------------------------------------
output_bit(pin_e1,cont_ascci);//Coloca el RS en el puerto
//----------------------------------------------------------------
output_bit(pin_e2,1);
delay_cycles(1); //Pulso de reloj para registro serial
output_bit(pin_e2,0);
delay_cycles(1);
//----------------------------------------------------------------
for(i=0;i<=3;i++){
output_bit(pin_e1,bit_test (n,i));//Coloca el bit a transmitir
//----------------------------------------------------------
output_bit(pin_e2,1);
delay_cycles(1); //Pulso de reloj para registro serial
output_bit(pin_e2,0);
delay_cycles(1);
}
//----------------------------------------------------------------
output_bit(pin_e0,1);
delay_ms(2); //Pulso de enable
output_bit(pin_e0,0);
}
Que pasa que no puedo montar el esquematico?