这一节来介绍下如何使用
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介绍
出于成本考虑,在实际开发应用中,使用较多的是通过 PWM 来模拟 DAC 输出。下面就先来了解下 PWM 相关概念。
PWM 是 Pulse Width Modulation 的缩写,中文意思就是脉冲宽度调制,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,其控制简单、灵活和动态响应好等优点而成为电力电子技术最广泛应用的控制方式,其应用领域包括测量,通信,功率控制与变换,电动机控制、伺服控制、调光、开关电源,甚至某些音频放大器,因此学习 PWM 具有十分重要的现实意义。
其实我们也可以这样理解,PWM 是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM 信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(O

本文详细介绍了51单片机如何通过DAC(数字模拟转换器)进行数模转换,讲解了DAC的工作原理、关键技术指标,并通过电阻网络型DAC展示了输出电压计算。此外,还讨论了在成本考虑下使用PWM(脉冲宽度调制)模拟DAC输出的方法,阐述了PWM的工作原理。最后,文章给出了硬件设计和软件设计的实现步骤,包括PWM的实现函数和主函数,实现实验中指示灯的呼吸灯效果。
最低0.47元/天 解锁文章
1088

被折叠的 条评论
为什么被折叠?



