本帖最后由 咕咕呱呱孤寡 于 2024-11-16 10:12 编辑
#申请原创# @21小跑堂
数模转换(DAC)和模数转换(ADC)是单片机设计中重要的转换方式。
DAC的功能是将数字量转换为与其成比例的模拟电压或电流信号,绘出仪表外各种控制。DAC种类多,常用 DAC:DAC0832、AD7524、AD561等。
各种类型的 DAC 都具有数字量输入端、模拟量输出端及基准电压端。数字量输入有以下几种类型:① 无数据锁存器:② 带单数据锁存器:③ 带双数据锁存器:④ 可接串串行数字输入。第1种在与单片机接口时,要外加锁存器;第2种和第3种可直接与单片机接口:第4种与单片机接口十分简单,但接收数据较慢,适用于远距离现场控制的场合。
模拟量输出有两种方式:电压输出及电流输出。电压输出的DAC相当于一个电压源,其内阻很小,选用这种芯片时,与它匹配的负载电阻应较大。电流输出的芯片相当于电流源,其内阻较大,选用这种芯片时,负载电阻不可太大。在实际应用中,常选用电流输出的 DAC 实现电压输出,如下图(a)、(b)、(c)。
(a)、(b)电路均是单极性输出,(c)所示的电路为双极性输出。这里的双极性电路通常设计将R3=R4=2R2,从而使得输出电压Vout与基准电压Vref及第一级运放输出电压V1建立联系,其关系为Vout=-(2V1+Vref),这里将Vref取值通常选用芯片基准电压或电源电压,极性可正可负。
这里我们以DAC0832为实验芯片,进行简单实验仿真练习。
上图为DAC0832的逻辑结构,DAC0832作为典型的带内部双数据缓冲器的8位D/A芯片,单电源供电,从+5V~+15V均可正常工作,基准电压的范围为±10V,电流建立时间为1µs,CMOS工艺,低功耗20mm。其内部结构由1个8位输入寄存器、1个8位DAC寄存器和1个8位D/A转换器组成。
示如上图将DAC0832与8051单片机组合形成D/A转换电路通过Proteus仿真,实现波形输出。
通过keil软件进行代码编译与Proteus实现联机仿真,如下
宏定义文件代码:
#include<REGX51.H>
#define uchar unsigned char
#define uint unsigned int
#define WR P2_0
#define CS P2_1
变量定义代码:
uchar i,j;
uint k;
通过DAC0832实现三角波输出:
void delay()
{
for (k=0;k<1000;k++);
}
void main()
{
CS=0;
while(1)
{
for(i=0;i<255;i++)
{
P1=i;
WR=0;
WR=1;
}
for(j=255;j>1;j--)
{
P1=j;
WR=0;
WR=1;
}
}
}
去掉橙色部分或黄色部分可形成锯齿波输出,仿真效果图如下:
|