
#include <16f628.h>                    // Selecciona el PIC
#fuses XT,NOWDT,NOPROTECT,PUT,BROWNOUT // Opciones de configuración
#use delay(clock=4000000)              // Velocidad del Cristal : 4 Mhz
#use standard_io(B)
#use fixed_io(a_outputs=PIN_A0,PIN_A1,PIN_A2,PIN_A3)
#use fixed_io(b_outputs=PIN_B5)
#use rs232(baud=9600, xmit=PIN_B2, rcv=PIN_B1)	//manejo del RS232


Long const tt=500;
Long const tz=333;

///DECLARACIONES DE FUNCIONES

void recive(void);				         // recive ordenes del PC
void derecha(void);					      // ilumina led's derecha a izquierda y buzz
void izquierda(void);				      // ilumina led's izquierda a derecha


///PROGRAMA

void main(void)
{
	disable_interrupts(GLOBAL);	      // todas las interrupciones desactivadas
	puts("RRBOARD1 Listen on RS232");	         // presentacion...
	puts("========================");
	puts("                        ");
	puts("  Z -> Buzzer On/Off    ");
	do{								         // bucle...
		derecha();
		izquierda();
      recive();
	}while(TRUE);				          // ...infinito
}

void recive(void)
{
   char Keypress=' ';

   Keypress=' ';
   if(kbhit()){
      Keypress=getc();
      if(keypress=='Z'){
         output_high(PIN_B5);	     // suena buzzer
	      puts("Buzzer On");
	      delay_ms(tz);
	      output_low(PIN_B5);
	      puts("Buzzer Off");
      } else{
	      puts("Comand?");
      }
   }
}

void derecha(void)
{
	output_high(PIN_A0);
	delay_ms(tt);
	output_low(PIN_A0);
	output_high(PIN_A1);
	delay_ms(tt);
	output_low(PIN_A1);
	output_high(PIN_A2);
	delay_ms(tt);
	output_low(PIN_A2);
	output_high(PIN_A3);
	delay_ms(tt);
}

void izquierda(void)
{
	output_low(PIN_A3);
	output_high(PIN_A2);
	delay_ms(tt);
	output_low(PIN_A2);
	output_high(PIN_A1);
	delay_ms(tt);
	output_low(PIN_A1);

}

