版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理与接口技术/第14章 A/D与•D/A转在单片换机应技用系统术中,输出控制是单片机实现控制运算处理后,对控制对象的输出通道接口。单片机主要输出三种形态的信号:数字量,开关量和频率量。单片机对模拟信号 被控制的对象处的信理号除上述三种可以直接由单片机直接产生的信号外,还有模拟量控制信号,该信号通过D/A转换产生。也就是说把单片机发出的数字信号转换成为模拟信号用来控制外部的设备,单片机仅能产生和处理数字信号,对于模拟信号只能借助D/A或者A/D转换芯片来完成。14.1D/A.A/D转换在单•片14机.1.系1统A/中D-D的/A应转换用的数据通道 在一般的系统中通过传感器采集现场的信息也就是模拟量,模拟量经过前期电路处理再经过A/D转换进入到单片机中14.1.1A/D-D/A转换的数据通道单片机经过D/A转换对现场物理量进行控制由于单片机的工作速度很快物理量的变化速度相对比较慢故一个A/D转换器可以通用于各现场监测点经过多路开关的定时循环接通,各路信号依次及时可靠进入到单片机14.1.1A/D-D/A转换的数据通道多路开关循环接通电路,而现场信号通过采样保持器进行保存,以此来保证转换的通畅性。另外采样频率必须是现场被测信号频谱中最高频率的两倍以上14.1.1A/D-D/A转换的数据通道D/A转换示意图:14.1.2
D/A转换工作原理 D/A转换是一种将数字信号转换成连续模拟信号的操作,它作为单片机系统的数字信号和模拟环境的连续信号之间提供了一种接口,它工作的原理就是输入数字信号输出模拟信号。A/D转换原理图14.1.2
D/A转换工作原理 D/A转换器的输入信号主要有两种分别为:数字信号和基准电压。 D/A转换器的输出信号是模拟量,大部分的输出是电流,也有的输出电压。14.1.2
D/A转换工作原理D/A转换器内置运算放大器以低阻抗输出电压,称之为电压输出型D/A转换器D/A转换器如果采用电流开关型电路,电流开关形电路如果直接输出生成的电流,则为电流输出型D/A转换器。14.1.2
D/A转换工作原理D/A转换器的输入数据是在不断变换的,为了保持输出的稳定,须在其内部处理器与输入口之间增加锁存数据的功能。一些D/A转换器甚至具有双重或者多重的数据缓冲结构,并具有数据锁存和地址译码电路。这样的转换器多见于12位甚至更高的D/A转换器。14.1.3如何选择参考指D标/:A转换器分辨率:则最小输出模拟量与最大输出模拟量之比转换时间:将一个数字量转换为稳定模拟量所需要的时间叫转换时间。一般情况下电流输出的D/A转换时间比较短,电压输出的D/A转换时间比较长线性度:考虑输出的线形关系转换精度:相对实际物理量的误差14.1.3如何选择D/A转D换/器A的转类型:换器根据输出端口是并口还是串口,可分为串型输出和并行输出器件根据输出是电流还是电压,可分为电压输出型和电流输出型器件根据能否进行乘法运算,可分为乘法运算型和非乘法运算型根据内部是否有锁存器,可分为锁存型器件和非锁存型器件14.1.3如何选•择D在D//AA转换转器中换有在器基准电压上加交流信号的,这样就可以得到数字输入和交流信号输入相乘的结果所以称为乘法型D/A转换器,这种转换器不仅可以进行乘法运算,还可以使输入信号衰减,也可以做调制器对输入信号进行调制。14.2
8位D/A芯片DAC0DA8C038322是由8位输入寄存器,8 位DAC寄存器和8位D/A转换器组成。 DAC0832中有两级锁存器,第一级即输入 寄存器,第二级为DAC寄存器。除了能工作在单缓冲方式,通过这两级锁存器DAC0832可以工作在双缓冲方式下,在输出模拟信号的同时可以采集下一个数字量,提高了转换速度。14.2
8位D/A芯片DAC利0用8两级3转2换器的作用可以让多个 D/A转换器同时工作,再通过第二级锁存 信号实现多路D/A转换的同时输出。只要数据一进入DAC寄存器便启动D/A转换。14.2.1➢DDAAC0C8302的8引3脚2如的下:引脚DI0~DI7:8为数据输入端ILE:输入寄存器的数据允许锁存信号➢DAC0832的引脚:输入寄存器选择信号:输入寄存器的数据写信号:DAC寄存器写信号,并启动转换:数据向DAC寄存器传送信号,传送后即启动转换14.2.1
DAC0832的引脚VREF:参考电压输入端IOUT1,IOUT2:电流输出端Rfb:反馈信号输入端AGND:模拟电路地(第三脚)DGND:数字电路地(第十脚)VCC:芯片供电电压14.2.1
DAC0832的引脚注意:当时,输入数据;当时,数据被锁定。14.2.2单片机与
DAC0832的接口电路14.2.2单片机与
DAC0832的接口电路•DAC0832带有数据输入寄存器,是总线兼容型的,可以将D/A芯片直接与数据总线相连,作为一个拓展的I/O口。•单缓冲接口方式•在单缓冲接口方式下,ILE接+5V。写信号控制数据的锁存,和相连,接单片机的,即数据同时写入两个寄存器;传送允许信号与片选相连,即选中本片DAC0832后,写入数据立刻启动转换。本例子DAC0832的地址为FFFEH。这种单缓冲方式适用于只有一路模拟信号输出的场合。14.2.2单片机与
DAC0832的接口电路 本例子在运放输出端输出一个锯齿波电压信号,程序设计如下:#include<absacc.h>#include<reg51.h>#defineDAC0832XBYTE[0xfffe]#defineucharunsignedchar#defineunitunsignedintvoidstar(void){ uchari;while(1) {for(i=0;i<=255;i++) /*形成锯齿波输出值,最大255*/{DAC0832=i} /*D/A转换输出*/}}14.3 基于MAX536的串行D/A转换器•MAX536是一款具有4路12位电压输出的D/A转换器,它包括一个16位输入/输出的移位寄存器,4个输入寄存器,4个DAC寄存器和4个输出放大器。D/A转换器采用倒T型R-2R电阻网络D/A转换器。14.3 基于MAX536的串行D/A转换器•通过对输入参考电压分压获得模拟电压输出。其中,D/A转换器A和B共享REFAB参考电压,D/A转换器C和D共享REFCD参考电压。参考电压范围为0V到VDD-4V。14.3基于MAX536的串行D/A转换器 在单片机系统中,可分为硬件部分和软件部分。其中硬件部分是整个系统的实体构成,是软件系统的平台和基础,没有硬件做支撑设计出的软件就无法调试也不能得到验证。下面就是动态显示硬件设计例子,我们给出了完整的电路图。536的内部结构536的外部引MAX536引脚功能OUTB:DACB电压输出OUTA:DACA电压输出VSS:负电压输入AGND:模拟地REFAB:DACA和B参考电压输出DGND:数字地:DAC加载输入(低电平有效,将输入寄存器内容传送到DAC寄存器)MAX536引脚功能–SDI:串行数据输入– :片选信号,低电平有效–SCK:移位寄存器输入时钟–SDO:串行数据输出–REFCD:DACC和D的参考电压输出MAX536引脚功能TP:测试引脚,正常使用时连接VDDVDD正电压输入(12~15V)OUTD:DACD电压输出OUTC:DACC电压输出14.3.2工作原理和时序•MAX536的串行接口的最高时钟为10MHz。工作期间引脚的低电平必须保持20微秒以上。它可以使用3线接口或4线接口的接口方式。在3线接口时,它的时序如下:MAX536的时序14.3.2工作原理和时◆序引脚接地或者接VDD。在为低电平期间,SDI引脚的串行输入数据由串行时钟SCLK的上升沿逐位送入移位寄存器,转换成并行数据。输入数据全部进入移位寄存器后,置为高电平,利用的上升沿执行命令字,对MAX536内部寄存器进行相应控制。14.3.3
MAX536的编程方式•MAX接收的是16位的串行数据,高位在前,低位在后。在串行数据中包括两个地址位(A1.A0),两个控制位(C1.C0)和待转换的12位数据(D11~D0)。从高到低依次排列 这16位数据从高到低依次排列为:A1,A0,C1,C0,D11,D10,D9,D8,D7,D6,D5,D4,D3,D2,D1,D0。这些命令字与引脚的状态来共同控制MAX536的转换。14.3.3
MAX536的编程方式16位串行字功能A1
A0 C1
C0D11~D0000112位数据1加载DAC
A输入寄存器,DAC输出不变010112位数据1加载DAC
B输入寄存器,DAC输出不变100112位数据1加载DAC
C输入寄存器,DAC输出不变110112位数据1加载DAC
D输入寄存器,DAC输出不变001112位数据1加载DAC
A输入寄存器,所有DAC寄存器改变011112位数据1加载DAC
B输入寄存器,所有DAC寄存器改变101112位数据1加载DAC
C输入寄存器,所有DAC寄存器改变111112位数据1加载DAC
D输入寄存器,所有DAC寄存器改变x00012位数据x从移位寄存器加载所有数据到DAC14.3.3
MAX536的编程方式14.3.3
MAX536的应用14.3.3
MAX536的应用单片机的P2.1、P2.2.P2.3分别接MAX536的 、SCK、SDI。MAX536采用3线接口方式, 引脚接数字地,转换器A、B、C.D都使用+5V的参考电压,输出电压范围为(0~5V)。单片机对MAX536的控制•本电路主要实现单片机对MAX536的控制,并使用MAX536进行D/A转换。四个通道都可以输出数据,实际应用中根据具体情况可以减少通道。主程序#include<absacc.h>#include<reg51.h>sbit
cs=p2^1//定义的控制接口sbit
sck=p2^2//定义SCK的控制接口sbit
sdi=p2^3//定义SDI的控制接口 voiddata_out(unsignedcharnumer,unsignedintvalue) //定义MAX536的输出函数,通道号和输出量 {switch(numer) //numer在实际应用中可根据情况赋值 {case1: cs=0;//置低电平,低电平有效,开启MAX536,可以输入数据•• w536(value|0x1000);//定义DACA输出,由编程方式可以知道A通道输出的数字编码是0x1000,通过“或”把命令加到输出数据中。cs=1;//置高电平,利用的上升沿执行命令字,对MAX536内部寄存器进行相应的控制。break; //程序返回 case2:cs=0;//置低电平,低电平有效,开启MAX536,可以输入数据 w536(value|0x5000);//定义DACB输出,由编程方式可以知道B通道输出的数字编码是0x5000,通过“或”把命令加到输出数据中• cs=1;//置高电平,利用的上升沿执行命令字,对MAX536内部寄存器进行相应的控制。break;case3://程序返回cs=0; //置低电平,低电平有效,开启MAX536,可以输入数据• w536(value|0x9000);//定义DACC输出,由编程方式可以知道C通道输出的数字编码是0x9000,通过“或”把命令加到输出数据中cs=1;//置高电平,利用的上升沿执行命令字,对MAX536内部寄存器进行相应的控制。break;//程序返回• case4: cs=0; //置低电平,低电平有效,开启MAX536,可以输入数据w536(value|0xD000);//定义DACD输出,编程方式可以知道D通道输出的数字编码是0xD000,通过“或”把命令加到输出数据中• cs=1;//置高电平,利用的上升沿执行命令字,对MAX536内部寄存器进行相应的控制。break; //程序返回}}子程序
void
w536(unsigned
int
indata) //indata为准备输出的数据包含了命令字{ char
n,i,j;unsigned
int
in_on;//定义数据逻辑in_on=ox0001;
//初始化数据逻辑,预备输出数据,从最低位开始输出 for(n=0;n<16;n++)据//预备输出16位数•{
sck=0;//设置SCK为低电平for(i=0,i<10;i++);
//延时
j=indata&in_on;
//使用“与”取出准备输出那一位的值•if(j==0001)//判断输出位//输出sdi=1;elsesdi=0;•//输出for(i=0,i<10;i++); //延时 sck=1; //设置SCK为高电平,在SCK的上升沿由SDI输入的一位数据进入移位寄存器。
indata=indata>>1;MAX536输入下一位数据}//数字逻辑右移,}14.4
A/D转换工作原理在单片机系统中,单片机所能处理的都是离散的数字信号。但是外部受控制的有关设备所产生的和接收的往往是模拟量。例如:温度,速度,亮度等。所以必须将外部设备产生的模拟信号转换成为数字信号才能使这些信号为单片机所识别,并在单片机中进行处理。而将模拟信号转换成为数字信号的过程我们称之为模拟/数字(A/D)转换,所使用的器件我们就称之为模拟/数字(A/D)转换器。14.4
A/D转换工作原理•A/D转换是一种将连续的模拟信号转换成适合在单片机中处理并运行的二进制数,也就是把连续信号变成离散的信号。A/D转换的工作原理如图所示14.4.1
如何选择A/DA/转D转换换器的器种类很多,性能也有很 大的不同,在A/D转换器的选择上不仅要 考虑它的性能还要考虑具体的应用要求。 下面我们来看看选择A/D转换器的一些参 考性能指标。14.4.1
如何选择A/D转换器1.A/D转换器的位数A/D转换器位数的确定,主要的考虑因素是转换的误差,位数越多所产生的误差和失真就越小 为了减低硬件的消耗减少成本在一般的系统中我们都选用中分辨率的A/D转换器,而其中以10位和11位是最合适的。14.4.1
如何选择•A2./AD/D转转换器换的转器换频率 A/D转换器从启动到结束总需要一定的时间,而每秒钟所完成的转换次数就是A/D转换器的转换频率。在确定A/D转换器的转换频率的时候还要考虑到系统的采样频率。例如:A/D转换器的转换频率为10KHz,而模拟信号一个周期的信号需要10个采样点,根据采样定理这个A/D转换器所能处理的最高频率的模拟信号仅为1KHz当然通过提高A/D转换器的转换频率可以提高处理的频率,但是由于单片机的处理速度有限所以在单片机系统中始终有一个瓶颈无法突破。14.4.1
如何选择A3./满D量程转误差换器 这个指标指的是满量程输出的时候对应的输入信号和理想输入信号的差别4.线性度 本指标指的是A/D转换器的转移函数与理想直线的最大偏移。5.采样/保持器 对于高频信号来说是必须加采样/保持器的。如果是低频信号并采用高速的A/D转换器的时候是可以不用采样/保持器的。而直流信号和变化很慢的信号也可以不使用采样/保持器。14.4.1
如何选择A6./A/DD转转换器的换量程 器部分A/D转换器提供了不同量程的引脚,必须使用正确才能保证信号尽量不失真。这样的A/D转换器不同的量程的输入电压可以从不同的引脚输入。7.偏置极性 部分A/D转换器提供了双极性偏置控制。当该引脚接地时,信号为单极性输入方式;当该引脚接基准电压时,信号为双极性输入方式。11.7
LED动态显•示2.分及析:实验 MAX7221在使用之前必须进行初始化,即设置MAX7221的显示模式、译码方式、亮度控制、扫描范围(扫描LED个数)。当采用CodeB译码方式时,我们只要向数码管0(digit0)~数码管7(digit7)送出0x0~0x7即可。14.4.2 8位A/D转换芯片ADC0809•ADC0809是8位逐次逼近型A/D转换器,带有8个模拟量输入通道,芯片内带通道地址译码锁存器,输出带三态数据锁存器,启动信号为脉冲启动方式,每一通道的转换大概需要100微秒。14.4.2 8位A/D转换芯片ADC0809•ADC0809由三个部分组成,第一个部分是输入部分,包括8位模拟开关,3条地址线的通道地址锁存器和译码器,第四条为ALE,这三个地址引脚通过编码可以用来实现8路模拟信号输入通道的选择;第二部分是转换部分,里面是一个逐次逼近型的A/D转换器;第三个部分是输出部分,该部分是一个三态输出数据锁存器,有8位数据输出最上为LSB最下为MSB。8位A/D转换芯片
ADC0809内部结构图ADC0809的外部引脚图ADC0809的引脚功√能IN0~IN8:8个模拟通道输入端。√ START:启动转换信号√ EOC:转换结束信号√ OE:输出允许信号。信号由CPU读信号和片选信号组合产生。√ CLOCK:外部时钟脉冲输入端,典型值为640KHz√ ALE:地址锁存允许信号√ A,B,C:通道地址线。CBA的8种组合状态000~111对应了8个通道的选择√ VREF(+),VREF(—):参考电压输入端√ VCC:+5V电源√ GND:地√ D0~D7:D7为最高位MSB,D0为最低位LSB。D7~D0组成8位数据输出。ADC0809的地址编码地址码选通的模拟通道C
B
A000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7ADC0809的应用•C,B,A输入的地址在ALE有效的时候被锁存。启动信号START上升沿到来时开始启动转换,EOC信号是在START下降沿到的10微秒后才变成低电平,表示转换已经结束。当单片机接收到转换结束的信号后,发送一个读的信号给OE,然后开始从ADC0809输入信号。14.3.2
ADC0809与单片机的接口14.3.2
ADC0809与单片本例机子数的据输接出端口口D7~D0接单片机的P0^7~P0^0。启动信号START由P3^0产生,ALE和START相连,即按输入的通道地址接通模拟量并启动转换。地址选通信号C,B,A分别由P2^2,P2^1,P2^0产生。输出允许信号由P3^7产生,即通过读信号使得数据从P0口直接输入单片机。转换结束信号EOC与p3^2即外部中断0相连。主程序sfr
p0=0x80;sfr
p2=0xA0;sfr
p3=0xB0;//定义P0的地址//定义P2的地址//定义P3的地址sbitad_ch=p3^2;//定义查询引脚,当0809转换结束的时候EOC为低电平sbitread=p3^7;//定义读信号sbitstar=p3^0//定义启动转换信号voidmain(void){ataticucharidataa[10];a0809(a); //启动转换并采样AD0809通道的值}voida0809(ucharidata*x) //转换函数{uchari;ucharxdata*a_adr;//设置AD0809通道0的地址//把通道地址值赋给a_adr//处理8个通道的数据//启动转换p2=0xf8;a_adr=&p2;for(i=0;i<8;i++){
star=1;*a_adr=0;i=i;i=i;i=i;//延时等待EOC变为低电平while(ad_ch==0);//查询是否转换已经结束,若转换结束则读取数据read=1; //读数据信号有效,使OE为高电平开始读取数据x[i]=*a_adr; //存储转换的结果//进入下一通道的转换#include<absacc.h>#include<reg51.h>#define
uchar
unsigned
char••••••••••••••••••••••••a_adr++;}}14.5 12位A/D转换芯片ADS7804与8位和16位的A/D转换器相比,12位A/D转换器以其较高的性能价格比而在各类系统中中得到广泛的应用。下面就以ADS7804为例子详细介绍12位A/D转换器的应用。ADS7804为12位的A/D转换器,它不仅分辨率高、转换速度快,而且接口方便,电路简单、应用灵活,因而具有广泛的应用前景。14.5.1
ADS7804的内部结构14.5.1
ADS7804的内部结构ADS7804芯片采用28脚0.3英寸PDIP(塑料双列直插式)封装,两列管脚间距为0.3英寸,比一般DIP28封装窄一倍,所以俗称瘦型DIP;ADS7804采用单5V电源供电;芯片内部含有采样保持、电压基准和时钟等电路,可极大简化用户的电路设计和硬件开锁,并可提高系统的稳定性。ADS7804采用CMOS工艺制造,转换速度快、功耗低(最大功耗为100mW)。另外ADS7804采用逐次逼近式工作原理,单通道输入,模拟输入电压的范围为±10V,采样速率为100kHz。ADS7804的外部引脚图ADS7804的引脚•功VDIG数能字电源,和模拟电源VANA通常一起接到5V电源上VANA模拟电源,和数字电源VDIG通常一起接到5V电源上DGND数字地,通常与模拟地共地AGND1.AGND2模拟地,通常与数字地共地REF为参考电压端,通常对地接2.2μF电容,芯片内部可产生2.5V基准电压。CAP为参考电压所需电容,对地接2.2μF电容VIN模拟信号输入端D11~D0为数字量并行输出口DZ(19~22脚)是为了使管脚与16位A/D转换器ADS7805兼容而设的,可悬空 片选信号,与结合在下降沿有效,并持续40ns~6μs可启动A/D转换,第二个下降沿输出数据。读取模数转换结果的控制信号转换结束信号,高电平表示转换结束,低电平表示转换进行中 BYTE控制从总线读出的数据是转换结果的高字节还是低字节。它为低电平的时候选择低字节,为高电平的时候选择高字节。14.5.2
ADS7804如何启动➢转换和首读先将取脚电转平换变低结;然果后在脚输入一个脉冲并在其下降沿启动A/D转换,此脉冲的宽度要求在40ns~6μs之间;这时BUSY脚电平拉低表示正在进行转换;在经过大约8μs以后,转换完成,BUSY脚电平相应变高;再把R/C脚电平拉高,这样,脚脉冲的下降沿即把转换结果输出到数据总线上。ADS7804启动转换和读取转换结果的时序图模拟电压和数字输出的关系模拟输入 初码形式的数字输出二进制十六进制9.99512V0111
1111
11117FF4.88mV0000
0000
00010010V0000
0000
0000000-4.88mV1111
1111
1111FFF-10V1000
0000
0000800ADS7804的输出 因为ADS7804为12位A/D转换器所以它的转换结果为12位,对8位单片机而言,就必须分两次读入,而这个功能是由BYTE引脚来实现的。当BYTE脚为高电平时,数据总线上输出高字节,当BYTE脚为低电平时,输出低字节。14.5.3
ADS7804与单片 因为A机DS7的804接的信口号脉冲宽度要求为40ns~6μs之间,而对于单片机而言,如采用12MHz的晶振,单周期指令和双周期指令分别为1μs和2μs,而一个对位操作的指令为1μs所以我们把它和单片的P2.1端口相连,而 、 和BYTE信号,则分别与P2.0,P2.2,P2.3相连ADS7804与单片机的接口电路程序分析本数据采集系统程序如下: 单点采样子程序SPS():用来返回一个有符号整数形式的转换结果。 定长采样子程序DLS():根据入口参数fixedtime(单位为μs)给定的采样间隔采样N点,并采用查询单片机内置定时器的方式来控制采样时序,N点采样结果存储在外部存储器数组array中。主程序1sfr
p2=0xA0; //定义P2的地址sbit
CS=p2^1;//定义片选地址sbit
BYTE=p2^3;//定义数据选择地址sbit
RC=P2^2;//定义读取结果地址sbit
BUSY=P2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人力 -管培生 -导师与带教手册
- 织布厂安全管理制度
- 黑水滩河水质调研问卷
- 四川省成都市成华区某校2024届高三下学期“三诊”英语试题(音频暂未更新)
- 铁粉生产项目可行性研究报告
- 异步发电机投资建设项目立项报告
- 五年级数学(小数四则混合运算)计算题专项练习及答案汇编
- 沿海耐腐蚀玻璃钢路灯杆 6米玻璃纤维监控杆 提前放电避雷针
- 春节促销运动之旅
- 年产300万件汽车空调管路视液镜项目可行性研究报告模板-立项备案
- 成长生涯发展展示
- 申报市级高技能人才培训基地申报工作汇报
- 2024年高考作文素材积累:人民日报9大主题时评
- 设立出国留学服务公司商业计划书
- 法院安保工作管理制度
- 2023年签证专员年度总结及下一年规划
- 国培教师个人成长案例3000字
- 员工素质教育课件
- 中国马克思主义与当代思考题(附答案)
- ESD静电防护检测及管控标准
- 结核病诊断-TSPOT-实验课件
评论
0/150
提交评论