Hola! Al ser el pic un dispositivo digital, y la onda sinusoidal una senial analogica, la forma es utilizando un DAC. Este dispositivo puede ser tan simple como un manojo de resistencias, todo depende la resolucion que se desea.
Luego simplemente escribiendo valores en el puerto donde esta el DAC, se generan los distintos niveles de tension, y variando el tiempo entre las escrituras se varia la frecuencia.
saludos!!
PD: el codigo en C, deberias comenzarlo vos, luego postearlo y ya apareceran opiniones para mejorarlo, ya que faltan bastantes datos. ( tipo de pic, tipo de DAC, frecuencia del oscilador del pic, etc etc. )