单片机原理与应用实验信通学院D/A转换器接口及应用D/A转换概述一、D/A(DigittoAnalog)转换器:为把数字量转换成模拟量,在D/A转换芯片中要有解码网络:①权电阻网络;②倒T型电阻网络。T型电阻网络型D/A转换器:D/A转换器的原理:把输入数字量中每位都按其权值分别转换成模拟量,并通过运算放大器求和相加。根据克希荷夫定律,如下关系成立:I0=20I1=21I2=22I3=23n位数字量与模拟量的关系式:VO=—VREF×(数字码/2n)(VREF——参考电压)二、D/A输出形式:①电压;②电流运算放大器电压。注:因使用反相比例放大器来实现电流到电压的转换,所以输出模拟信号(VO)的极性与参考电压(VREF)极性相反。三、注意区分D/A内部是否带有锁存器:与P1、P2接口:不需加锁存器,直接接口。无锁存器与P0接口:因P0的特殊功能,需加锁存器。D/A内如:DAC800、AD7520、AD7521等。有锁存器:最好与P0直接接口。如:DAC0832、DAC1230等。四、性能指标:1、分辨率(Resolution)是指D/A转换器能分辨的最小输出模拟增量,取决于输入数字量的二进制位数。2、建立时间(EstablishingTime)是描述D/A转换速度的快慢。3、转换精度(ConversionAccuracy)指满量程时DAC的实际模拟输出值和理论值的接近程度。4、偏移量误差(OffsetError)偏移量误差是指输入数字量为零时,输出模拟量对零的偏移值。5、线性度(Linearity)线性度是指DAC的实际转换特性曲线和理想直线之间的最大偏移差。主要技术指标:1、分辨率(Resolution):对D/A转换器输入量变化敏感程度进行描述,与输入数字量的位数有关。若数字量的位数为n,则分辨率为2-n。数字量位数越多,分辨率就越高。应用时,应根据分辨率的需要选定转换器的位数。注:BCD码输出的A/D转换器用位数表示分辨率。2、建立时间(EstablishingTime):(转换速度)描述D/A转换速度的快慢。输出形式为电流的转换器比电压的建立时间短。D/A转换速度远高于A/D转换。3、转换精度(ConversionAccuracy):指满量程时DAC的实际模拟输出值和理论值的接近程度。一、内部结构:DAC0832:8位双缓冲器结构的D/A转换器。D/A转换芯片DAC0832DAC0832内部结构框图(请见P242图9.3)DI0~7:转换数据输入(8位);CS:片选信号(输入);ILE:数据锁存允许信号(输入);XFER:数据传送控制信号(输入);WR1:第一写信号(输入),与ILE共同控制输入寄存器是数据直通方式还是数据锁存方式;WR2:第2写信号(输入),与XFER共同控制DAC寄存器是数据直通方式还是数据锁存方式;8位DACDAC寄存器输入寄存器-+IOUT2IOUT1RfbVODI0~7AGNDILECS与与与WR1WR2XFERLE1LE2LE1(LE2)=0:锁存;1:直通。DAC的应用:lDAC用作单极性电压输出;lDAC用作双极性电压输出;lDAC用作控制放大器。双极性输出电压与输入数字量的关系输入数字量Bb7b6b5b4b3b2b1b0Vout(理想值)+VREF时-VREF时11111111|VREF|-LSB-|VREF|+LSB┆┆┆11000000|VREF|/2-|VREF|/2┆┆┆1000000000┆┆┆01111111-LSBLSB┆┆┆00111111-|VREF|/2-LSB|VREF|/2+LSB┆┆┆00000000-|VREF||VREF|双极性DAC的接法:双极性DAC的另一种接法:控制放大器用DAC0832:二、DAC0832与单片机的接口:有3种工作方法:直通方式、单缓冲方式和双缓冲方式。1、直通方式:输入寄存器和DAC寄存器共用一个地址,同时选通输出;WR1和WR2同时进行,并且不与CPU相接。特点:转换速度快。80C51CSDAC0832WR1P1XFER8WR2D7~0+-VOMOVP1,A举例:例:D/A转换程序,用DAC0832输出0~+5V锯齿波,电路为直通方式。设VREF=-5V,若DAC0832地址为00FEH,脉冲周期要求为100ms。100msDACS:MOVDPTR,#00FEH;0832I/O地址MOVA,#00H;开始输出0VDACL:MOVX@DPTR,A;D/A转换INCA;升压ACALLDELAY;延时100ms/256:决定锯齿波的周期AJMPDACL;连续输出DELAY:…;延时子程序阶梯波形图START:MOVA,#00H;MOVDPTR,#7FFFH;0832的地址送DPTRMOVR1,#0AH;台阶数为10LP:MOVX@DPTR,A;送数据至0832CALLDELAY;1msDJN2R1,NEXT;不到10SJMPSTRT;NEXT:ADDA,#10;SJMPLP;DELAY:MOV20H,#249;1msAGAIN:NOPNOPDJNZ20H,AGAIN2、单缓冲方式:输入寄存器和DAC寄存器共用一个地址,同时选通输出,输入数据在控制信号作用下,直接进入DAC寄存器中;WR1和WR2同时进行,并且与CPU的WR相连,CPU对0832执行一次写操作,将数据直接写入DAC寄存器中。适用:只有一路模拟信号输出或几路模拟信号非同步输出。80C51CSDAC0832WR1P1XFERWR2D7~0+-VO74LS373P0WRALE80C51GA7~0A08单缓冲方式下的DAC083280C51举例:例:D/A转换程序,用DAC0832输出0~+5V三角波,电路为单缓冲方式。设VREF=-5V,若DAC0832地址为00FEH,脉冲周期要求为(100ms)。100msORG2000HSTAR:MOVDPTR,#00FEH;DAC0832地址MOVA,#00H;开始输出0VUP:MOVX@DPTR,A;D/A转换INCA;产生上升段电压JNZUP;上升到A中为FFH(A≠0跳)DOWN:DECA;产生下降段电压MOVX@DPTR,AJNZDOWN;下降到A中为00HSJMPUP;重复注:若想改变波形的周期(频率),只需在SJMPUP前插入延时程序即可。C51程序:#includeabsacc.h#includereg51.h#defineDAC0832XBYTE[0x00FE]#defineucharunsignedchar#defineunitunsignedintvoidstair(void){uchari;while(1){for(i=0;i=255;i=i++)/*形成锯齿波输出值,最大255*/{DAC0832=i;/*D/A转换输出*/}}}3、双缓冲器方式:输入寄存器和DAC寄存器分配有各自的地址,可分别选通用同时输出多路模拟信号。适用:同时输出几路模拟信号的场合,可构成多个0832同步输出电路。80C51CSDAC0832WR1P1XFERWR2D7~0+-VO74LS3738P0WRALE80C51GA7~0A0CSDAC0832WR1XFERWR2D7~0+-VOA1A2A11#2#XY图形显示器A2举例:例:用DAC0832实现驱动绘图仪,电路为双缓冲方式。1#和2#DAC0832地址分别为00FEH和00FDH。则绘图仪的驱动程序为:ORG2000HMOVDPTR,#00FEH;选中1#0832(的输入寄存器):A0=0MOVA,#DataxMOVX@DPTR,A;Datax写入1#0832输入寄存器MOVDPTR,#00FDH;选中2#0832(的输入寄存器):A1=0MOVA,#DatayMOVX@DPTR,A;Datay写入2#0832输入寄存器MOVDPTR,#00FBH;选中1#和2#0832的DAC寄存器:A2=0MOVX@DPTR,A;1#和2#输入寄存器的内容同时传送到DAC寄存器中C51程序:#includeabsacc.h#includereg51.h#defineINPUTR1XBYTE[0x00FE]#defineINPUTR2XBYTE[0x00FD]#defineDACRXBYTE[0x00FB]#defineucharunsignedcharvoiddac2b(data1,data2)uchardata1,data2;{INPUTR1=data1;/*数据送到一片DAC0832*/INPUTR2=data2;/*数据送到另一片DAC0832*/DACR=0;/*启动两路D/A同时转换*/}一、实验目的二、实验说明三、实验仪器四、实验内容六、实验报告要求第五次实验单片机DA输出实验五、思考题一、实验目的1、了解D/A转换的基本原理。2、了解D/A转换芯片0832的性能及编程方法。3、了解单片机系统中扩展D/A转换的基本方法。二、实验说明1、利用DAC0832,编制程序产生锯齿波、三角波、正弦波。三种波轮流显示,用示波器观看。三、实验仪器和条件•计算机•伟福实验箱(lab2000P)•示波器四、实验内容1、D/A转换是把数字量转换成模拟量的变换,实验台上D/A电路输出的是模拟电压信号。要实现实验要求,比较简单的方法是产生三个波形的表格,然后通过查表来实现波形显示。2、产生锯齿波和三角波的表格只需由数字量的增减来控制,同时要注意三角波要分段来产生。要产生正弦波,较简单的方法是造一张正弦数字量表。即查函数表得到的值转换成十六进制数填表。D/A转换取值范围为一个周期,采样点越多,精度越高些。本例采用的采样点为256点/周期。3、8位D/A转换器的输入数据与输出电压的关系为U(0∽-5V)=Uref/256×NU(-5V∽+5V)=2·Uref/256×N-5V(这里Uref为+5V)程序参考流程框图实验电路及连线参考源程序CS0832equ0a000hmovdptr,#CS0832mova,#0movx@dptr,amova,#40hmovx@dptr,amova,#80hmovx@dptr,amova,#0c0hmovx@dptr,amova,#0ffhmovx@dptr,aljmp$end五、思考题1、改变输出波形的周期和幅度,缩小或者提高;2、程序改为查表方式输出;如何计算出数据表;3、手动按键改变三种方式轮换输出。六、实验报告要求1、实验目的和内容2、记录下对原程序修改的地方,分析原理3、写清相关程序运行结果,并详细说明结果的正确性