/* RELE Septiembre-2005 Programacion del rele de la SKY293 Andres Prieto-Moreno <andres@ifara.com> Juan Gonzalez <juan@iearobotics.com> LICENCIA GPL */ // Especificar el pic a emplear #define __16f877 // Especificamos las librerias necesarias #include "pic16f877.h" #include "sci.h" #include "delay0.h" //! Bit donde esta conectado el LED de la SKYPIC #define LED 0x02 // Pin del led de la Skypic #define RELE 0xFF // Pin del RELE #define BOTON 0x01 // Bit donde esta el pulsador void abre_puerta() { PORTB = PORTB | LED; PORTA = PORTA | RELE; delay0(10); PORTB = PORTB & ~LED; PORTA = PORTA & ~RELE; } //---------------------------- //- Comienzo del programa //---------------------------- void main(void) { unsigned char tecla; //-- Configurar pin del led como salida TRISB&= ~LED; //-- Configurar AN4 como IO de salida TRISA=0x0; //-- Configurar el puerto serie sci_conf(); //-- Configurar Timer timer0_configurar(); while (1) { if ( (PORTB & BOTON) == 0x00 ) { // han apretado pulsador abre_puerta(); } if (RCIF) { // ha llegado dato tecla = RCREG; switch (tecla) { case 'z': // enciendo el LED y el RELE PORTB=PORTB | LED; PORTA=PORTA | RELE; break; case 'x': // apago el LED y el RELE PORTB=PORTB & ~LED; PORTA=PORTA & ~RELE; break; case 'a': // abro la puerta abre_puerta(); break; default: break; } } } }