Luhan Monat have various hobby circuits mostly based on PIC microcontrollers. One of then that catches the eye is function generator which is capable to generate sine, triangle, saw, burst, sweep and noise signals.
In his design he used PIC16F870 and R2R resistor ladder as DAC output. He stored signals in lookup tables 256x8bits. Running at 20MHz generator is capable to give clean 60kHz (1Hz accuracy) sine-wave adjustable in 1, 25 and 500Hz steps. Because of limited performance he only used three LEDs indicating which waveform is used and another three LEDs for step rate indication. Author includes circuit, source files.