1、项目五项目五 数据采集与输出系统设计数据采集与输出系统设计5.1 单片机数据采集单片机数据采集A/D转换器转换器5.2 单片机输出控制单片机输出控制D/A转换器转换器5.3 DS18B20温度采集芯片温度采集芯片一、一、逐次逼近式逐次逼近式ADC的转换原理的转换原理5.1 5.1 单片机数据采集单片机数据采集A/DA/D转换器转换器5.1 5.1 单片机数据采集单片机数据采集A/DA/D转换器转换器二、芯片引脚功能二、芯片引脚功能IN0IN7:八路模拟信号输入端。:八路模拟信号输入端。ADD-A、ADD-B、ADD-C:三位地址码输入端。八路模:三位地址码输入端。八路模拟信号转换选择由这三个端
2、口控制。拟信号转换选择由这三个端口控制。CLOCK:外部时钟输入端。:外部时钟输入端。D0D7:数字量输出端。:数字量输出端。OE:A/D转换结果输出允许控制端。当转换结果输出允许控制端。当OE为高电平时,为高电平时,允许允许A/D转换结果从转换结果从D0D7端输出。端输出。ALE:地址锁存允许信号输入端。八路模拟通道地址由:地址锁存允许信号输入端。八路模拟通道地址由A、B、C输入,在输入,在ALE信号有效时将该八路地址锁存。信号有效时将该八路地址锁存。START:启动:启动A/D转换信号输入端。当转换信号输入端。当START端输入一端输入一个正脉冲时,将进行个正脉冲时,将进行A/D转换。转换
3、。EOC:A/D转换结束信号输出端。当转换结束信号输出端。当 A/D转换结束后,转换结束后,EOC输出高电平。输出高电平。Vref(+)、Vref(-):正负基准电压输入端。基准正电压的典:正负基准电压输入端。基准正电压的典型值为型值为+5V。VCC和和GND:芯片的电源端和地端。:芯片的电源端和地端。5.1 单片机数据采集单片机数据采集A/D转换器转换器三、三、A/D转换器的主要技术指标转换器的主要技术指标1221221.分辨率分辨率ADC的分辨率的分辨率是指使输出数字量变化一个相邻数码所需输是指使输出数字量变化一个相邻数码所需输入模拟电压的变化量。常用二进制的位数表示。例如入模拟电压的变化
4、量。常用二进制的位数表示。例如12位位ADC的分辨率就是的分辨率就是12位,或者说分辨率为满刻度位,或者说分辨率为满刻度FS的的1/。一个一个10V满刻度的满刻度的12位位ADC能分辨输入电压变化最小值是能分辨输入电压变化最小值是10V1/=2.4mV。2.2.量化误差量化误差 ADC ADC把模拟量变为数字量,用数字量近似表示模拟量,这把模拟量变为数字量,用数字量近似表示模拟量,这个过程称为量化。个过程称为量化。量化误差是量化误差是ADCADC的有限位数对模拟量进行量的有限位数对模拟量进行量化而引起的误差化而引起的误差。实际上,要准确表示模拟量,。实际上,要准确表示模拟量,ADCADC的位数
5、需的位数需很大甚至无穷大。一个分辨率有限的很大甚至无穷大。一个分辨率有限的ADCADC的阶梯状转换特性曲的阶梯状转换特性曲线与具有无限分辨率的线与具有无限分辨率的ADCADC转换特性曲线(直线)之间的最大转换特性曲线(直线)之间的最大偏差即是量化误差。偏差即是量化误差。5.1 单片机数据采集单片机数据采集A/D转换器转换器3.偏移误差偏移误差偏移误差偏移误差是指输入信号为零时,输出信号不为零的值,所以是指输入信号为零时,输出信号不为零的值,所以有时又称为零值误差。假定有时又称为零值误差。假定ADC没有非线性误差,则其转换没有非线性误差,则其转换特性曲线各阶梯中点的连线必定是直线,这条直线与横轴
6、相特性曲线各阶梯中点的连线必定是直线,这条直线与横轴相交点所对应的输入电压值就是偏移误差。交点所对应的输入电压值就是偏移误差。.满刻度误差满刻度误差满刻度误差满刻度误差又称为增益误差。又称为增益误差。ADC的满刻度误差是指满刻度的满刻度误差是指满刻度输出数码所对应的实际输入电压与理想输入电压之差。输出数码所对应的实际输入电压与理想输入电压之差。5.1 单片机数据采集单片机数据采集A/D转换器转换器5.线性度线性度线性度线性度有时又称为非线性度,它是指转换器实际的转换特性有时又称为非线性度,它是指转换器实际的转换特性与理想直线的最大偏差。与理想直线的最大偏差。6.绝对精度绝对精度在一个转换器中,
7、任何数码所对应的实际模拟量输入与理论在一个转换器中,任何数码所对应的实际模拟量输入与理论模拟输入之差的最大值,称为模拟输入之差的最大值,称为绝对精度绝对精度。对于。对于ADC而言,可而言,可以在每一个阶梯的水平中点进行测量,它包括了所有的误差。以在每一个阶梯的水平中点进行测量,它包括了所有的误差。7.转换速率转换速率ADC的的转换速率转换速率是能够重复进行数据转换的速度,即每秒转是能够重复进行数据转换的速度,即每秒转换的次数。而完成一次换的次数。而完成一次A/D转换所需的时间(包括稳定时间),转换所需的时间(包括稳定时间),则是转换速率的倒数。则是转换速率的倒数。5.1 单片机数据采集单片机数
8、据采集A/D转换器转换器例:使用例:使用ADC0809完成完成A/D转换,转换得到的二进制数由小灯输转换,转换得到的二进制数由小灯输出表示。出表示。5.1 单片机数据采集单片机数据采集A/D转换器转换器#include#include#define uchar unsigned char#define IN0 XBYTE 0 xefffuchar k;sbit ad_busy=P33;uchar ad0809(uchar*x)uchar i,j;*x=0;/i=i;i=i;while(ad_busy=1);j=*x;return j;void main()while(1)k=ad0809(&I
9、N0);P1=k;5.1 单片机数据采集单片机数据采集A/D转换器转换器一、一、D/AD/A转换器的基本原理转换器的基本原理型电阻网络型电阻网络D/AD/A转换器转换器:5.2 5.2 单片机输出控制单片机输出控制D/AD/A转换器转换器输出电压输出电压 的大小与数字量具有对应的关系的大小与数字量具有对应的关系。5.2 5.2 单片机输出控制单片机输出控制D/AD/A转换器转换器二、二、D/AD/A转换器的主要性能指标转换器的主要性能指标2n1 1、分辨率、分辨率分辨率分辨率是指输入数字量的最低有效位(是指输入数字量的最低有效位(LSBLSB)发生变化时,)发生变化时,所对应的输出模拟量(常为
10、电压)的变化量。它反映了输所对应的输出模拟量(常为电压)的变化量。它反映了输出模拟量的最小变化值。出模拟量的最小变化值。分辨率与输入数字量的位数有确定的关系,可以表示成分辨率与输入数字量的位数有确定的关系,可以表示成FS FS/。FSFS表示满量程输入值,表示满量程输入值,n n为二进制位数。对于为二进制位数。对于5V5V的满量程,采用位的的满量程,采用位的DACDAC时,分辨率为时,分辨率为5V/2565V/25619.5mV19.5mV;当采用当采用1212位的位的DACDAC时,分辨率则为时,分辨率则为5V/40965V/40961.22mV1.22mV。显然,。显然,位数越多分辨率就越
11、高。位数越多分辨率就越高。2 2、线性度、线性度线性度(也称非线性误差)线性度(也称非线性误差)是实际转换特性曲线与理想直是实际转换特性曲线与理想直线特性之间的最大偏差。常以相对于满量程的百分数表示。线特性之间的最大偏差。常以相对于满量程的百分数表示。如如是指实际输出值与理论值之差在满刻度的是指实际输出值与理论值之差在满刻度的以内。以内。5.2 5.2 单片机输出控制单片机输出控制D/AD/A转换器转换器3、绝对精度和相对精度、绝对精度和相对精度绝对精度(简称精度)绝对精度(简称精度)是指在整个刻度范围内,任一输入数是指在整个刻度范围内,任一输入数码所对应的模拟量实际输出值与理论值之间的最大误
12、差。绝码所对应的模拟量实际输出值与理论值之间的最大误差。绝对精度是由对精度是由DAC的增益误差(当输入数码为全的增益误差(当输入数码为全1时,实际输时,实际输出值与理想输出值之差)、零点误差(数码输入为全时,出值与理想输出值之差)、零点误差(数码输入为全时,DAC的非零输出值)、非线性误差和噪声等引起的。绝对精的非零输出值)、非线性误差和噪声等引起的。绝对精度(即最大误差)应小于度(即最大误差)应小于1个个LSB。相对精度相对精度与绝对精度表示同一含义,用最大误差相对于满刻与绝对精度表示同一含义,用最大误差相对于满刻度的百分比表示。度的百分比表示。5.2 5.2 单片机输出控制单片机输出控制D
13、/AD/A转换器转换器4、建立时间、建立时间建立时间建立时间是指输入的数字量发生满刻度变化时,输出模拟是指输入的数字量发生满刻度变化时,输出模拟信号达到满刻度值的信号达到满刻度值的1/2LSB所需的时间。是描述所需的时间。是描述D/A转转换速率的一个动态指标。换速率的一个动态指标。电流输出型电流输出型DAC的建立时间短的建立时间短。电压输出型电压输出型DAC的建立时的建立时间主要决定于运算放大器的响应时间间主要决定于运算放大器的响应时间。根据建立时间的长。根据建立时间的长短,可以将短,可以将DAC分成超高速(分成超高速(1S)、高速(、高速(101S)、)、中速(中速(10010S)、低速()
14、、低速(100S)几档。)几档。应当注意,精度和分辨率具有一定的联系,但概念不同。应当注意,精度和分辨率具有一定的联系,但概念不同。DAC的位数多时,分辨率会提高,对应于影响精度的量化的位数多时,分辨率会提高,对应于影响精度的量化误差会减小。但其它误差(如温度漂移、线性不良等)的误差会减小。但其它误差(如温度漂移、线性不良等)的影响仍会使影响仍会使DAC的精度变差。的精度变差。5.2 5.2 单片机输出控制单片机输出控制D/AD/A转换器转换器三、三、DAC0832DAC0832芯片及其与单片机接口芯片及其与单片机接口 DAC0832 DAC0832是使用非常普遍的位是使用非常普遍的位D/AD
15、/A转换器,由于其片转换器,由于其片内有输入数据寄存器,故可以直接与单片机接口。内有输入数据寄存器,故可以直接与单片机接口。DAC0832DAC0832以电流形式输出,当需要转换为电压输出时,可以电流形式输出,当需要转换为电压输出时,可外接运算放大器。属于该系列的芯片还有外接运算放大器。属于该系列的芯片还有DAC0830DAC0830、DAC0831DAC0831,它们可以相互代换。,它们可以相互代换。DAC0832DAC0832主要特性主要特性:分辨率位;分辨率位;电流建立时间电流建立时间SS;数据输入可采用双缓冲、单缓冲或直通方式;数据输入可采用双缓冲、单缓冲或直通方式;输出电流线性度可在
16、满量程下调节;输出电流线性度可在满量程下调节;逻辑电平输入与逻辑电平输入与TTLTTL电平兼容;电平兼容;单一电源供电(单一电源供电(5V5V15V15V););低功耗,低功耗,20m20m。5.2 5.2 单片机输出控制单片机输出控制D/AD/A转换器转换器5.2 5.2 单片机输出控制单片机输出控制D/AD/A转换器转换器DAC0832内部结构及引脚内部结构及引脚5.2 5.2 单片机输出控制单片机输出控制D/AD/A转换器转换器四、四、DAC0832DAC0832与与80C5180C51单片机的接口单片机的接口、单缓冲工作方式、单缓冲工作方式 此方式适用于只有一路模拟量输出,或有几路模拟
17、量适用于只有一路模拟量输出,或有几路模拟量输出但并不要求同步的系统输出但并不要求同步的系统。5.2 5.2 单片机输出控制单片机输出控制D/AD/A转换器转换器双极性模拟输出电压双极性模拟输出电压 双极性输出时的分辨率比单极性输出时降低双极性输出时的分辨率比单极性输出时降低1/2,这,这是由于对双极性输出而言,最高位作为符号位,只有是由于对双极性输出而言,最高位作为符号位,只有7位数值位。位数值位。5.2 5.2 单片机输出控制单片机输出控制D/AD/A转换器转换器2 2、双缓冲工作方式、双缓冲工作方式 多路多路D/AD/A转换输出,如果要求同步进行,就应该采用转换输出,如果要求同步进行,就应
18、该采用双缓冲器同步方式双缓冲器同步方式。5.2 5.2 单片机输出控制单片机输出控制D/AD/A转换器转换器3、直通工作方式、直通工作方式 当当DAC0832芯片的片选信号、写信号、及传送控制芯片的片选信号、写信号、及传送控制信号的引脚全部接地,允许输入锁存信号信号的引脚全部接地,允许输入锁存信号ILE引脚接引脚接5V时,时,DAC0832芯片就处于直通工作方式,数字量一旦输芯片就处于直通工作方式,数字量一旦输入,就直接进入入,就直接进入DAC寄存器,进行寄存器,进行D/A转换。转换。5.2 5.2 单片机输出控制单片机输出控制D/AD/A转换器转换器例题:使用DAC0832完成D/A转换,转
19、换得到的电压用万用表测量。共设置3个数字量输出值,分别位0(0 V)、51(1 V)、102(2 V)#include#include#define DA0832 XBYTE0 xfeff#define uchar unsigned charuchar a;void DA0832_PROM(uchar x)DA0832=x;void main(void)a=0 x66;DA0832_PROM(a);while(1);5.2 5.2 单片机输出控制单片机输出控制D/AD/A转换器转换器例题:使用DAC0832完成D/A转换,转换得到的电压用万用表测量。共设置3个数字量输出值,分别位0(0 V)、
20、51(1 V)、102(2 V)#include#include#define DA0832 XBYTE0 xfeff#define uchar unsigned charuchar a;void DA0832_PROM(uchar x)DA0832=x;void main(void)a=0 x66;DA0832_PROM(a);while(1);5.2 5.2 单片机输出控制单片机输出控制D/AD/A转换器转换器例题:使用DAC0832完成D/A转换,转换得到的电压用万用表测量。共设置3个数字量输出值,分别位0(0 V)、51(1 V)、102(2 V)#include#include#de
21、fine DA0832 XBYTE0 xfeff#define uchar unsigned charuchar a;void DA0832_PROM(uchar x)DA0832=x;void main(void)a=0 x66;DA0832_PROM(a);while(1);5.2 5.2 单片机输出控制单片机输出控制D/AD/A转换器转换器5.3 DS18B20温度采集芯片温度采集芯片一、一、DS18B20简介简介DS18B20是美国DALLAS半导体公司推出的第一片支持“一线总线”接口的温度传感器。独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS
22、18B20的双向通讯。5.3 DS18B20温度采集芯片温度采集芯片二、二、DS18B20和单片机连接和单片机连接在寄生电源供电方式下,DS18B20从单线信号线上吸取能量,在信号线DQ处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。5.3 DS18B20温度采集芯片温度采集芯片三、编程三、编程ReadTemperature(void)unsigned char a=0;unsigned char b=0;long tt=0,t=0;Init_DS18B20();WriteOneChar(0 xCC);/跳过读序号列号的操作WriteOneChar(0 x44);/启动温度转换Init_DS18B20();WriteOneChar(0 xCC);/跳过读序号列号的操作WriteOneChar(0 xBE);/读取温度寄存器等(共可读9个寄存器)前两个就是温度a=ReadOneChar();b=ReadOneChar();本质单片机读传感器二级制数据,然后转为十进制。总结总结 本章主要讲了本章主要讲了ADAD和和DADA的应用,重点掌握的应用,重点掌握外围设备的地址的确定,了解外围设备的地址的确定,了解DS18b20DS18b20程序的程序的编写。编写。