您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 第11章89C51单片机与DA、AD转换器的接口
单片机与D/A、A/D转换器的接口单片机用于智能仪表和测控系统时,要与各种各样的外界信号打交道:单片机的驱动控制设备{模拟设备:电动调节阀、模拟记录仪数字设备:数字显示仪表、继电器触点由于单片机的输入和输出信号只能是数字量,因此在由单片机构成的测控系统中经常要用到模/数转换和数/模转换接口。{模拟信号:如被控对象的温度、压力等开关信号:如指拨开关和按键开关单片机的输入信号数字信号模拟信号现场信号1现场信号2现场信号n放大器放大器放大器多路开关低通滤波传感器低通滤波传感器低通滤波传感器A/D转换器采样保持器数字信号受控对象控制信号模拟信号D/A转换器放大驱动电路…I/0接口放大器把传感器输出的信号放大到ADC所需的量程范围多路开关把多个现场信号分时地接通到A/D转换器低通滤波器用于降低噪声、滤去高频干扰,以增加信噪比采样保持器周期性地采样连续信号,并在A/D转换期间保持不变传感器将各种现场的物理量测量出来并转换成电信号(模拟电压或电流)I/0接口多路开关【例】电梯载荷监测提示系统。载荷监测提示系统利用A/D转换器将采集到的模拟的重量值转换成相应的数字量,由单片机完成对重量值的分析比较,得出超载或不超载的结果,并在超载时发出控制信号,启动声音提示模块发出超载提示。一、单片机与DAC的接口D/A转换器概述典型芯片DAC0832DAC0832的应用与AD667接口设计1、D/A转换器概述单片机控制对象D/A转换将数字量转换为模拟量,以便操纵控制对象。*D/A转换器的输出形式(电压、电流);*内部是否带有锁存器。使用D/A转换器时,要注意区分:D/A转换器集成电路芯片种类很多:按输入的二进制数的位数分类,有八位、十位、十二位和十六位等。按输出是电流还是电压分类,分为电压输出器件和电流输出器件。D/A转换器与单片机接口形式:早期多采用并行接口,现在带有串行口的DA转换器品种越来越多。D/A转换器的主要指标分辨率输入给DAC的单位数字量变化引起的模拟量输出的变化,通常定义为输出满刻度值与2n之比。显然,二进制位数越多,分辨率越高。建立时间也称稳定时间,它是指从数字量输入到建立稳定的输出电流的时间,是描述D/A转换速率的一个重要参数电流输出的转换时间较短,电压输出的转换时间较长精度理想情况,精度与分辨率基本一致,位数越多精度越高。但由于电源电压、参考电压、电阻等各种因素存在着误差,精度与分辨率并不完全一致。当送一个确定的数字量给DAC后,它的实际输出值与该数值应产生的理想输出值之间会有一定的误差,它就是D/A转换器的精度。引脚:2、典型芯片-DAC0832介绍主要特性:•分辨率为8位;•电流输出,稳定时间为1s;•可双缓冲输入、单缓冲输入或直接数字输入;•单一电源供电(+5~+15V);•低功耗,20mW•DI7~DI0:8位的数据输入端,DI7为最高位。•CS:片选端•AGND:模拟信号地•DGND:数字信号地。•Vcc:电源输入端,可在+5V~+15V范围内。•VREF:参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定0至255的数字量转化出来的模拟量电压值的幅度,VREF范围为(+10~-10)V。•Rfb:外部反馈信号输入端,内部已有反馈电阻Rfb,根据需要也可外接反馈电阻。ILE:数据锁存允许控制端,高电平有效。WR1:输入寄存器写选通控制端。当CS=0、ILE=1、WR1=0时,数据信号被锁存在输入寄存器中。WR2:DAC寄存器写选通控制端。当XFER=0,WR2=0时,输入寄存器状态传入DAC寄存器中。XFER:数据传送控制。IOUT1:电流输出1端,输入数字量全“1”时,IOUT1最大,输入数字量全为“0”时,IOUT1最小。IOUT2:D/A转换器电流输出2端,IOUT2+IOUT1=常数。逻辑结构CS=0,ILE=1,WR1=0时,打开该寄存器XFER=0,WR2=0,打开该寄存器电流输出,因此需外接I-V的运算放大器电路,才能得到模拟输出电压3、DAC0832的单、双极性的电压输出(1)DAC用作单极性电压输出式中,B=b7·27+b6·26+……+b1·21+b0·20;当B为0时,Vout也为0,输入数字量为255时,Vout为最大值,单极性。(2)DAC用作双极性电压输出REFo(128)128VvB(1)若输入数字量b7=1,则Vout为正;(2)若输入数字量b7=0,则Vout为负。在选用-VREF时,Vout与+VREF时极性相反。(1)单缓冲方式DAC0832的两个数据缓冲器有一个处于直通方式,另一个处于受控的锁存方式。在不要求多路输出同步的情况下,可采用单缓冲方式。4、DAC0832的应用例11-1DAC0832用作波形发生器。分别写出产生锯齿波、三角波和矩形波的程序。①锯齿波的产生ORG0000HSTART:MOVR0,#0FEH;DAC地址MOVA,#00H;数字量LOOP:MOVX@R0,A;数字量→D/A转换器INCA;数字量逐次加SJMPLOOP1/282/283/28254/28255/280产生的锯齿波的过程②三角波的产生ORG0000HSTART:MOVR0,#0FEHMOVA,#00HUP:MOVX@R0,A;三角波上升边INCAJNZUPDOWN:DECA;A=0时再减1又为FFHMOVX@R0,AJNZDOWN;三角波下降边SJMPUPEA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U18051VCC3261574U3741-12V+12VAGND3261574U4741+12V-12VR35.1kΩR410kΩAGND+5VVCC+5VR110kΩVCCUoUo+5V-5VVCC20Iout111DI07Iout212DI16DI25Rfb9DI34DI416Vref8DI515DI614DI713ILE19WR218CS1WR12Xfer17AGND3U2DAC0832DAC0832的地址为多少?产生锯齿波程序:MOVDPTR,#7FFFH;指向0832地址MOVR0,#00H;置转换数字初值DA1:MOVA,R0MOVX@DPTR,A;启动转换INCR0;转换数字量加1ACALLDELAY;延时AJMPDA1DELAY:MOVR7,#7DH;延时子程序DL1:NOPNOPDJNZR7,DL1RET(2)双缓冲方式输入寄存器和DAC寄存器分配有各自的地址,可分别选通。用同时输出多路模拟信号。CS=0,ILE=1,WR1=0时,打开该寄存器WFER=0,WR2=0,打开该寄存器多路同步输出,必须采用双缓冲同步方式。1#DAC0832占有两个端口地址FDH和FBH。2#DAC0832的两个端口地址为FEH和FBH例11-2设AT89C51单片机内部RAM中有两个长度为20的数据块,其起始地址为分别为addr1和addr2,请根据图11-7所示,编写能把addr1和addrr2中数据从1#和2#DAC0832同步输出的程序。程序中addr1和addr2中的数据,即为绘图仪所绘制曲线的x、y坐标点。工作寄存器0区的R1指向addr1;1区的R1指向addr2;0区的R2存放数据块长度;0区和1区的R0指向DAC端口地址。ORG2000Haddr1DATA20H;定义存储单元addr2DATA40H;定义存储单元DTOUT:MOVR1,#addr1;0区R1指向addr1MOVR2,#20;数据块长度送0区R2SETBRS0;切换到工作寄存器1区MOVR1,#addr2;1区R1指向addr2CLRRS0;返回0区NEXT:MOVR0,#0FDH;0区R0指向1#DAC0832数字量控制端口MOVA,@R1;addr1中数据送AMOVX@RO,A;addr1中数据送1#DAC0832INCR1;修改addr1指针0区R1SETBRS0;转1区。MOVR0,#0FEH;1区R0指向2#DAC0832数字量控制端口MOVA,@R1;addr2中数据送AMOVX@R0,A;addr2中数据送2#DAC0832INCR1;修改addr2指针1区R1MOVR0,#0FBH;1区R0指向DAC的启动D/A转换端口MOVX@R0,A;启动DAC进行转换CLRRS0;返回0区DJNZR2,NEXT;若未完,则跳NEXTLJMPDTOUT;若送完,则循环END5、与AD667接口设计AD667是分辨率为12位的电压输出型D/A转换器,建立时间≤3s(至0.01%)。输入方式:双缓冲输入;输出方式:电压输出,通过硬件编程可输出+5V,+10V,±2.5V,±5V和±10V;内含高稳定的基准电压源,可方便地与4位、8位或16位微处理器接口;双电源工作电压:±12V~±15V。二、A/D转换器接口A/D转换器的概述典型芯片ADC0809ADC0809的应用与AD1674的接口设计与MC14433的接口设计1、A/D转换器的概述将模拟量转换为数字量,以便计算机接收处理传感器单片机A/D转换A/D转换器的分类•△∑ADC由一个△∑调制器以及后序的数字抽样滤波器组成。•调制器由一个带DAC的反馈回路纽成,回路中包括了一个比较器及一个积分器。A/D转换器的主要技术指标(1)转换时间和转换速率完成一次转换所需要的时间。转换时间的倒数为转换速率。双积分ADC的转换时间在几十毫秒至几百毫秒之间;逐次比较型ADC的转换时间大都在10~50μs之间;并行比较型ADC的转换时间可达10ns。(2)分辨率数字量变化一个最小量时模拟信号的变化量,定义为满刻与2n的比值。例如,输入模拟电压满量程为10V,若用8位ADC转换时,其分辨率为10V/28=39mV,10位的ADC是9.76mV,而12位的ADC为2.44mV。以输出二进制的位数表示分辨率,位数越多,误差越小,转换精度越高。(3)量化误差ADC把模拟量变为数字量,用数字量近似表示模拟量,这个过程称为量化。量化误差是ADC的有限位数对模拟量进行量化而引起的误差。数字输出模拟电压输入0000010020030040050060071LSB数字输出模拟电压输入0000010020030040050060071/2LSB(4)转换精度定义为一个实际ADC与一个理想ADC在量化值上的差值。可用绝对误差或相对误差表示。A/D转换器的选择(1)A/D转换器位数的确定系统总精度涉及的环节较多:传感器变换精度、信号预处理电路精度和A/D转换器及输出电路、控制机构精度,还包括软件控制算法。A/D转换器的位数至少要比系统总精度要求的最低分辨率高1位,位数应与其他环节所能达到的精度相适应。只要不低于它们就行,太高无意义,且价高。8位以下:低分辨率,9~12位:中分辨率,13位以上:高分辨率。(2)A/D转换器转换速率的确定从启动转换到转换结束,输出稳定的数字量,需要一定的时间,这就是A/D转换器的转换时间。低速:转换时间从几ms到几十ms。中速:逐次比较型的A/D转换器的转换时间可从几s~100s左右。高速:转换时间仅20~100ns。(3)是否加采样保持器直流和变化非常缓慢的信号可不用采样保持器。其他情况都要加采样保持器。(4)工作电压和基准电压选择使用单一+5V工作电压的芯片,与单片机系统共用一个电源就比较方便。在要求较高精度时,基准电压要单独用高精度稳压电源供给。2、典型芯片—ADC0809介绍ADC0809是一个8位8通道的AD转换器。ADC0809功能分析CLK:时钟信号,可由单片机ALE信号分频得到。转换有以下几步:1.ALE信号上升沿有效,锁存地址并选中相应通道。2.S
本文标题:第11章89C51单片机与DA、AD转换器的接口
链接地址:https://www.777doc.com/doc-3390879 .html