es es el codigo que tengo pero aun no jala no sensa los sensores por que era
#include <16f877A.h> //el pic a utilizar es por que solo requiero de pocos recursos para la alarma
#use delay(clock=4000000) //tiempo del cristal 4 MG
#fuses NOWDT //proteccion perro guardian of
#fuses PUT //proteccion para esperar que se estabilise la alimentacion del pic
#use FAST_IO(B) //utilizo el puerto B
#use FAST_IO(D) //utilizo el puerto D
#define E_ON_OF PIN_B0 //se define que E-ON-OF es el PIN_B0 y (E-ON-OF) significa Entrada Ensendido Apagad)
#define S_MOV_PAD PIN_B1 //se define que S-MOV-PAD es el PIN_B1 y (S-MOV-PAD) significa sensor de movimiento patio delantero)
#define S_MOV_PAT PIN_B2 //se define que S-MOV-PAT es el PIN_B2 y (S-MOV-PAT) significa sensor de movimiento patio trasero)
#define S_MOV_PUD PIN_B3 //se define que S-MOV-PUD es el PIN_B3 y (S-MOV-PUD) significa sensor de movimiento puerta delantera)
#define S_MOV_PUT PIN_B4 //se define que S-MOV-PUT es el PIN_B4 y (S-MOV-PUT) significa sensor de movimiento puerta trasera)
#define S_MAG_PUD PIN_B5 //se define que S-MAG-PD es el PIN_B5 y (S-MAG-PD) significa sensor magnetico puerta delantera)
#define S_MAG_PUT PIN_B5 //se define que S-MAG-PT es el PIN_B6 y (S-MAG-PT) significa sensor magnetico puerta trasera)
#define LUZ_PAD PIN_D0 //se define que LUZ-PAD es el PIN_D0 y (LUZ-PAD) significa luz patio delantero
#define LUZ_PAT PIN_D1 //se define que LUZ-PAT es el PIN_D1 y (LUZ-PAD) significa luz patio trasero
#define SIRENA PIN_D2 //se define que SIRENA es el pin_D2 y (SIRENA) es la bocina la bulla
#define LLAMAR PIN_D3 //se define que LLAMAR es el pin_D3 y (LLAMAR) es una salida para realisar una llamada a un cel
#define COLGAR PIN_D4 //se define que COLGAN es el pin_D4 y (COLGAR) es una salida para colgar la llamada
#define LED_ON_OF PIN_D5 //se define que LED-ON-OF PIN_D5 y (LED-ON-OF)significa led ensendido apagado
//int1 E-OF-ON=0; //declaro la variable (E-ON-OF) a O Y Significa (Entrada Ensendido Apagado)
//int1 S_MOV_PAD=0; //declaro la variable (S-MOV-D) Y le asigno que empiece en O Y Significa (sensor de Movomiento Delantero)
//int1 S_MOV_PAT=0; //declaro la variable (S-MOV-T) Y le asigno que empiece en O Y Significa (sensor de Movomiento Trasero)
//int1 S_MOV_PUD=0; //declaro la variable (L-D) Y le asigno que empiece en 1 Y Significa (Laser Delantero)
//int1 S_MOV_PAT=0; //declaro la variable (L-T) Y le asigno que empiece en 1 Y Significa (Laser Trasero)
//int1 S_MAG_PUD=1; //declaro la variable (S-MAG-D) Y le asigno que empiece en 1 Y Significa (Sensor Magnetico Delantero)
//int1 S_MAG_PUT=1; //declaro la variable (S-MAG-T) Y le asigno que empiece en 1 Y Significa (Sensor Magnetico Tracero)
//int1 LUZ_PUD=0; //declaro la variable (L-PD) Y le asigno que empiece en O Y Significa (Luz Patio Delantero)
//int1 LUZ_PUT=0; //declaro la variable (L-PT) Y le asigno que empiece en O Y Significa (Luz Patio Trasero)
//int1 SIRENA=0; //declaro la variable (SIRENA) Y le asigno que empiece en O Y Significa (SIRENA)
//int1 LLAMAR=0; //declaro la variable (LLAMAR) Y le asigno que empiece en O Y Significa (LLAMAR)
//int1 COLGAR=0; //declaro la variable (COLGAR) Y le asigno que empiece en O Y Significa (COLGAR)
//int1 LED_ON_OF=0; //declaro la variable (LED-ON-OF) Y le asigno que empiece en O Y Significa (SIRENA)
void main(void){
output_low(S_MOV_PAD); //esto lo puse por al simular seme ensendian los pines
output_low(S_MOV_PAT);
output_low(LUZ_PAD);
set_tris_B(0b11111111); //asigno todo el puerto B como entradas y lo puse en binario para que lo tenga presente
set_tris_D(0b00000000); // asigno todo el puerto D como salidas
output_low(E_ON_OF); //coloco eel pin B0 a cero
while(1)
{
if(input(E_ON_OF)==0) // Pregunto si la entrada del pin B0 es igual a 0
{
delay_ms(10); // Espero 10ms por si la llave esta rebotando (variando entre 1 y 0 )
while(input(E_ON_OF)==0); // Espero que suelte el boton, observa el ; al final, es decir un while(){}
output_toggle(LED_ON_OF); // Cambio el valor del pin
}
if(input(LED_ON_OF)==1) //pregunto si (LED_ON_OF)==1 si es verdad pasa a la siguiente linea
{
if((input(S_MOV_PAD)==1) || (input(S_MOV_PUD)==1)) //pregunto si el valor del pin (S_MOV_PAD)==1) o (S_MOV_PUD)==1
{
output_high(LUZ_PAD); //ensiendo luz patio trasero
output_high(SIRENA); //enciende sirena
}
else
{
output_low(LUZ_PAD); //de lo contrario apaga luz patio trasero
output_low(SIRENA); //de lo contrario apaga sirena
}
}
else
{
output_low(LUZ_PAD); //apagando luz patio delantero
output_low(SIRENA); //apagando sirena
}
}
}