Hola leidy81.
Como bien dices se puede usar la usart para transmitir datos via serie y además es muy sencillo. Yo te aconsejo que lo hagas en C pues la rutina de envio es simple, más abajo te la pongo. Los datos analógicos los tendrás que convertir a digital para transmitirlos, y con todos los 1 y 0 de los sensores on/off, puedes formar un dato de 8 bit, pues aunque no te lo he dicho la usart transmite los datos en paquetitos de 8bit.
Un ejemplo seria el siguiente:
#include <16F876.h>
#device *=16
#include "pic16xxx.h"
//////// Fuses: LP,XT,HS,RC,NOWDT,WDT,NOPUT,PUT,PROTECT,PROTECT_5%
//////// Fuses: PROTECT_50%,NOPROTECT,LVP,NOLVP,CPD,NOCPD,WRT,NOWRT,BROWNOUT
//////// Fuses: NOBROWNOUT,DEBUG,NODEBUG
#fuses XT,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, PARITY=N)
void main(void)
{
int persona=0;
int puerta=0;
while(1)
{
persona++;
puerta++;
printf("Puerta:%2d Persona:%2d
",puerta,persona);
}
}
Lo primero como ves se inicializa el puerto con #use rs232.
En la funcion main, incrementas persona y puerta y las transmites al puerto serie de pc, si abres el hiperterminal, podrás ver la transmisión de linea en linea.
Espero haberte ayudado y sino pregunta.
Un saludo Pedro.