Bloques
Código de comunicaron con el PIC en C
#INCLUDE <16F877.H> //
LIBRERIA DEL PIC A UTILIZAR
#FUSES XT, NOPROTECT, // CODIGO
NO PROTEGIDO
#USE DELAY(CLOCK=4000000) //
SELECCION DE LA FRECUENCIA DEL CRISTAL
#USE RS232(BAUD=9600, BITS=8,
PARITY=N, XMIT=PIN_C6, RCV=PIN_C7) // COMUNICAION CON EL PUERTO SERIAL
#ORG 0X1F00, 0X1FFF VOID
LOADER16F877(VOID){} // DIRECCION DEL CODIGO DE BUDLOADER
CHAR COMANDO; // COMANDO DE CONTROL
VOID MAIN(){
WHILE(TRUE){
COMANDO=GETC(); // LEE EL DATO
DEL BLUETOOTH
IF(COMANDO=='0'){ // MOTOR
APAGADO
OUTPUT_LOW(PIN_D0); // PON D0 EN
BAJO
OUTPUT_LOW(PIN_D1); // PON D1 EN BAJO
}// IF
ELSE IF(COMANDO=='1'){ // GIRA
MOTOR PARA ABRIR LA VENTANA
OUTPUT_HIGH(PIN_D0); // PON D0 EN ALTO
OUTPUT_LOW(PIN_D1); // PON D1 EN BAJO
}// ELSE IF
ELSE
IF(COMANDO=='2'){ // GIRA MOTOR PARA CERRAR VENTANA
OUTPUT_LOW(PIN_D0); // PON D0 EN BAJO
OUTPUT_HIGH(PIN_D1); // PON D1 EN ALTO
}// ELSE IF
ELSE IF(COMANDO=='a'){
// ENCIENDE FOCO DE LA SALA
OUTPUT_LOW(PIN_D2); // ON D2 EN BAJO
}// ELSE IF
ELSE IF(COMANDO=='b'){ // APAGA
FOCO DE LA SALA
OUTPUT_HIGH(PIN_D2); // PON D2 EN ALTO
}// ELSE IF
ELSE IF(COMANDO=='c'){ //
ENCIENDE FOCO DE LA COCINA
OUTPUT_LOW(PIN_D3); // PON D3 EN BAJO
}// ELSE IF
ELSE
IF(COMANDO=='d'){ // APAGA FOCO DE LA COCINA
OUTPUT_HIGH(PIN_D3); // PON D3 EN ALTO
}// ELSE IF
ELSE IF(COMANDO=='e'){ //
ENCIENDE FOCO DEL BAÑO
OUTPUT_LOW(PIN_C4); // PON D4 EN BAJO
}// ELSE IF
ELSE
IF(COMANDO=='f'){ // APAGA FOCO DEL BAÑO
OUTPUT_HIGH(PIN_C4); // PON D4 EN ALTO
}// ELSE IF
}// WHILE
}// MAIN

