Muchas gracias por responder Este es el código:
#include <16f877a.h>
#use delay(clock=20000000,crystal)
#fuses HS,NOWDT,NOPROTECT,NOLVP,NOWRT,NOBROWNOUT
#byte port_a = 5
#byte port_b = 6
#byte port_c = 7
#byte port_d = 8
#byte port_e = 9
// D2 OUT
int BTN_ENT_PORT1, BTN_ENT_PORT2, BTN_ENT_PORT3, BTN_ENT_PORT4;
int LEC_ENT_PORT1, LEC_ENT_PORT2, LEC_ENT_PORT3, LEC_ENT_PORT4;
int EST_ALARMA = 0;
int estado = 1;
//Inicializacion funciones//
void Lectura (void);
void PORT1 (void);
void PORT2 (void);
void PORT3 (void);
void PORT4 (void);
#INT_RB //Funcion de la Interrupcion
void main (void){
SET_TRIS_B(0B11111111); // Entradas
SET_TRIS_C(0B10000000); // Salidas
SET_TRIS_D(0B00000000); // Salidas
port_c = 0; // INICIAMOS PUERTO C EN LOW
port_d = 0; // INICIAMOS PUERTO D EN LOW
port_b = 0;
while(true){
Lectura();
PORT1();
PORT2();
PORT3();
PORT4();
}
}//main
void Lectura (void){
///// Botones ////
BTN_ENT_PORT1 = input(pin_b0);
BTN_ENT_PORT2 = input(pin_b1);
BTN_ENT_PORT3 = input(pin_b2);
BTN_ENT_PORT4 = input(pin_b3);
//////LECTORAS///
LEC_ENT_PORT1 = input(pin_b4);
LEC_ENT_PORT2 = input(pin_b5);
LEC_ENT_PORT3 = input(pin_b6);
LEC_ENT_PORT4 = input(pin_b7);
}
void PORT1 (void){
if(BTN_ENT_PORT1 == 1 && LEC_ENT_PORT1 == 0){
EST_ALARMA = 1;
if(EST_ALARMA == 1){
output_high(pin_d2);
}
}else{
if(EST_ALARMA == 1 && LEC_ENT_PORT1 == 1){
EST_ALARMA = 0;
if(EST_ALARMA == 0){
output_low(pin_d2);
}
}
}
}
void PORT2 (void){
if(BTN_ENT_PORT2 == 1 && LEC_ENT_PORT2 == 0){
EST_ALARMA = 1;
if(EST_ALARMA == 1){
output_high(pin_d3);
}
}else{
if(EST_ALARMA == 1 && LEC_ENT_PORT2 == 1){
EST_ALARMA = 0;
if(EST_ALARMA == 0){
output_low(pin_d3);
}
}
}
}
void PORT3 (void){
if(BTN_ENT_PORT3 == 1 && LEC_ENT_PORT3 == 0){
EST_ALARMA = 1;
if(EST_ALARMA == 1){
output_high(pin_d4);
}
}else{
if(EST_ALARMA == 1 && LEC_ENT_PORT3 == 1){
EST_ALARMA = 0;
if(EST_ALARMA == 0){output_low(pin_d4);}
}
}
}
void PORT4 (void){
if(BTN_ENT_PORT4 == 1 && LEC_ENT_PORT4 == 0){
EST_ALARMA = 1;
if(EST_ALARMA == 1){
output_high(pin_d5);
}
}else{
if(EST_ALARMA == 1 && LEC_ENT_PORT4 == 1){
EST_ALARMA = 0;
if(EST_ALARMA == 0).
{
output_low(pin_d5);
}
}
}
}