Design Specifications For Function generator using 8086 Microprocessor
- This system is used to generate a Sine/Triangular/Square waveform
- Frequencies ranging from 10Hz to 99KHz.
- Voltage is between 0-10V.
- 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.
- 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
- 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%.
- 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.
- 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:
- 8086(Microprocessor)
- 8284(ClockGenerator)
- 74LS373 X 3 (Octal latch)
- 74LS245 X 2 (Octal buffers)
- 2732 X 2 (ROM – 4K)
- 6116 X 2 (RAM – 2K)
- 74LS04 (Not Gate)
- 7432 (Or Gate)
- 74LS138(3:8Decoder)
- 8255 (Programmable Peripheral Interface)
- DAC0830 (Digital – Analog converter)
- OpAmp LM741
- KEYPAD(3 x 3)
- 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