您好,欢迎访问三七文档
第11章89C51单片机与D/A转换器、A/D转换器的接口非电物理量(温度、压力、流量、速度等),须经传感器转换成模拟电信号(电压或电流),必须转换成数字量,才能在单片机中处理。A/D转换器(ADC):模拟量→数字量的器件。D/A转换器(DAC):数字量→模拟量的器件。数字量,也常常需要转换为模拟信号。只需合理选用商品化的大规模ADC、DAC芯片,了解引脚及功能以及与单片机的接口设计。11.189C51与DAC的接口11.1.1D/A转换器概述1.概述输入:数字量,输出:模拟量。转换过程:送到DAC的各位二进制数按其权的大小转换为相应的模拟分量,再把各模拟分量叠加,其和就是D/A转换的结果。使用D/A转换器时,要注意区分:*D/A转换器的输出形式;*内部是否带有锁存器。(1)电压与电流输出形式两种输出形式:电压输出形式与电流输出形式。电流输出的D/A转换器,如需模拟电压输出,可在其输出端加一个I-V转换电路。(2)D/A转换器内部是否带有锁存器D/A转换需要一定时间,这段时间内输入端的数字量应稳定,为此应在数字量输入端之前设置锁存器,以提供数据锁存功能。根据芯片内是否带有锁存器,可分为内部无锁存器的和内部有锁存器的两类。*内部无锁存器的D/A转换器可与P1、P2口直接相接(因P1口和P2口的输出有锁存功能)。但与P0口相接,需增加锁存器。*内部带有锁存器的D/A转换器内部不但有锁存器,还包括地址译码电路,有的还有双重或多重的数据缓冲电路,可与89C51的P0口直接相接。2.主要技术指标(1)分辨率输入给DAC的单位数字量变化引起的模拟量输出的变化,通常定义为输出满刻度值与2n之比。显然,二进制位数越多,分辨率越高。例如,若满量程为10V,根据定义则分辨率为10V/2n。设8位D/A转换,即n=8,分辨率为10V/2n=39.1mV,该值占满量程的0.391%,用1LSB表示。同理:10位D/A:1LSB=9.77mV=0.1%满量程12位D/A:1LSB=2.44mV=0.024%满量程根据对DAC分辨率的需要,来选定DAC的位数。(2)建立时间描述DAC转换快慢的参数,表明转换速度。定义:为从输入数字量到输出达到终值误差(1/2)LSB(最低有效位)时所需的时间。电流输出时间较短,电压输出再加上I-V转换时间,因此建立时间要长一些。快速DAC可达1s以下。(3)精度理想情况,精度与分辨率基本一致,位数越多精度越高。但由于电源电压、参考电压、电阻等各种因素存在着误差,精度与分辨率并不完全一致。位数相同,分辨率则相同,但相同位数的不同转换器精度会有所不同。例如,某型号的8位DAC精度为0.19%,另一型号的8位DAC精度为0.05%。11.1.289C51与8位DAC0832的接口1.DAC0832芯片介绍(1)DAC0832的特性美国国家半导体公司产品,具有两个输入数据寄存器的8位DAC,能直接与89C51单片机相连。主要特性如下:*分辨率为8位;*电流输出,稳定时间为1s;*可双缓冲输入、单缓冲输入或直接数字输入;*单一电源供电(+5~+15V);(2)DAC0832的引脚及逻辑结构引脚:图11-1DAC0832的逻辑结构:图11-2引脚功能:DI0~DI7:8位数字信号输入端CS*:片选端。ILE:数据锁存允许控制端,高电平有效。WR1*:输入寄存器写选通控制端。当CS*=0、ILE=1、WR1*=0时,数据信号被锁存在输入寄存器中。XFER*:数据传送控制。WR2*:DAC寄存器写选通控制端。当XFER*=0,WR2*=0时,输入寄存器状态传入DAC寄存器中。IOUT1:电流输出1端,输入数字量全“1”时,IOUT1最大,输入数字量全为“0”时,IOUT1最小。IOUT2:D/A转换器电流输出2端,IOUT2+IOUT1=常数。Rfb:外部反馈信号输入端,内部已有反馈电阻Rfb,根据需要也可外接反馈电阻。Vcc:电源输入端,可在+5V~+15V范围内。DGND:数字信号地。AGND:模拟信号地。“8位输入寄存器”用于存放CPU送来的数字量,使输入数字量得到缓冲和锁存,由LE1*控制;“8位DAC寄存器”存放待转换的数字量,由LE2*控制;“8位D/A转换电路”由T型电阻网络和电子开关组成,T型电阻网络输出和数字量成正比的模拟电流。2.DAC的的单、双极性的电压输出接口电路与DAC的具体应用有关。(1)DAC用作单极性电压输出单极性模拟电压输出,可采用图11-4或图11-8所示接线。输出电压Vout与输入数字量B的关系:Vout=-(B/256)*VRFE式中,B=b7·27+b6·26+……+b1·21+b0·20;B为0时,Vout也为0,输入数字量为255时,Vout为最大值,单极性。(2)DAC用作双极性电压输出双极性电压输出,采用图11-3接线:Vout=(B-128)*(VREF/128)由上式,在选用+VREF时,(1)若输入数字量b7=1,则Vout为正;(2)若输入数字量b7=0,则Vout为负。在选用-VREF时,Vout与+VREF时极性相反。图11-33.89C51与DAC0832的接口电路(1)单缓冲方式DAC0832的两个数据缓冲器有一个处于直通方式,另一个处于受控的锁存方式。在不要求多路输出同步的情况下,可采用单缓冲方式。单缓冲方式的接口如图11-4:图11-4图11-4中,WR2*和XFER*接地,故DAC0832的“8位DAC寄存器”(见图11-2)处于直通方式。“8位输入寄存器”受CS*和WR1*端控制,且由译码器输出端FEH送来(也可由P2口的某一根口线来控制)。因此,89C51执行如下两条指令就可在WR1*和CS*上产生低电平信号,使0832接收89C51送来的数字量。MOVR0,#0FEH;DAC地址FEH→R0MOVX@R0,A;WR*和译码器FEH输出端有效现说明DAC0832单缓冲方式的应用。例11-1DAC0832用作波形发生器。试根据图11-4,分别写出产生锯齿波、三角波和矩形波的程序。①锯齿波的产生ORG2000HSTART:MOVR0,#0FEH;DAC地址FEH→R0MOVA,#00H;数字量→ALOOP:MOVX@R0,A;数字量→D/A转换器INCA;数字量逐次加1SJMPLOOP图11-5输入数字量从0开始,逐次加1,为FFH时,加1则清0,模拟输出又为0,然后又循环,输出锯齿波,如图11-5。每一上升斜边分256个小台阶,每个小台阶暂留时间为执行后三条指令所需要的时间。②三角波的产生ORG2000HSTART:MOVR0,#0FEHMOVA,#00HUP:MOVX@R0,A;三角波上升边INCAJNZUPDOWN:DECA;A=0时再减1又为FFHMOVX@R0,AJNZDOWN;三角波下降边SJMPUP③矩形波的产生ORG2000HSTART:MOVR0,#0FEHLOOP:MOVA,#data1MOVX@R0,A;置矩形波上限电平LCALLDELAY1;调用高电平延时程序MOVA,#data2图11-6MOVX@R0,A;置矩形波下限电平LCALLDELAY2;调用低电平延时程序SJMPLOOP;重复进行下一个周期DELAY1、DELAY2为两个延时程序,决定矩形波高、低电平时的持续时间。频率也可采用延时长短来改变。图11-7(2)双缓冲方式多路同步输出,必须采用双缓冲同步方式。接口电路如图11-8:1#DAC0832因和译码器FDH相连,占有两个端口地址FDH和FFH。2#DAC0832的两个端口地址为FEH和FFH。其中,FDH和FEH分别为1#和2#DAC0832的数字量输入控制端口地址,而FFH为启动D/A转换的端口地址。图11-8中DAC输出的VX和VY信号要同步,控制X-Y绘图仪绘制的曲线光滑,否则绘制的曲线是阶梯状。控制程序如下:图11-8例11-2内部RAM中两个长度为20的数据块,起始地址为分别为addr1和addr2,编写能把addr1和addrr2中数据从1#和2#DAC0832同步输出的程序。addr1和addr2中的数据,为绘制曲线的X、Y坐标点。DAC0832各端口地址:FDH:1#DAC0832数字量输入控制端口FEH:2#DAC0832数字量输入控制端口FFH:1#和2#DAC0832启动D/A转换端口工作寄存器0区的R1指向addr1;1区的R1指向addr2;0区的R2存放数据块长度;0区和1区的R0指向DAC端口地址。程序为:ORG2000Haddr1DATA20H;定义存储单元addr2DATA40H;定义存储单元DTOUT:MOVR1,#addr;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区R1INCR0;1区R0指向DAC的启动D/A转换端口MOVX@R0,A;启动DAC进行转换CLRRS0;返回0区DJNZR2,NEXT;若未完,则跳NEXTLJMPDTOUT;若送完,则循环END11.1.389C51与12位电压输出型D/A转换器AD667的接口8位DAC分辨率不够,可采用10位、12位、14位、16位的DAC。本节介绍89C51与12位电压输出型的D/A转换器AD667的接口设计。AD667是分辨率为12位的电压输出型D/A转换器,建立时间≤3s(至0.01%)。输入方式:双缓冲输入;输出方式:电压输出,通过硬件编程可输出+5V,+10V,±2.5V,±5V和±10V;内含高稳定的基准电压源可方便地与4位、8位或16位微处理器接口;双电源工作电压:±12V~±15V。1.引脚介绍标准28脚双列直插式。图11-9为DIP封装引脚图,表11-1为其引脚说明。(1)内部功能结构及应用特性图11-10是AD667内部功能结构框图。AD667的应用特性:①模拟电压输出范围的配置AD667通过片外引脚的不同连接,可获得不同的输出电压量程范围。单极性工作时,可以获得0~5V和0~10V的电压。双极性工作时,可获得±2.5V,±5.5V和±10V的电压。具体量程配置可由引脚1,2,3,9的不同连接实现,如表11-2所列。图11-9图11-10由于AD667内置的量程电阻与其他元器件具有热跟踪性能,所以AD667的增益和偏置漂移非常小。②单极性电压输出图11-11为0~10V单极性电压输出电路原理图。在电路运行之前,为保证转换精度,首先要进行电路调零和增益调节。电路调零数字输入量全为“0”时,调节50k电位器W1,使其模拟电压输出端(VOUT)电压为0.000V。在大多数情况下,并不需要调零,只要把4脚与5脚相连(接地)即可。增益调节数字输入量全为“1”时,调节100电位器W2,使其模拟电压输出为9.9976V,即满量程的10.000V减去1LSB(约为2.44mV)所对应的模拟输出量。图11-11③双极性电压输出图11-12是-5V~+5V双极性电压输出。在电路运行之前,为保证转换精度,首先要进行偏置调节和增益调节。图11-12④内部/外部基准电压源的使用AD667有内置低噪声基准电源,其绝对精度和温度系数都是通过激光修正的,具有长期的稳定性。片内基准电源可提供片内D/A转换器所需的基准电流,典型值为VREFIN端提供的0.5mA,BPOFF(BipolarOffset)端提供的1.0mA。⑤接地与动态电容的接法模拟地AGND与电源地PGND分开
本文标题:单片机第11章
链接地址:https://www.777doc.com/doc-5339934 .html