单片机实验四
- 格式:docx
- 大小:243.93 KB
- 文档页数:14
单片机实验四
实验四 D/A 变换
一、实验目的
1、熟习 DAC0832 内部构造及引脚。
2、掌握 D/A 变换与接口电路的方法。
二、实验原理
1、 DAC0832的引脚及功能
DAC0832是 8 分辨率的 D/A 变换集成芯片。与微办理器完整兼容。这个 DA 芯片以其价钱便宜、 接口简单、变换控制简单等长处, 在单片机应用系统中获得宽泛的应用。 D/A 变换器由 8 位输入锁存器、 8 位 DAC存放器、 8 位 D/A 变换电路及变换控制电路组成。
2 DAC0832的主要特征参数以下:分辨率为 8 位; 电流稳准时间 1us;
可单缓冲、双缓冲或直接数字输入;只要在满量程下调整其线性度;
单调电源供电( +5V~+15V);低功耗, 200mW。 3 DAC0832构造:
D0~ D7:8 位数据输入线, TTL 电平,有效时间应大于 90ns(不然锁存器的
数据会犯错 );
ILE:数据锁存同意控制信号输入线,高电平有效;
CS:片选信号输入线(选通数据锁存器) ,低电平有效;
WR1:数据锁存器写选通输入线, 负脉冲(脉宽应大于 500ns)有效。由 ILE、CS、WR1 的逻辑组合产生 LE1,当 LE1为高电平常,数据锁存器状态随输入数据线变换, LE1的负跳变时将输入数据锁存;
XFER:数据传输控制信号输入线, 低电平有效, 负脉冲(脉宽应大于 500ns)有效;
WR2:DAC存放器选通输入线, 负脉冲(脉宽应大于 500ns)有效。由 WR1、XFER的逻辑组合产生 LE2,当 LE2为高电平常, DAC存放器的输出随存放器的输入而变化,LE2的负跳变时将数据锁存器的内容打入 DAC存放器并开始 D/A 变换。 IOUT1:电流输出端 1,其值随 DAC存放器的内容线性变化;
IOUT2:电流输出端 2,其值与 IOUT1值之和为一常数;
Rfb:反应信号输入线,改变 Rfb 端外接电阻值可调整变换满量程精度; 单片机实验四
Vcc:电源输入端, Vcc的范围为 +5V~ +15V;
VREF:基准电压输入线, VREF的范围为 -10V~+10V;
AGND:模拟信号地
DGND:数字信号地
4 DAC0832的工作方式:
依据对 DAC0832 的数据锁存器和 DAC 存放器的不一样的控制方式, DAC0832
有三种工作方式:直通方式、单缓冲方式和双缓冲方式
正弦波表格: // 正弦波一周期内采样 256 次
unsigned char code sin[]={
0x80,0x83,0x86,0x89,0x8D,0x90,0x93,0x96,0x99,0x9C,0x9F,0xA2,0xA5,0xA8,0xAB,0xAE,
0xB1,0xB4,0xB7,0xBA,0xBC,0xBF,0xC2,0xC5,0xC7,0xCA,0xCC,0xCF,0xD1,0xD4,0xD6,0xD8,
0xDA,0xDD,0xDF,0xE1,0xE3,0xE5,0xE7,0xE9,0xEA,0xEC,0xEE,0xEF,0xF1,0xF2,0xF4,0xF5,
0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFD,0xFD,0xFC,0xFB,0xFA,0xF9,0xF8,0xF7,0xF6,
0xF5,0xF4,0xF2,0xF1,0xEF,0xEE,0xEC,0xEA,0xE9,0xE7,0xE5,0xE3,0xE1,0xDF,0xDD,0xDA, 0xD8,0xD6,0xD4,0xD1,0xCF,0xCC,0xCA,0xC7,0xC5,0xC2,0xBF,0xBC,0xBA,0xB7,0xB4,0xB1,
0xAE,0xAB,0xA8,0xA5,0xA2,0x9F,0x9C,0x99,0x96,0x93,0x90,0x8D,0x89,0x86,0x83,0x80,
0x80,0x7C,0x79,0x76,0x72,0x6F,0x6C,0x69,0x66,0x63,0x60,0x5D,0x5A,0x57,0x55,0x51,
0x4E,0x4C,0x48,0x45,0x43,0x40,0x3D,0x3A,0x38,0x35,0x33,0x30,0x2E,0x2B,0x29,0x27,
0x25,0x22,0x20,0x1E,0x1C,0x1A,0x18,0x16,0x15,0x13,0x11,0x10,0x0E,0x0D,0x0B,0x0A,
0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
0x0A,0x0B,0x0D,0x0E,0x10,0x11,0x13,0x15,0x16,0x18,0x1A,0x1C,0x1E,0x20,0x22,0x25,
0x27,0x29,0x2B,0x2E,0x30,0x33,0x35,0x38,0x3A,0x3D,0x40,0x43,0x45,0x48,0x4C,0x4E,
0x51,0x55,0x57,0x5A,0x5D,0x60,0x63,0x66,0x69,0x6C,0x6F,0x72,0x76,0x79,0x7C,0x80};
三、实验内容
1、产生连续方波信号,最大幅度为 2V,频次为 100Hz。
#include<>
#include<>
#define uchar unsigned char
#define DAC0832 XBYTE [0x7fff]
void delay(void);
void main(void)
{ 单片机实验四
uchar i;
while(1)
{
DAC0832=0;
delay();
DAC0832=100;
delay();
}
}
void delay()
{
uchar i,j;
for(i=0;i<10;i++)
for(j=0;j<120;j++);
}
2、产生连续锯齿波信号,频次为 100Hz。
#include<> 单片机实验四
#include<>
#define uchar unsigned char
#define DAC0832 XBYTE [0x7fff]
void delay(void);
void main(void)
{
uchar i;
while(1)
{
for(i=0;i<0xff;i++)
{
DAC0832=i;
delay();
}
}
}
void delay()
{
uchar i,j;
for(i=0;i<8;i++);
} 单片机实验四
3、产生连续三角波信号,周期为 5ms。
#include<>
#include<>
#define uchar unsigned char
#define DAC0832 XBYTE [0x7fff]
void delay(void);
void main(void)
{
uchar i;
while(1)
{
for(i=0;i<100;i++)
{
DAC0832=i;
delay();
}
for(i=100;i>0;i--)
{ 单片机实验四
DAC0832=i;
delay();
}
}
}
void delay()
{
uchar i,j;
for(i=0;i<2;i++);
}
4、产生连续正弦波信号,频次为 200Hz。
#include<>
#include<>
#define uchar unsigned char
#define DAC0832 XBYTE [0x7fff]
void delay(void);
unsigned char code sin[]={