

#include<16f648a.h>
#fuses NOWDT,NOPROTECT,PUT,NOLVP,NOMCLR
#use fast_io(a)
#use fast_io(b)
#use delay(internal=4MHZ)
#define frec 200 // prueba tb cambiando el valor de frec

int i,j;

void sound(int vel,int tono)
{
   for(i=0;i<=vel;i++)  // vel = duracion del tono
   {
      for(j=0; j<=4; j++)
      {
         output_high(PIN_B0);      // La distancia entre pulso y pulso viene determinada
         delay_us(frec*(6-tono));   //  por el parámetro tono
         output_low(PIN_B0);           // el piezo esta conectado en este PIN: B0, de ser necesario con un transistor
         delay_us(frec*(6-tono));
      }
   }
}

void main()
{
   set_tris_b(0);
   output_b(0);
   while(true)
   {
      sound(120,1);
      sound(180,4);
   }
}




/////////////////////////////////////////////////////////////////////7

////// notas musicales
/// http://latecladeescape.com/w0/recetas-algoritmicas/frecuencia-de-las-notas-musicales/tabla-//de//frecuencias.html