资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,数模及模数转换器接口,数模变换,DAC,和模数变换,ADC,接口器件原理,DAC0832,原理及应用(波形发生器),ADC0804,原理及应用(电压测量),要求,:,理解掌握常用数模变换,DAC,和模数变换,ADC,器件(,DAC0832,、,ADC0804,)的应用方法及和单片微机的接口与应用编程实例,概 述,在微机过程控制和数据采集等系统中,经常要对,过程参数,进行测量和控制 。,连续变化的物理量,如:温度、压力、流量,速度、位移 等等,物理过程,微 机,传感器,A/D,D/A,执行机构,物理过程,v / i,Data,Data,过程控制示意图,模拟量,D/A,转换接口扩展,8,位,CMOS,数模转换芯片,DAC 0832,:,CS,VCC,WR1,ILE,AGND,WR2,D3,XFER,D2 D4,D1 D5,D0,D6,Vref,D7,Rfb,Iout2,DGND,Iout1,DAC0832,20 PIN DIP,封装,8,位,D/A,分辨率,=Vref/256,CMOS,低功耗器件,+5,+15V,单电源供电,电流,输出型器件,(,需外接运放,),具有双缓冲控制输出,采用,T,型电阻解码网络结构,参考电压源,-10,+10V,一 单片机与,D/A,转换器的接口,DAC 0832,引脚定义,CS,VCC,WR1,ILE,AGND,WR2,D3,XFER,D2 D4,D1 D5,D0,D6,Vref,D7,Rfb,Iout2,DGND,Iout1,DAC0832,20 PIN DIP,封装,D0D7,:,8,位数字量输入端,/CS,:,片选端,低有效,ILE,:,数据锁存允许,高有效,/WR1,:,写控制信号,1,低有效,/WR2,:,写控制信号,2,低有效,/XFER,:,数据传送控制信号,Iout1,:,电流输出端,1,Iout2,:,电流输出端,2,Rfb,:,内置反馈电阻端,Vref,:,参考电压源,-10+10V,DGND,:,数字量地,AGND,:,模拟量地,Vcc,: +5+15V,单电源供电端,DAC0832,内部结构框图,D0D7,:,8,位数字量输入端,/CS,:,片选端,低有效,ILE,:,数据锁存允许,高有效,/WR1,:,写控制信号,1,低有效,/WR2,:,写控制信号,2,低有效,/XFER,:,数据传送控制信号,Iout1,:,电流输出端,1,Iout2,:,电流输出端,2,Rfb,:,内置反馈电阻端,Vref,:,参考电压源,-10+10V,DGND,:,数字量地,AGND,:,模拟量地,Vcc,: +5+15V,单电源供电端,&,1,1,1,1,0,0,0,0,1,1,LE2,ILE,CE,WR1,WR2,XFER,D7,D0,LE1,输入寄存器,寄存器,DAC,转换器,D/A,Vref,Iout2,Iout1,Rfb,LE=1,,,Q,跟随,D,LE=0,,,Q,锁存,D,DAC0832,与单片机的连接,89C51,单片机,DAC 0832,P0.0P0.7,P2.0,8位,DI0DI7,EA,WR,XFER,CS,+5V,6MHz,30Px2,WR1,WR2,+5V,Vcc,Vref,ILE,+,uA741,-12V,+12V,GND,AGND,DGND,Iout1,Iout2,Rfb,接示波器,输出于数字量,DATA,相对应模拟量:,MOVDPTR,,,#0FEFFH,MOVA,,,#DATA,MOVXDPTR,A,输入数字量,模拟量输出,(,V,),MSB,LSB,1 1 1 1 1 1 1 1,V,REF,(,255/256,),1 0 0 0 0 0 1 0,V,REF,(,130/256,),1 0 0 0 0 0 0 0,V,REF,(,128/256,),0 1 1 1 1 1 1 1,V,REF,(,127/256,),0 0 0 0 0 0 0 0,V,REF,(,0/256,),单极性输出,D/A,关系,数字量与模拟量的转换关系:,DAC,0832,常 见 的 几 种 用 法,为寄存命令。当,=1,时,寄存器的输出随输入变化;,=0,时,数据锁存在寄存器中,而不随输入数据的变化而变化,当,ILE=1, =0,,,=0,时,,=1,,允许数据输入,而当,=1,时,,=0,则数据被锁存,当 和 均为低电平时,,=1,,此时允许,D/A,转换,否则,=0,,将数据锁存于,DAC,寄存器中,DAC,0832,常 见 的 几 种 用 法,(a): DAC,寄存器直通方式,(b):,输入寄存器直通方式,(c):,两个寄存器同时选通及锁存方式,DAC0832,常见的几种用法,&,1,1,1,1,0,0,0,0,1,1,LE2,ILE,CE,WR1,WR2,XFER,D7,D0,LE1,输入寄存器,寄存器,DAC,转换器,D/A,Vref,Iout2,Iout1,Rfb,LE=1,,,Q,跟随,D,LE=0,,,Q,锁存,D,直通方式,:输入寄存器和,DAC,寄存器共用一个地址,同时选通输出。,1,&,或非门,非与门,输入任一为“,1”,输出皆为“,0”,输入全为“,0”,,输出才为“,1”,输入全为“,0”,,输出才为“,1”,输入任一为“,1”,输出皆为“,0”,双缓冲器方式,:输入寄存器和,DAC,寄存器分配有各自的地址,可分别选通用同时输出多路模拟信号。,【,例,9-6,】,在图,9-30,的输出端,Vout,产生,1.25V,的电压输出。,解,Vout,=,(,D/256,),Vref,,而,Vref,=5V,,且,XFER,、,CS,和,WR,信号常有效,因此使,D=64,即可输出要求的电压。,汇编程序,C,语言程序,MOV P1, #64,#include ,P1 = 64;,【,例,9-7,】,在图,9-31,的输出端,Vout,产生,2.5V,的电压输出,设,Vref,为,5V,。,解,Vout,=,(,D/256,),Vref,,使,D=128,可输出要求的电压,且需要进行一次对,DAC0832,的写操作,写地址选择为,7000H,。,汇编程序,C,语言程序,MOV DPTR, #7000H,MOV A, #128,MOVX DPTR, A,#include ,XBYTE0x7000 = 128;,DAC0832,的编程应用举例,例,1,产生矩形波,例,2,产生锯齿波,LL:,MOV A,,,#00H ;,低电平,MOV DPTR,#0FEFFH,MOVX DPTR,A ;,送,转换,LCALL DMS1 ;,低宽度,MOV A,,,#0FFH ;,高电平,MOVX DPTR,A ;,送转换,LCALL DMS2 ;,高宽度,SJMP LL,MOV A,,,#00H ;,起始值,MOV DPTR,#0FEFFH,MM,:,MOVX DPTR,A ;,送转换,INC A,NOP,NOP,NOP ;,决定坡度,SJMP MM,DAC0832,编程应用举例:,例,3,产生三角波,MOV A,,,#00H,MOV DPTR,#0FEFFH,SS1: MOVX DPTR,A ;,送转换,NOP,NOP,NOP,SS2:,INC A ;,等速上升,JNZ SS1,SS3:,DEC A,MOVX DPTR,,,A,NOP,NOP,NOP ;,等速下降,JNZ SS3,SJMP SS2,同样的编程思路,若要产生,如下的梯形波也很容易:,三角波,梯形波,例,4,正弦波电压输出,正弦波电压输出为双极性电压,最简单的办法是将一个周期内电压变化的幅值,(-,5V,+5V,),按,8,位,D/A,分辨率分为,256,个数值列成表格,然后依次将这些数字量送入,D/A,转换输出。只要循环不断地送数,在输出端就能获得正弦波输出。,SIN,:,MOV R7,,,#00H DAS0,:,MOV A,,,R7,;,MOV DPTR,,,#TABH,;,设指针,MOVC A,,,A+DPTR,;,取数据,MOV DPTR,,,#8000H,;,MOVX DPTR,,,A,;送,D/A,转换,INC R7,;,修改偏移量,AJMP DAS0,;,TAB,:,DB 80H,,,83H,,,86H,,,89H,,,8DH,,,90H,DB93H,,,96H,,,99H,,,9CH,,,9FH,,,0A2H,DB 0A5H,,,0A8H,,,0ABH,,,0AEH,DB 6FH,,,72H,,,76H,,,79H,,,7CH,,,80H,A/D,转换接口扩展,IN3 IN2,IN4,IN1,IN5,IN0,IN6 ADDA,IN7 ADDB,START ADDC,EOC,ALE,D3 D7,OE,D6,CLK D5,VCC D4,Vref,+ D0,GND,Vref,-,D1 D2,ADC0809,8,位,CMOS,模数转换芯片,ADC0809,8,位,A/D,量化间隔,=Vin/(256-1),CMOS,低功耗器件,8,通道,多路开关输入切换电路,单电源,+5,Vref=,+5V,Vin,范围,:,单极性,0,+5V,逐次逼近,结构,每次转换时间,:,100,S,60,个时钟周期,fmax,=,640KHz,(,推荐,CLK=500KHz,),转换结果读取方式,:,延时读数,查询,EOC=1,EOC,申请中断,ADC0809,结构框图,8,通道多路开关,IN0,IN7,地址译码锁存,ADDA,ADDB,ADDC,ALE,控制逻辑与时序,D/A,转换器,SAR,Vin,比较器,输出锁存器,START,CLK,EOC,D0,D7,+,Vref,-,Vref,OE,Vst,+,-,IN3 IN2,IN4,IN1,IN5,IN0,IN6 ADDA,IN7 ADDB,START ADDC,EOC,ALE,D3 D7,OE,D6,CLK D5,VCC D4,Vref,+ D0,GND,Vref,-,D1 D2,ADC0809,IN0IN7,:,8,通道模拟量输入端,D0D7,:,8,位数字量输出端,ADDC,、,ADDB,、,ADDA,:,接地址锁存器的低三位地址,ALE,:,地址锁存允许控制信号,START,:清,0,内寄存器,启动转换,OE,:,允许读,A/D,结果,高有效,CLK,:,时钟输入端,应,640KHz,EOC,:,转换结束时为高,Vcc,:,+5V,Vref,+,:,参考电压,,+5V,Vref,-,:,0V,ADC 0809,引脚定义,:,ADC0809,与单片机的连接,89C51,单片机,ADC 0809,锁存器,74LS373,P0.0-P0.7,ALE,P2.0,8D,Q0,ALE,CLK,ADDA,D0-D7,G,EA,OE,START,RD,WR,OE,Q1,Q2,ADDB,ADDC,+5V,INT1,EOC,1,1,12MHz,30Px2,6,口,地址可以为,:,0FE00,0FE07H,也可为:,0FEF0,0FEF7H,A/D,转换程序:,MOV DPTR,,,#0FE00H,;置,IN,0,通道地址,MOV A,,,#00,;,累加器里任意赋一个值,MOVX DPTR,,,A,; 启动,A/D,转换,LCALL DELAY,; 等待转换结束,MOVX A,,,DPTR,; 取转换结果,2,、最后,执行,MOV A,,,DPTR,产生,RD,信号使,OE,端有效,打开输出锁存器三态门,,8,位数据就读入,CPU,中。,启动,ADC0809,的工作过程,1,、先送通道号地址到,A,、,B,、,C,,由,ALE,信号锁存通道号地址,然后让,START,有效启动,A/D,转换。,即执行一条,MOVX DPTR, A,指令产生,WR,信号,使,ALE,、,START,有效,锁存通道号并启动,A/D,转换。,A/D,转换完毕,,EOC,端发出一正脉冲,表示转换结束。,锁存器,74LS373,P0.0-P0.7,ALE,P2.0,8D,Q0,ALE,CLK,ADDA,D0-D7,G,EA,OE,START,RD,WR,OE,Q1,Q2,ADDB,ADDC,+5V,INT1,EOC,1,1,12MHz,30Px2,6,ORG 0000H,AJMP MAIN,ORG,0013H,;,外部中断,1,的中断矢量,AJMP,INT,MAIN:,MOV R0,#0A0H,;,存结果的缓冲区,:,A0H-A7H,MOV R2,#08H,;,待采集的,通道数为,8,SETB IT1,;,选择,下降沿,触发中断,SETB EA,;,开中断,SETB EX1,MOV DPTR,#,0FEF0,H,;,通道,0,的地址,MOVX DPTR, A,;,启动转换。,注意,:,A=,?,HERE,:,SJMP HERE,;,等待中断,ADC0809,八路巡回中断式数据采集,ORG 0000H,AJMP MAIN,ORG 0013H,AJMP INT,MAIN: MOV R0,#0A0H,MOV R2,#08H,SETB IT1,SETB EA,SETB EX1,MOV DPTR,#0FEF0H,MOVX DPTR, A,HERE:SJMP HERE,ADC0809,八路巡回中断式数据采集,INT:,MOVX A,,,DPTR,;,读数据,MOV R0, A,;,数据放进缓存单元,INC R0,;,指向下一缓存,INC DPTR,;,指向下一通道,DJNZ R2,,,RTN,; 8,次未完就继续采集,;,已完就关中断、停采集,CLR EA,CLR EX1,RETI,RTN,:MOVX DPTR,A,;,启动采集,RETI,思考题,请编写,89C51,单片机通过,DAC0832,产生锯齿波信号、三角波、梯形波的程序(可以为任意频率)。,当,ADC0809,对,8,路模拟信号进行,A/D,转换时,请编写用查询方式工作的采样程序,,8,路采样值存放在,50H,57H,单元。,
展开阅读全文