#include <16F877A.h>
#FUSES XT, NOWDT
#use delay(crystal=4MHz)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, bits=8, parity=N, ERRORS)
volatile char dato;
#int_rda
void serial_isr() { //Nuestra funcion de interrupcion de la UART, dada por el #INT_RDA de antes,
if(kbhit()){ // El KBHIT no es necesario, ya que si entra aca es por que llego algo si o si, pero se lo dejo por las dudas
}
}
void main ()
{
set_tris_d(0b00000000);
output_d(0b00000000);
enable_interrupts(int_rda); //Habilitamos la interrupcion de la UART
enable_interrupts(global); // Habilitamos las interrupciones globales
while (true)
{
if (dato!=0) // Lego algo ?
{
if (dato == 'a')
{
output_toggle(PIN_D3);
}
dato = 0; // Para que no vuelva a entrar lo pongo en 0 como si no hubiera recibido nada.
}
}
}