文章目录
- 一、DAC
- 1、分辨率
- 2、线性度
- 3、绝对精度
- 4、建立时间
- 二、DAC工作原理
- 三、PWM
- 四、原理图
- 五、实例代码
一、DAC
DAC(Digital to analog converter)即数字模拟转换器,它可以将数字信号转换为模拟信号。
1、分辨率
DAC 的分辨率是输入数字量的最低有效位(LSB)发生变化时,所对应的输出模拟量(电压或电流)的变化量。
它反映了输出模拟量的最小变化值。
2、线性度
线性度(也称非线性误差)是实际转换特性曲线与理想直线特性之间的最大偏差。
常以相对于满量程的百分数表示。
如±1%是指实际输出值与理论值之差在满刻度的±1%以内。
3、绝对精度
绝对精度(简称精度)是指在整个刻度范围内,任一输入数码所对应的模拟量实际输出值与理论值之间的最大误差。
4、建立时间
建立时间是指输入的数字量发生满刻度变化时,输出模拟信号达到满刻度值的±1/2LSB 所需的时间。
是描述D/A转换速率的一个动态指标。
根据建立时间的长短,可以将DAC分成超高速(<1μS)、高速(10~1μS)、中速(100~10μS)、低速(≥100μS)几档。
二、DAC工作原理
DAC 输出电压计算公式:V0=Vref*z/256。
z表示单片机给的数字量,vref为参考电压,通常我们是接在系统电源上,即5V,数值256表示DAC精度为8位。
DAC 主要由数字寄存器、模拟电子开关、位权网络、求和运算放大器和基准电压源(或恒流源)组成。
用存于数字寄存器的数字量的各位数码,分别控制对应位的模拟电子开关,使数码为1的位在位权网络上产生与其位权成正比的电流值,再由运算放大器对各电流值求和,并转换成电压值。
三、PWM
PWM 是 Pulse Width Modulation 的缩写,中文意思就是脉冲宽度调制,简称脉宽调制。
参考《C51_PWM》
四、原理图
PWM输出控制管脚接在单片机P2.1管脚上,DAC1为PWM输出信号,将其连接一个LED,这样可以通过指示灯的状态直观的反映出PWM输出电压值变化。
LM358芯片与这些电容电阻构成了一个跟随电路,即输入是多少,输出即为多大电压,输出电压范围是0-5V。
五、实例代码
#include<REGX52.H>#include"Delay.h"#include"Timer0.h"sbit DA=P2^1;unsignedcharCounter,Compare;//计数值和比较值,用于输出PWMunsignedchari;voidmain(){Timer0_Init();while(1){for(i=0;i<100;i++){Compare=i;//设置比较值,改变PWM占空比Delay(10);}for(i=100;i>0;i--){Compare=i;//设置比较值,改变PWM占空比Delay(10);}}}voidTimer0_Routine()interrupt1{TL0=0x9C;//设置定时初值TH0=0xFF;//设置定时初值Counter++;Counter%=100;//计数值变化范围限制在0~99if(Counter<Compare)//计数值小于比较值{DA=1;//输出1}else//计数值大于比较值{DA=0;//输出0}}