Build a PIC controlled DDS VFO, 0 to 6 MHz using pic microcontroller

Files contained in MINIDDS.ZIP:

  readme.txt      Read this first!
  compplac.pdf    Component placement in PDF format
  schema.pdf      Schematic diagram in PDF format          PCB top copper layer in Postscript format       PCB bottom copper layer in Postscript format
  ad9832_4.asm    PIC assembly source code      Needed for assembly of ad9832_4.asm (for 'F84)      As above but for 'C84
  vfo5x7f.hex     PIC16F84 program for LCD with 5x7 font
  vfo5x10f.hex    PIC16F84 program for LCD with 5x10 font
  vfo5x7c.hex     PIC16C84 program for LCD with 5x7 font
  vfo5x10c.hex    PIC16C84 program for LCD with 5x10 font
  filtresp.pcx    Computed frequency response of lowpass filter

Build a PIC controlled DDS VFO, 0 to 6 MHzDownload MINIDDS.ZIP (186K)

Download MINIDDS.PDF (209K)

If you prefer to control the DDS module from a PC (instead of using a PIC), try this:

Download PCVFO.ZIP (18K)

The zip archive contains a single file, VFO.EXE. It is a DOS program but it runs fine in a Windows 95/98 “DOS bubble” as well (see screenshots above).


Are you looking for a DDS based 136 kHz longwave transmitter exciter?


Have a look at G0MRF’s page



  • Start-up frequency: 137.00000 kHz
  • Tuning range: 135.70000 to 137.80000 kHz in 0.25 Hz steps
  • DFCW offset: 0 to 50 Hz adjustable in 0.25 Hz steps
  • The dial can be locked to prevent inadvertent QSY
  • Calibration: +/- 200 ppm, stored in EEPROM.
  • Actual DDS output frequency is 4 * dial frequency


Schematic and source code for the PIC controller is available here:


Download the PIC program

The PIC program is written for the free version of the CC5X C compiler which is available at
Build a PIC controlled DDS VFO, 0 to 6 MHzAlmost any 2×16 character LCD module with Hitachi HD44780 controller chip will work. The LCD pin numbers on the schematic are not valid for all LCD modules. Please check the actual signal names on your particular LCD module.
The selected DFCW frequency offset will be added to the output frequency when the DFCW input is grounded. This input has a weak pull-up in the PIC.
The encoder inputs also have internal pull-ups in the PIC.

The switches “LOCK”, “DFCW” and “CAL” are momentary pushbuttons.


For more detail: Build a PIC controlled DDS VFO, 0 to 6 MHz


About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us: