这一节来介绍下如何使用
51
单片机输出模拟信号,要让
51
单片机输出模拟信号,同样需要相应的转换器,这种转换器我们称之为
DAC
数模转换器,但
DAC
专用芯片价格是比较高的,在实际应用中通常使用
PWM
技术来模拟
DAC
输出。我们开发板上集成了一个
DAC
(
PWM
)模块电路,通过单片机
IO
口生成
PWM
波来模拟
DAC
输出。本节要实现的功能是:系统运行时,
DAC
(
PWM
)模块上的指示灯
DA1
呈呼吸灯效果,由暗变亮再由亮变暗。
一、DAC介绍
DAC
(Digital to analog converter
)即数字模拟转换器,它可以将数字信号转换为模拟信号。它的功能与 ADC
相反。在常见的数字信号系统中,大部分传感器信号被转化成电压信号,而 ADC
把电压模拟信号转换成易于计算机存储、处理的数字编码,由计算机处理完成后,再由 DAC
输出电压模拟信号,该电压模拟信号常常用来驱动某些执行器件,使人类易于感知。如音频信号的采集及还原就是这样一个过程。
DAC
的主要技术指标如下:
-
分辨率
DAC
的分辨率是输入数字量的最低有效位(LSB
)发生变化时,所对应的输出模拟量(电压或电流)的变化量。它反映了输出模拟量的最小变化值。分辨率与输入数字量的位数有确定的关系,可以表示成FS /(2^n)
。FS
表示满量程输入值,n
为二进制位数。对于5V
的满量程,采用8
位的DAC
时,分辨率为5V/256 =19.5mV
;当采用12
位的DAC
时,分辨率则为5V/4096=1.22mV
。显然,位数越多分辨率就越高。 -
线性度
线性度(也称非线性误差)是实际转换特性曲线与理想直线特性之间的最大偏差。常以相对于满量程的百分数表示。如±1%
是指实际输出值与理论值之差在满刻度的±1%
以内。 -
绝对精度和相对精度
绝对精度(简称精度)是指在整个刻度范围内,任一输入数码所对应的模拟量实际输出值与理论值之间的最大误差。绝对精度是由DAC
的增益误差(当输入数码为全 1 时,实际输出值与理想输出值之差)、零点误差(数码输入为全0时,DAC
的非零输出值)、非线性误差和噪声等引起的。绝对精度(即最大误差)应小于 1 个LSB
。相对精度与绝对精度表示同一含义,用最大误差相对于满刻度的百分比表示。 -
建立时间
建立时间是指输入的数字量发生满刻度变化时,输出模拟信号达到满刻度值的±1/2LSB
所需的时间。是描述D/A
转换速率的一个动态指标。根据建立时间的长短,可以将DAC
分成超高速(<1μS
)、高速(10~1μS
)、中速(100~10 μS
)、低速(≥100μS
)几档。
2.DAC 工作原理
了解了 DAC
基本概念及特性后,再来看下其工作原理,下面以T
型电阻网络DAC
来介绍。其内部结构图如下所示:
DAC 输出电压计算公式:
V 0 = V r e f ∗ z / 256 V0=Vref*z/256 V0=Vref∗z/256
公式中的 z
表示单片机给的数字量,vref
为参考电压,通常我们是接在系统电源上,即 5V
,数值 256
表示 DAC
精度为 8
位。
DAC
主要由数字寄存器、模拟电子开关、位权网络、求和运算放大器和基准电压源(或恒流源)组成。用存于数字寄存器的数字量的各位数码,分别控制对应位的模拟电子开关,使数码为 1 的位在位权网络上产生与其位权成正比的电流值,再由运算放大器对各电流值求和,并转换成电压值。
上述的模拟电子开关都分别接着一个分压的器件,比如说电阻。模拟开关的个数取决于 DAC
的精度。那么 N
个电子开关就把基准电压分为 N
份(并不是平均分哦),而这些开关根据输入的二进制每一位数据对应开启或者关闭,把分压的器件上的电压引入输出电路中。
二、PWM介绍
出于成本考虑&#x