Hola Tengo dos pic16f877 y los quiero comunicar entre si , hice un programa para visualizar los datos que manda cada en el puerto b pero no me funciona , les pongo el programa para ver si pueden ver algun error de antemano gracias
este el programa para uno de ellos
#include <16F877A.h> /// libreria para el manejo del pic16f877a
#use delay(clock=20000000) /// declara el la frecuencia del cristal
#fuses xt,NOWDT,NOPUT,NOLVP,NOBROWNOUT,NOWRT,
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#byte portb = 6
void main()
{
int tx,rx;
set_tris_b(0x00); /// declara puerto b como salidas
tx=0;
portb=0x00;
while(1)
{
if(kbhit())
{
rx=getc();
portb=rx;
}
tx=tx+1;
putc(tx);
}
}
este es para el otro:
//////PROGRAMA DE EJEMPLO DE COMUNICACION RS232 ENTRE PICS ///////////////////
////////LA SEÑAL QUE RECIBE LA MANDA A PUERTO B/////////////////////////////////
#include <16F877A.h> /// libreria para el manejo del pic16f877a
#use delay(clock=20000000) /// declara el la frecuencia del cristal
#fuses HS,NOWDT,NOPUT,NOLVP,NOBROWNOUT,NOWRT,NOPROTECT
#use rs232(baud=1200, xmit=PIN_C6, rcv=PIN_C7)
#byte porta = 5
#byte portb = 6
void main()
{
int tx=0,rx=0;
set_tris_b(0x00);
set_tris_a(0x00),
portb=0x00;
porta=0x00;
while(1)
{
delay_ms(100);
tx=tx+1;
porta=tx;
putc(tx);
if(kbhit())
{
rx=getc();
portb=rx;
}
}
}
al simular en proteus no obtengo nada ademas ya lo hice fisicamente y tampoco ya lei en el foro y he visto que dicen que es mas eficiente hacerlo con protocolo i2c y tal vez empiece a hacerlo pero no quisiera quedarme derrotado asi y lograr hacer la comunicacion. los pines de cada uno de los 16f877 estan directos al otro es decir la terminal del puerto C6 esta al C7 del otro sin ningun integrado de por medio.