#INCLUDE <16f877a.h> // El tipo de PIC a usar
//FUSES
#FUSES HS
#FUSES NOWDT
#FUSES NOPROTECT
#FUSES NOPUT
#FUSES NOLVP
#FUSES BROWNOUT
//Reloj
#USE DELAY(CLOCK=20M) //
//****************************Configuración de los puertos UART*************************//
// PIC
#use RS232(BAUD=9600, BITS=8, PARITY=N, XMIT=PIN_C6, STREAM=PIC) // XMIT=TRANSMITE POR PIN C6
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Sensores~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#use RS232(BAUD=9600, BITS=8, PARITY=N, RCV=PIN_D0, STREAM=SENSOR1) // RECIBE DEL SENSOR 1, CONECTADO A D0 DEL PIC
#use RS232(BAUD=9600, BITS=8, PARITY=N, RCV=PIN_D1, STREAM=SENSOR2 // RECIBE DEL SENSOR 2, CONECTADO A D1 DEL PIC
//------------------ SETEO DE PUERTOS DEL PIC --------------------------------
# USE fast_io(B) // SET RAPIDO DE PUERTO B TRABAJA CON SET_TRIS_B(0B)
//**************** PROGRAMA PRINCIPAL *****************************************//
char caracter1[10]; //CADENAS DONDE SE GUARDARA LA INFORMACION DE SENSOR1
char caracter2[10]; //CADENA DONDE SE GUARDARA LA INFORMACION DE SENSOR2
void main()
{
SET_TRIS_B(0B00000000); // CONFIGURA TODO EL PUERTO B COMO SALIDA
SET_TRIS_D(0B11111111); // CONFIGURA TODO EL PUERTO D COMO ENTRADA
WHILE (TRUE) // BUCLE PRINCIPAL
{
if(kbhit(SENSOR1)>0,(SENSOR2)>0) //REVISA SI HAY INFORMACION EN D1 Y D0, si la hay entonces...
{
fgets(caracter1, SENSOR1);//recibe por serial lo que hay en D0 y lo guarda en una variable llamada caracter1
fgets(caracter2, SENSOR2);//recibe por serial lo que hay en D1 y lo guarda en una variable llamada caracter2
fprintf(PIC,"%s-%s\r", caracter1,caracter2); //Imprime por serial por C6 caracter1-caracter2
}
}
}
//************************ fin del programa ***********************************