////////////////////////////////////////////////////////////////////////////////////
// VsZeNeR'06
// 13/Julio/06
// vszener@gmail.com
//
// Programa: Activar rele mediante pulsador
// Version: 0.0
//
// Dispositivo: PIC 16F877 Compilador: CCS vs3.249
// Entorno IDE: MPLAB IDE v7.40 Simulador: Proteus 6.7sp3
//
// Notas: Este programa activa un rele cuando s epulsa un boton, si dicho
// boton es nuevamente pulsado, se desactivara el rele.
//
// Conexiones: B0 -> Boton
// B1 -> Rele
//////////////////////////////////////////////////////////////////////////////////
#include <16f877.h> //pic a utilizar
#fuses XT,NOWDT,NOPROTECT,PUT,NOLVP //ordenes para el programador
#fuses NOBROWNOUT,NOCPD,NOWRT,NODEBUG
#use delay (clock=4000000) //Fosc=4Mhz
#use fast_io(B)
#bit RB1=0x06.1 //pin donde estara el rele conectado
///FUNCION DE INTERRUPCION EXTERNA
#INT_EXT
void funcion(){ //Interrupcion para activar el rele
while(!input(PIN_B0)); //elimina rebotes
RB1=!RB1; //activamos/desactivamos rele
}
///PROGRAMA
void main(void)
{
set_tris_b(0b00000001); //puertb salida menos el pin B0 entrada
enable_interrupts(INT_EXT); //activamos int. externa...
EXT_INT_EDGE(H_TO_L); //..de alto a bajo
enable_interrupts(GLOBAL); //permiso de las interrupciones
RB1=0; //rele off de inicio
for(;;){} //bucle infinito
}