Navigate back to the homepage

Function Generator using X86 Microprocessor

Mandar Gogate
March 4th, 2016 · 1 min read

Design Specifications For Function generator using 8086 Microprocessor

  1. This system is used to generate a Sine/Triangular/Square waveform
  2. Frequencies ranging from 10Hz to 99KHz.
  3. Voltage is between 0-10V.
  4. Desired frequency can be entered by pressing buttons provided on the keypad.For eg. To Generate a Square Waveform of Frequency 83.25 KHz the user has to press Square, Followed by 10K Key- 8 Times, 1K Key – 3 Times, 100 Key –2 Times 10 Key- 5 Times.
  5. When generate is pressed then the selected waveform of that frequency will be generated. If the user wants to change the waveform, he just has to press the desired Button

DAC 0830 & OP-AMP LM741

The fundamental purpose of any D to A converter is to provide an accurate analog output quantity which is representative of the applied digital word. In the case of the DAC0830, the output, IOUT1, is a current directly proportional to the product of the applied reference voltage and the digital input word. For application versatility, a second output, IOUT2, is provided as a current directly proportional to the complement of the digital input.

Assumptions made

  1. When user enters the frequency value, corresponding count value is calculated which is loaded in 8254. The count value generated is rounded off to the nearest integer and hence the frequency generated is an approximate value with an accuracy more than 95%.
  2. User cannot choose to select two different waveforms before pressing the generate key. If user wants to change the waveform, the user can do so while the signal is being produced, by pressing the relevant key.
  3. Once the signal of specific frequency is generated, the user cannot change the frequency. For doing the same, user has to reset the system.

Components Used:

  1. 8086(Microprocessor)
  2. 8284(ClockGenerator)
  3. 74LS373 X 3 (Octal latch)
  4. 74LS245 X 2 (Octal buffers)
  5. 2732 X 2 (ROM – 4K)
  6. 6116 X 2 (RAM – 2K)
  7. 74LS04 (Not Gate)
  8. 7432 (Or Gate)
  9. 74LS138(3:8Decoder)
  10. 8255 (Programmable Peripheral Interface)
  11. DAC0830 (Digital – Analog converter)
  12. OpAmp LM741
  13. KEYPAD(3 x 3)
  14. 8254 (Programmable Interval timer)

Github repo for design and code:

http://github.com/MandarGogate/8086-Function-Generator

The project was done in the partial fulfilment of the course EEE/INSTR F241 – Microprocessor Programming & Interfacing at BITS- Pilani KK Birla Goa Campus

More articles from Mandar Gogate

Raspberry Pi Live Streaming Over Wi-fi

How to stream raspberry pi camera for remote monitoring?

May 16th, 2015 · 2 min read

Structural Health Monitoring Using Wireless Sensor Networks

Structural Health Monitoring (SHM) using wireless sensor networks involves deployment of various sensors like accelerometers in the area to be monitored.

May 4th, 2014 · 8 min read
© 2014–2016 Mandar Gogate
Link to $https://twitter.com/mandar_gogateLink to $https://github.com/mandargogateLink to $https://instagram.com/mandargogateLink to $https://www.linkedin.com/in/mandargogate/