PIC16F877A vs 2 LCDs

Hola amigos, entoy intentando mostrar en dos pantallas LCDs(2x16) informacion que manda un solo pic (16F877A).He buscado mucho y al parecer hay dos soluciones: una es usando el mismo puerto para los dos LCDs y controlar cual elijo con el PIN Enable de cada pantalla. U otra opcion es usar dos puertos distintos, que para ello he visto que hay que definir dos librerias lcd.c y lcd1.c que es copia de la primera.

Lo que quiero hacer es que en una pantalla me aprezca "Hola", y en la otra "que tal??"He probado las dos opciones que he comentado antes y no he tenido resultados, espero que me podais ayudar y aconsejar que metodo es mejor.

Código:
#include <16f877a.h>
#fuses hs,nowdt,noput,nolvp
#use delay(clock=20M)
#define use_portC_lcd TRUE
#include <lcd.c>
#BYTE TRISB = 0x86 
#BYTE PORTB = 0x06

int cont=0;

//***************** programa principal ***************

void main(){

bit_clear(TRISB,7);         // B7 como salida para enable de lcd1
lcd_init(); // inicializo el lcd

while(true)
{    
   bit_set(portB,7);
   lcd_gotoxy(1,1);
   printf(lcd_putc," hola");
   bit_clear(PORTB,7);        
   
   lcd_gotoxy(1,2);
   printf(lcd_putc,"  que tal??");
   delay_ms(100);
}
}

Adjunto simulacion en proteus.

un saludo.
 

Adjuntos

  • 2 LCDs.rar
    19.2 KB · Visitas: 13
La primera opción es la más práctica, sólo que tendrías que manejar los tiempos de los pulsos para intercambiar las dos lecturas y que se aprecien en los lcd's a la vez.
 
Creo que no va a ser tan facil multiplexar las LCD con el pin de Enable, ya que creo que no sirve ponerlo a 1 o a 0, necesita una secuencia para funcionar correctamente. Lo digo porque he estado intentando conseguir lo que propones, pero no lo he conseguido creo debido a eso.
Puede que fuera más sencillo hacerlo con dos librerías distintas, no lo sé.

Un saludo
 
Atrás
Arriba