510 likes | 686 Views
实例解读 51 单片机完全学习与应用 All you need to know about the 8051 microcontroller. 杨欣 Yang X 张延强 Zhang Y 编著 莱 · 诺克斯 Nokes L 王玉凤 Wang Y 刘湘黔 Liu X 主审 电子工业出版社 2011.2. 第 10 章 ADC 和 DAC. www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息
E N D
实例解读51单片机完全学习与应用All you need to know about the 8051 microcontroller 杨欣Yang X 张延强Zhang Y 编著 莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X 主审 电子工业出版社 2011.2
第10章 ADC和DAC www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 信号的采集与处理 ADC是“analog to digital converter”的缩写,有时也用“A/D”表示,也就是“模数转换器”。DAC则是“digital to analog converter”的缩写,有时也用“D/A”表示,即“数模转换器”。ADC和DCA实现的是相反的功能,前者将模拟信号转换成数字信号,后者则把数字信号转换成模拟信号。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.1 ■模数转换 10.1.1 从模拟信号到数字信号 模拟信号是一类电平随着时间进行连续变化的信号,平时常见的正弦信号、三角波等都是模拟信号。如果把一段模拟信号分析一下,把这段时间分成若干份t0、t1、t2、……、tn可以很容易知道某一时刻的幅度值,如t3时刻信号的幅度为3.3V等。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.1.1 从模拟信号到数字信号 我们把t0~tn时刻的幅度值全部提取出来,放到一个新的坐标轴里,就会得到一串离散的幅度值A0、A1、A2、…、An,每一时刻对应一个幅度值,这一串离散的幅度值表示了这段模拟信号,并且很容易理解如果一定的时间内n越大,幅度值表示信号越逼真。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.1.1 从模拟信号到数字信号 每一时刻总有一个对应的幅度值,如果把峰值分成16份,并用4位二进制数来依次表示每一份幅度值,则任意时刻都能找到一个唯一的二进制数来代表幅度值。如t0时刻幅度值为0001,t1时刻幅度值为0100,t2时刻幅度值为1000,t3时刻幅度值为1010等。把这若干个代表幅度值的二进制数还原到坐标轴上时就得图示的折线,它与原来的模拟信号相比,虽然分辨率降低但是还是能大体上反映模拟信号。模拟信号离散化的目的是将模拟信号转换成二进制数字信号,这样,单片机等数字器件就能派上用场了。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.1.2 电平指示器中的ADC 模拟信号由一个电位器RP2的调节来产生,信号进入ADC0804的VIN(+)端,通过模数转换,转换的结果从DB0~DB7输出,与输出端连接的8支发光二极管用以显示转换的结果。不断调节电位器RP2,可以看到8支发光二极管状态在不断地改变。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.2 ■元器件插曲之十五:ADC0804 10.2.1 管脚名称及功能 ADC0804有20个管脚,除了模拟信号输入端(6、7管脚)和数字信号输出端(11~18管脚)外,其他管脚的名称和功能描述如表10-2所示。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.2.2 使能控制端 ADC0804的/CS端(1管脚)是器件使能端,这是一个低电平使能的器件。 /CS端接地,表明器件始终使能。 /RD端(2管脚)是输出使能端,也是低电平使能。如果/RD接地,数字信号输出端DB0~DB7的数据可以实时输出模数转换的结果。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.2.3 转换控制端 ADC0804的/WR端(3管脚)是转换开始使能,低电平有效。/INTR端(5管脚)是转换结束标志,当ADC0804完成一次模数转换后, /INTR端出现低电平。/WR端与电阻R1和电容C1组成的结构相连,上电时可启动ADC0804的首次模数转换。当ADC0804转换完一次,则/INTR端输出一个低电平,表明器件转换完毕,这个低电平恰好成为/WR端的使能信号,开始ADC0804的下一次模数转换。这样的相连方式使ADC0804不断进行着模数转换。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.2.4 时钟信号 CLK IN端(4管脚)、CLK R(19管脚)为ADC0804的时钟信号端。图10-7中电阻R11、电容C2与ADC0804的CLK R端和CLK IN端组成了ADC的时钟电路,这个结构使用的是ADC0804内部的时钟。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.2.5 模拟输入电压范围 ADC0804支持差分信号输入,差分信号可从VIN(+)端(6管脚)和VIN(-)端(7管脚)输入。如果输入非差分信号时,信号输入VIN(+)端,并将VIN(-)端接地。 任何ADC都有一个输入模拟电压的范围,对于ADC0804来说,其模拟输入电压范围为 0~+5V。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.2.6 转换时间 当模拟信号加到ADC的模拟输入端时,控制信号使ADC开始进行模数转换,到转换完成在数字信号输出端出现数据的过程是需要一定的时间。比如ADC0804就需要100µs,这个时间称为ADC的转换时间。如果ADC的转换时间越小说明它的转换越快,能处理模拟信号的频率也就越高,当然价格也就越贵。像ADC0804的100µs转换时间最多只能应付频率不超过5kHz的模拟信号。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.2.7 接地 ADC0804采用单电源供电,一般工作电压为+5V。 ADC0804有A GND(8管脚)和D GND(10管脚)两个接地端。A GND、D GND分别为模拟信号接地端和数字信号接地端。A GND与模拟信号的输入接地端相连,而D GND当与数字电路部分电源的接地端相连。之所以要将A GND和D GND分别接地的原因是将模拟输入信号与数字输出产生的瞬间电平隔离开来,确保转换的精度。由于本章实例对精度要求不高,可以把A GND和D GND都接入同一个接地中。在实际应用中,应该把A GND和D GND分别与模拟地线和数字地线相连。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.2.8 参考电平与分辨率 参考电平电路由稳压管D9、电阻R10、电位器RP1组成,向ADC0804的VREF/2端(9管脚)提供一个参考电平。这个参考电平的大小很有讲究,它直接影响着分辨率。分辨率的计算方法为: 其中, (VREF/2)代表VREF/2端(9管脚)上的电压。比如在图10-7中,通过调节电位器RP1使(VREF/2) =2.0V,则分辨率为: www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.2.8 参考电平与分辨率 这个分辨率代表了使ADC数字输出端最低有效位改变状态的模拟输入信号变化的最小值,或者说是ADC所能反映的最小模拟输入电压变化值。比如说某时刻模拟输入信号为1.500V,对应数字输出端状态为1001 0000,在分辨率 =15.6mV时,当模拟输入信号变为1.5156V时(改变了15.6mV),对应数字输出端的状态变换为1001 0001。 另外,VREF/2端上的电压还决定了ADC能有效转换的最大模拟输入电压值,为(VREF/2)的2倍。比如再调节电位器RP1使 =1.28V,则所能有效转换的最大模拟输入电压为1.28×2=2.56V,分辨率为2.56V/256=10mV。可见,ADC有效转换的最大模拟输入电压与分辨率是一对矛盾:有效转换的最大模拟输入电压越大,分辨率越低,反之亦然。如果ADC0804的VREF/2端悬空,则芯片内部电路会使 =2.5V,有效转换的最大模拟输入电压为+5V(与工作电压相等),此时分辨率为19.5mV。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.3 ■ ADC与单片机 10.3.1 单片机控制ADC0804 我们向电平指示器添加了一个单片机,ADC0804的数字信号输出端DB0~DB7与单片机的P0口连接,其转换结束中断输出端/INTR与单片机的P2.0口相连,另外转换开始使能端/WR及数据输出使能端/RD分别与单片机的/WR(16管脚)和/RD(17管脚)相连。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.3.1 单片机控制ADC0804 • 要实现单片机控制ADC0804进行模数转换,需要经过以下几个步骤: • 首先需要保证ADC0804的使能端/CS为低电平。 • 向ADC0804的/WR写一个由高电平跳为低电平的信号,以启动转换过程。 • 启动转换后,不断检查ADC0804的 /INTR端,如果/INTR端出现低电平,表明转换完成,否则循环检查。 • 当转换完成, /INTR出现低电平时,向ADC0804的/RD端写一个由高电平跳为低电平的信号,使DB0~DB7输出数字信号。 • 当DB0~DB7出现数据后,单片机通过I/O口读取。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.3.2 程序设计 如果把ADC0804当成一个存储器,其数据端DB0~DB7与单片机的P0口相连、控制端/WR和/RD分别与单片机的/WR(16管脚)和/RD(17管脚)相连可以很方便的编写出单片机的控制程序来。指令“MOVX @R0,A”是一条片外数据装载指令,功能是向片外存储器写入数据。这里并不是真的向ADC0804写什么数据,而是借这条指令在单片机的/WR端输出一个低电平以启动模数转换过程。转换启动后,指令“JBP2.0,$”就循环检测ADC0804的/INTR端是否出现低电平,一旦出现表明转换完毕,接着读片外存储器指令“MOVX A,@R0”可令单片机的/RD 端输出一个低电平以使能ADC0804输出转换好的数据,这条指令还可把出现在P0口上的转换好的数据读到累加器A中。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.4 ■模拟信号的调理 10.4.1电平变换电路 调理电路:放大或限制输入信号的幅度(调节电位器R4),增加或减少信号的偏置(调节电位器R5)。该电路由3个运放组成,分别构成了跟随器、电平移位器、增益控制器。调节电位器R5,电平移位器将跟随器输出的信号(从LF347的管脚1)进行上/下移位,也就是调整信号的直流电平分量,但是不改变信号的幅度。调节电位器R4可改变增益,从而控制信号的峰-峰值。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.4.2峰值检测器 电容C1的电压作为反馈,并在后级增加一个跟随器,得到峰值检测器。假设有图示的输入信号Vin进入峰值检测器中,通过电容C1对峰值电压的保持,电路输出端电平Vout总是等于前段时间最大峰值,只有当电平更高的峰值出现时会刷新输出信号。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.4.3绝对值电路 绝对值电路使负向信号“折到”正向上,相当于一个全波整流器。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.4.4微分器和积分器 微分器在某一时刻的输出与该时刻输入信号的变化率在数值上相等。信号经由电容C1进入运放,Rf为反馈电阻。假如输入一个斜率为VE的信号,由于信号的变化率恒定,则可在有源微分器的输出端得到一个大小为-VE的直流信号。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.4.4微分器和积分器 积分器在某一时刻的输出为之前输入信号的总面积。信号经由电阻R1进入运放。假如输入一个幅度VE的方波信号,随着时间(t)的推移,输入信号VE下的面积越来越大,在tE时刻,面积为VE×tE。由于VE恒定,时间越长,面积越大,于是输出端的信号在不断负向增加。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.4.5采样保持电路 ADC将模拟信号转换成数字信号需要一定的时间。为了避免因模拟信号变化过快致使ADC来不及转换,一般可根据实际需要使用采样保持电路对模拟信号进行稳定。假设有一个快速连续变化的模拟信号,采样保持电路中的采样模拟开关定期闭合一个瞬间,模拟信号通过采样模拟开关后给保持电容充电,采样模拟开关断开后,保持电容能维持信号的电平一段时间,于是就在至ADC的输入端出现了保持信号(图中的粗横线段)。这个保持信号的保持时间保证ADC有足够的采样及转换时间,且可以通过对采样模拟开关和保持电容的设置来调整。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.4.5采样保持电路 采样保持电路的原型由一个模拟开关、电容、输入和输出缓冲器组成。模拟开关对经输入缓冲器后的模拟输入信号进行采样,电容对采样信号的电平保持一段时间,同时,输出缓冲器的高输入阻抗能较好地防止电容很快地放电。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.4.5采样保持电路 工作过程:一个非常快的控制脉冲使得模拟开关闭合,使电容得到充电,充电的电压与输入信号相同。很快,模拟开关断开,由于输出缓冲器输入的阻抗非常大,电容能保持这个电压一段时间。从Vout端看,采样保持电路将模拟输入信号的瞬时值变成直流电平输出。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.4.5采样保持电路 AD585集成了两个缓冲器和一个由逻辑门控制的模拟开关。保持电容Ch的容量为100pF,如果需要可以在7、8管脚之间再并联一个外部的电容。 14和13管脚或12和13管脚用于输入控制模拟开关的脉冲,这个脉冲的宽度决定了采样保持周期。模拟信号通过2脚进入AD585。3、5脚之间可以连接一个电位器以调整偏置电压。另外,信号的增益可以通过在1或2脚与8脚之间外加一个反馈连接实现。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.5 ■ 数模转换 10.5.1数模转换基础 与模数转换的过程相反,在数模转换中,将一个多位二进制输入DAC中,将可从其输出端得到一个电压值。一个8位二进制数据00000010输入到DAC数字输入端,经过数模转换后变成一个对应的电压信号VOUT输出。如果连续向DAC输入数字信号,则模拟信号输出端将会得到一个连续变化的波形信号。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.5.2 DAC0808 以8位的DAC0808为例,AT89S51单片机控制DAC0808。A1~A8端(5~12管脚)是数字信号输入端,与单片机的P1口相连。注意,A1为最高有效位(MSB)而A8为最低有效位(LSB)。数模转换之后的模拟信号由IOUT-端(4管脚)输出,经过运放U3的放大后形成模拟电压Vout。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.5.2 DAC0808 VREF是DAC0808的参考电平,通过电阻RX输入VREF+端(14管脚)。电阻Rf为放大器的反馈电阻。根据图中的参数和公式,可知道DAC0808的数字输入信号与模拟输出电压的关系为: www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.5.2 DAC0808 假如从单片机的P1口输出C8H,即A1~A8为1100 1000,则DAC0808的输出电压为: 如果单片机的P1口连续向DAC0808输出不同的数字信号,就可以得到一个连续变化的模拟电压信号Vout。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.5.3 DAC的程序控制 如果将模拟电压输出Vout与与示波器相连,运行程序10-2就会看到一个阶梯形式的波形。该程序的设计思想是:不断增加累加器A的数值,并把数值从P1口输出到DAC0808的数字信号输入端,经过数模转换就可以得到一个电平不断升高的电压信号输出。当累加器A的数值增加到FFH后,再增加会使之溢出而从0开始增加。于是可以观察到一个不断循环输出的阶梯波。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.5.3 DAC的程序控制 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.6 ■如何选择ADC 10.6.1 常用ADC简介 ADC按照数字信号输出端的位数分为4位、6位、8位、10位、12位、14位、16位等几种。 按照转换速度可以分为超高速(转换时间≤1ns)、高速(转换时间≤1μs)、中速(转换时间≤1ms)、低速(转换时间≤1s)等几种不同转换速度的芯片。为适应系统集成的需要,有些转换器还将多路转换开关、基准电压源、二/十进制译码器和转换电路集成在一个芯片内,超越了单纯ADC的功能,构成数据采集系统和输入输出装置,为用户提供了很多方便。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.6.2如何确定位数 ADC的位数与整个测量系统所要测量控制的范围和精度有关,在选择ADC时,ADC的位数至少要比总精度的最低分辨率高一位的原则。实际选取时注意与其他环节所能达到的精度相适应就可以了,否则过高的位数会使成本过高。 对ADC位数的另一点考虑是如果单片机是8位的(如51单片机),则采用8位或8位以下的ADC接口电路最简单。如果ADC位数超过8位就要增加缓冲器接口。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.6.3如何确定转换速率 ADC从启动转换到转换结束并输出稳定的数字量需要一定的时间,这就是ADC的转换时间,其倒数就是ADC每秒能完成的转换次数,即转换速率。 例如某ADC的转换时间为100μs,其转换速率为1/100μs=104次/秒。根据采样定理和实际需要,一个周期的波形采10个点,那么这样的ADC最高也只能处理1kHz的信号。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.6.4如何确定工作电压和参考电平 现在大多数ADC的工作电压都为+3.3V~+15V范围。如果与51单片机系统相连则可选用5V工作电压的器件。 参考电平是ADC进行模数转换的主要依据,是保证转换精度的基本条件。在要求较高精度时,参考电平需要使用专门的参考电平芯片提供。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.7 ■如何选择DAC 10.7.1 如何确定分辨率 DAC的分辨率常常用器件的位数来描述,比如某DAC的数字输入端有8位,则说该DAC的分辨率为8位。分辨率越高,转换时对应数字输入信号最低位的模拟信号电压数值越小,说明器件越灵敏。常见的DAC有8位、10位、12位、14位、16位等几种。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.7.2 如何确定线性度 通常用非线性误差的大小来表示DAC的线性度,而非线性误差等于理想的输入/输出特性的偏差与满刻度输出之比的百分数。比如AD7541的线性度(非线性误差)≤±0.02%FSR(FSR为满刻度的英文缩写)。 10.7.3 如何确定转换精度 转换精度以最大的静态转换误差的形式给出。这个转换误差应该是包含非线性误差、比例系数误差以及漂移误差等综合误差。但是有的DAC技术手册中只是分别给出各项误差,而不给出结合误差。需要注意的是精度和分辨率是两个不同的概念。精度是指转换后所得的实际值对于理想值的接近程度,而分辨率是指能够对转换结果发生影响的最小输入量,对于分辨率很高的DAC并不一定具有很高的精度。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.7.4 如何理解建立时间 所谓建立时间,指的就是DAC的数字输入信号进行满刻度变化时,其输出模拟信号电压达到满刻度值±1/2LSB时所需要的时间。不同型的DAC建立时间不同,一般从几个ns到几个µs。比如AD7541,其输出达到与满刻度值差0.01%时,建立时间≤1µs。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.8 ■应用体验——DAC正弦波发生器 10.6.1 正弦信号公式 正弦函数为: 其中,B是函数的直流分量,决定正弦信号整体向上或向下移动的大小。A是幅度,是信号中心点到峰值的大小。而ω和分别为角频率和相移。 假设B=5(V)、A=5(V)、 =0,则正弦函数的具体表达式为: www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.6.1 正弦信号公式 根据该函数可计算出组成一个周期正弦信号波形的点的坐标,如果每隔30°计算一个正弦信号的幅度,可得13个点的坐标,为了便于利用单片机和DAC进行正弦信号的输出,我们把这13个点的幅度乘以25.6,得到表中最右侧单片机输出的数字信号值(十进制)。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.6.2 正弦波发生程序 把表中的单片机输出数字信号一栏中的数据保存在一个数据表中,通过查表操作把数据依次送到单片机的P1口,经过DAC0808进行数模转换后就可以在模拟信号输出端Vout得到正弦信号。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.8 ■应用体验——DAC正弦波发生器 见本书光盘中的视频演示 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.9 ■实例解读——数字温控系统 10.9.1系统功能与硬件设计 LM35把温度转换成模拟电压信号,输入ADC0804的VIN+端,模数转换后单片机获得表示温度的数字信号并交由七段数码管SD1和SD2显示。按钮开关S1用于设定温度门限,当被测温度低于设定时P3.5将输出高电平启动外设(如压缩机)。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.9.2程序设计 使用单片机的Timer 0中断的功能(11章将会详细介绍),每50ms单片机自动比较一次实测温度与设定门限温度,如果实测温度高于门限1℃,则使P3.5输出高电平启动压缩机制冷以降低温度。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.9.2程序设计 程序一开始,“START”段中前面几行指令用于初始化Timer 0中断,以使单片机每过50ms比较一次被测温度与门限温度。指令“SETBTR0”将启动中断,之后每过50ms就会比较一次。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.9.2程序设计 “AD_CONVERT”程序段负责控制ADC不断进行模数转换,并把转换的温度进行显示。其中还包括了判断按钮开关是否被按下的指令“JNB SW, SET_TEMP”,如果按钮按下则跳到“SET_TEMP”程序段执行设置门限温度的操作。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
第10章 ADC和DAC 10.9.2程序设计 “SET_TEMP”程序段执行设置门限温度的操作。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X