第11章89C51单片机与DA、AD转换器的接口

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

单片机与D/A、A/D转换器的接口单片机用于智能仪表和测控系统时,要与各种各样的外界信号打交道:单片机的驱动控制设备{模拟设备:电动调节阀、模拟记录仪数字设备:数字显示仪表、继电器触点由于单片机的输入和输出信号只能是数字量,因此在由单片机构成的测控系统中经常要用到模/数转换和数/模转换接口。{模拟信号:如被控对象的温度、压力等开关信号:如指拨开关和按键开关单片机的输入信号图单片机和被控对象间的接口示意图【例】电梯载荷监测提示系统。载荷监测提示系统利用A/D转换器将采集到的模拟的重量值转换成相应的数字量,由单片机完成对重量值的分析比较,得出超载或不超载的结果,并在超载时发出控制信号,启动声音提示模块发出超载提示。一、单片机与DAC的接口D/A转换器概述典型芯片DAC0832DAC0832的应用与AD667接口设计1、D/A转换器概述单片机控制对象D/A转换将数字量转换为模拟量,以便操纵控制对象。*D/A转换器的输出形式;*内部是否带有锁存器。使用D/A转换器时,要注意区分:D/A转换器集成电路芯片种类很多:按输入的二进制数的位数分类,有八位、十位、十二位和十六位等。按输出是电流还是电压分类,分为电压输出器件和电流输出器件。D/A转换器的主要指标分辨率输入给DAC的单位数字量变化引起的模拟量输出的变化,通常定义为输出满刻度值与2n之比。显然,二进制位数越多,分辨率越高。建立时间也称稳定时间,它是指从数字量输入到建立稳定的输出电流的时间,是描述D/A转换速率的一个重要参数精度理想情况,精度与分辨率基本一致,位数越多精度越高。但由于电源电压、参考电压、电阻等各种因素存在着误差,精度与分辨率并不完全一致。当送一个确定的数字量给DAC后,它的实际输出值与该数值应产生的理想输出值之间会有一定的误差,它就是D/A转换器的精度。引脚:2、典型芯片-DAC0832介绍主要特性:•分辨率为8位;•电流输出,稳定时间为1s;•可双缓冲输入、单缓冲输入或直接数字输入;•单一电源供电(+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时,打开该寄存器WFER=0,WR2=0,打开该寄存器(1)单缓冲方式DAC0832的两个数据缓冲器有一个处于直通方式,另一个处于受控的锁存方式。在不要求多路输出同步的情况下,可采用单缓冲方式。3、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;三角波下降边SJMPUP(2)双缓冲方式输入寄存器和DAC寄存器分配有各自的地址,可分别选通。用同时输出多路模拟信号。多路同步输出,必须采用双缓冲同步方式。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;若送完,则循环END4、DAC0832的单、双极性的电压输出(1)DAC用作单极性电压输出(2)DAC用作双极性电压输出REFo(128)128VvB5、与AD667接口设计AD667是分辨率为12位的电压输出型D/A转换器,建立时间≤3s(至0.01%)。输入方式:双缓冲输入;输出方式:电压输出,通过硬件编程可输出+5V,+10V,±2.5V,±5V和±10V;内含高稳定的基准电压源,可方便地与4位、8位或16位微处理器接口;双电源工作电压:±12V~±15V。二、A/D转换器接口A/D转换器的概述典型芯片ADC0809ADC0809的应用与AD1674的接口设计与MC14433的接口设计1、A/D转换器的概述将模拟量转换为数字量,以便计算机接收处理传感器单片机A/D转换A/D转换器的分类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~100s左右。高速:转换时间仅20~100ns。(3)是否加采样保持器直流和变化非常缓慢的信号可不用采样保持器。其他情况都要加采样保持器。(4)工作电压和基准电压选择使用单一+5V工作电压的芯片,与单片机系统共用一个电源就比较方便。在要求较高精度时,基准电压要单独用高精度稳压电源供给。2、典型芯片—ADC0809介绍ADC0809是一个8位8通道的AD转换器。ADC0809功能分析CLK:时钟信号,可由单片机ALE信号分频得到。转换有以下几步:1.ALE信号上升沿有效,锁存地址并选中相应通道。2.ST信号有效,开始转换。A/D转换期间ST为低电平。3.EOC信号输出高电平,表示转换结束。4.OE信号有效,允许输出转换结果。3、ADC0809的应用写信号、P2.0有效时,启动AD转换。转换结束后,输出高电平,向CPU发出中断请求读信号、P2.0有效时,允许输出AD转换结果。转换时钟由ALE分频得到。803174LS373ADC0809÷2CLKD0-D7≥1≥1111GEOCSTALEOERDP2.0WRINT1ALEP0A0-A7A0A1A2ABCVR(+)VR(-)+5VGNDIN0IN7IN6IN5IN4IN3IN2IN1转换结果由此输出通道选择表选择的通道000001010011100101110111IN0IN1IN2IN3IN4IN5IN6IN7CBA8031A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A00809×××××××ST×××××CBA×××××××0×××××000……×××××××0×××××111(1)首先分析各个通道的地址。(IN0到IN7的地址为0000H到0007H)(2)编程:可采用中断、查询两种方式。中断方式:ORG0000H;主程序入口地址AJMPMAIN;跳转主程序ORGOO13H;中断入口地址AJMPINT1;跳转中断服务程序MAIN:SETBIT1;边沿触发SETBEA;开中断SETBEX1;允许中断MOVDPTR,#0007H;指向0809IN7通道地址MOVX@DPTR,A;启动A/D转换SJMP$;等待中断INT1:MOVXA,@DPTR;读A/D转换结果MOVB,A;存数RETI;返回查询方式:ORG0000H;主程序入口地址AJMPMAIN;跳转主程序ORG1000H;中断入口地址MAIN:MOVDPTR,#0007H;指向0809IN7通道地址MOVX@DPTR,A;启动A/D转换L1:JBP3.3L1;查询MOVXA,@DPTR;读A/D转换结果MOVB,A;存数SJMP$4、与AD1674的接口设计12位逐次比较型。转换时间为10s,带有采样保持器,可直接与各种典型的8位或16位的单片机相连片内集成又高精度的参考电压源和时钟电路,不需外加任何电路和时钟信号的情况下完成AD转换,使用方便5、与MC14433的接口设计双积分型由于两次积分时间比较长,所以转换速度慢,但精度可以做得比较高;对周期变化的干扰信号积分为零,抗干扰性能也较好。常用的有3½位双积分A/D转换器MC14433(精度相当于11位二进制数)和4½位双积分A/D转换器ICL7135(精度相当于14位二进制数)。MC14433被转换电压量程为199.9mV或1.999VMC14433A/D转换器引脚R1:积分电阻输入端C1:积分电容输入端R1/C1

1 / 45
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功