#include <16f887.h>
#fuses NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP, XT
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#use delay(clock=8000000)
#use rs232 (baud=9600, xmit=PIN_C6, rcv=PIN_C7, bits=8, parity=N)
#BYTE TRISA=0x85
#BYTE PORTA=0x05
#BYTE TRISB=0x86
#BYTE PORTB=0x06
#BYTE TRISE=0x89
#BYTE PORTE=0x09
#BYTE ANSEL=0x188
#define LED PIN_C0
#define SW1 PIN_B0
#define SW2 PIN_B1
#define LED1 PIN_C1
char recep;
#int_RDA
void RDA_isr(void)
{
recep=getchar();
}
void main(void)
{
int valor;
valor=0;
TRISB=0xFF;
ANSEL=0x00;
//setup_oscillator(OSC_8MHZ); para oscilador interno
setup_adc_ports(NO_ANALOGS); //Selecciona terminales
enable_interrupts(GLOBAL);
enable_interrupts(INT_RDA);
while(1){// ciclo for infinito
if(input(SW1)) //lee entrada
{
output_high(LED);
delay_ms(1000);
output_high(LED1);
delay_ms(2000);
}
else {
output_low(LED);
delay_ms(300);
output_low(LED1);
delay_ms(300);
}
if(recep=='q'){
output_high(LED1);
delay_ms(1000);
puts("recibido");
disable_interrupts(global);
enable_interrupts(global);
}
else {
output_low(LED1);
delay_ms(50);
printf("valor");
delay_ms(100);
putc(recep);
disable_interrupts(global);
enable_interrupts(global);
}
}
}