DAC Interfacing
DAC Interfacing
DAC Interfacing
-6
AIM- Interface 8 bit DAC chip with 89s52 microcontroller. Write a program to generate sine
wave using look up table.
CIRCUIT DIAGRAM-
THEORYTo generate a sine wave, we first need a table whose values represent the magnitude of the sine
of angles between 0 and 360 degrees. The values for the sine function vary from -1.0 to +1.0 for
0- to 360-degree angles. Therefore, the table values are integer numbers representing the voltage
magnitude for the sine of theta. This method ensures that only integer numbers are output to the
DAC by the 8051 microcontroller. Table 1 shows the angles, the sine values, the voltage
magnitudes, and the integer values representing the voltage magnitude for each angle (with 30degree increments). To generate Table 1, we assumed the full-scale voltage of 10 V for DAC
output (as designed in Figure 1). Full-scale output of the DAC is achieved when all the data
inputs of the DAC are high. Therefore, to achieve the full-scale 10 V output, we use the
following equation.
Vout= 5V + 5sin
Vout of DAC for various angles is calculated and shown in Table1.
16-bit DACs, but they are more expensive. MC1408 DAC (or DAC0808) In the MC1408
(DAC0808), the digital inputs are converted to current (Iout), and by connecting a resistor to the
Iout pin, we convert the result to voltage. The total current provided by the Iout pin is a function
of the binary numbers at the DO - D7 inputs of the DAC0808 and the reference current (Iref),
and is as follows:
where DO is the LSB, D7 is the MSB for the inputs, and Iref is the input current
that must be applied to pin 14. The Iref current is generally set to 2.0 mA. Figure
13-18 shows the generation of current reference (setting Iref = 2 mA) by using
the standard 5-V power supply and IK and 1.5K-ohm standard resistors. Some
DACs also use the zener diode (LM336), which overcomes any fluctuation
associated.
Angle (degrees)
sin
1
2
3
4
5
6
7
8
9
10
11
12
13
0
30
60
90
120
150
180
210
240
270
300
330
360
0
0.5
0.866
1
0.866
0.5
0
-0.5
-0.866
-1
-0.866
-0.5
0
PROGRAM#include<reg51.h>
#include<stdio.h>
sfr DACDATA=0x90;
void main()
{
Vout=(5V+(5Vx
sin))
5
7.5
9.33
10
9.33
7.5
5
2.5
0.669
0
0.669
2.5
5
Decimal voltage
(Vout x25.5)
127.5
191.25
237.915
255
237.915
191.25
127.5
63.75
17.0595
0
17.0595
63.75
127.5
OUTPUT-
WORKSHEET
{
unsigned int x;
for(x=0;x<=255;x++)
{
P1=x;
}
}
}
OUTPUT-
3.) To get full scale output what should be the input for DAC?
To get a full scale output, all the data inputs of DAC must be high.