收藏 分销(赏)

第11章-DAC与ADC.ppt

上传人:人****来 文档编号:11731291 上传时间:2025-08-11 格式:PPT 页数:121 大小:2.43MB 下载积分:22 金币
下载 相关 举报
第11章-DAC与ADC.ppt_第1页
第1页 / 共121页
第11章-DAC与ADC.ppt_第2页
第2页 / 共121页


点击查看更多>>
资源描述
*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,11,章,AT89S51,单片机与,DAC,、,ADC,的接口,1,在单片机测控系统中,非电量如温度、压力、流量、速度等,经传感器先转换成连续变化的模拟电信号(电压或电流),然后再将模拟电信号转换成数字量后才能在单片机中进行处理。,实现模拟量转换成数字量的器件,称为,ADC,(,A/D,转换器)。,单片机处理完毕的数字量,有时根据控制要求需要转换为模拟信号输出。,数字量转换成模拟量的器件,称为,DAC,(,D/A,转换器)。本章从应用的角度,介绍典型的,ADC,、,DAC,芯片与,AT89S51,单片机的硬件接口设计以及接口驱动程序设计。,2,11.1,单片机扩展,DAC,概述,单片机只能输出数字量,但是对于某些控制场合,常常需要输出模拟量,例如直流电动机的转速控制。下面介绍单片机如何扩展,DAC,。,目前集成,DAC,芯片种类繁多,只需要合理选用芯片,了解它们的性能、引脚外特性以及与单片机的接口设计方法即可。,现在,部分单片机的芯片中,集成了,DAC,,位数一般在,10,位左右,且转换速度也很快,所以单片,DAC,开始向高的位数和高转换速度上转变。而低端的并行,8,位,DAC,,开始面临被淘汰的危险,但是在实验室或涉及某些工业控制方面的应用,低端,8,位,DAC,以其优异的性价比还是具有较大的应用空间。,1,D/A,转换器简介,购买和使用,D/A,转换器时,要注意有关,D/A,转换器选择的几个问题。,3,(,1,),D/A,转换器的输出形式,D/A,转换器有,两种输出形式,:电压输出和电流输出。电流输出的,D/A,转换器在输出端加一个运算放大器构成的,I-V,转换电路,即可转换为电压输出。,(,2,),D/A,转换器与单片机的接口形式,与单片机的连接,早期多采用,8,位的并行传输的接口,现在除了并行接口外,带有串行口的,D/A,转换器品种也不断增多,目前较为流行多采用,SPI,串行接口。在选择单片,D/A,转换器时,要根据系统结构考虑单片机与,D/A,转换器的接口形式。,2,主要技术指标,D/A,转换器的指标很多,设计者最关心的几个指标如下。,(,1,)分辨率,4,分辨率,指单片机输入给,D/A,转换器的,单位数字量的变化,,所,引起的模拟量输出的变化,,通常定义为,输出满刻度值与,2n,之比,(,n,为,D/A,转换器的二进制位数),习惯上用输入数字量的位数表示。显然,二进制位数越多,,分辨率越高,,即,D/A,转换器输出,对输入数字量变化的敏感程度越高,。,例如,,8,位的,D/A,转换器,若满量程输出为,10V,,根据分辨率定义,则分辨率为,10V/2n,,分辨率为,10V/256=39.1mV,,即输入的二进制数最低位数字量的变化可引起输出的模拟电压变化,39.1mV,,该值占满量程的,0.391%,,常用符号,1LSB,表示。,同理:,10,位,D/A,转换,1 LSB=9.77mV=0.1%,满量程,12,位,D/A,转换,1 LSB=2.44mV=0.024%,满量程,16,位,D/A,转换,1 LSB=0.076mV=0.00076%,满量程,5,使用时,应根据对,D/A,转换器分辨率的需要来选定,D/A,转换器的位数。,(,2,)建立时间,是,描述,D/A,转换器转换速度的,参数,,表明转换时间长短。其值为从输入数字量到输出达到终值误差,(1/2)LSB,(最低有效位)时所需的时间。电流输出的转换时间较短,而电压输出的转换器,由于要加上完成,I-V,转换的时间,因此建立时间要长一些。快速,D/A,转换器的建立时间可控制在,1,u,s,以下。,(,3,)转换精度,理想情况下,转换精度与分辨率基本一致,位数越多精度越高。但由于电源电压、基准电压、电阻、制造工艺等各种因素存在误差。严格地讲,转换精度与分辨率并不完全一致。,两个,相同位数,的不同的,DAC,,只要位数相同,分辨率则相同,但,转换精度,会有所不同。,例如,某种型号的,8,位,DAC,精度为,0.19%,,而另一种型号的,8,位,DAC,精度为,0.05%,。,6,7,11.2,单片机扩展并行,8,位,DAC0832,的设计,11.2.1 8,位并行,DAC 0832,简介,1,DAC0832,的特性,美国国家半导体公司的,DAC0832,芯片具有,两级,输入数据寄存器,的,8,位,DAC,,能直接与,AT89S51,连接,特性如下。,(,1,)分辨率为,8,位。,(,2,)电流输出,建立时间为,1,u,s,。,(,3,)可双缓冲输入、单缓冲输入或直通输入。,(,4,)单一电源供电(,+5V,+15V,),低功耗,,20mW,。,2,DAC0832,的引脚及逻辑结构,引脚,见,图,11-1,内部结构,见,图,11-2,。,8,9,图,11-1,DAC0832,引脚,10,图,11-2,DAC0832,逻辑结构,由,图,11-2,,片内共,两级,寄存器,:,第一级,为“,8,位输入寄存器,”,用于存放单片机送来的数字量,使得该数字量得到缓冲和锁存,由,LE1*,(即,M1=1,时)加以控制;,“,8,位,DAC,寄存器,”是,第二级,8,位输入寄存器,用于存放待转换的数字量,由,LE2*,控制(即,M3=1,时),这两级,8,位寄存器,构成两级输入数字量缓存。“,8,位,D/A,转换电路”受“,8,位,DAC,寄存器”输出数字量控制,输出和数字量成正比的模拟电流。如要得到模拟输出电压,需外接,I-V,转换电路。,各引脚的功能,如下。,11,DI7,DI0,:,8,位数字,量,输入端,接收发来的数字量。,ILE,、,CS,*,、,WR1,*,:,当,ILE=1,,,CS,*,=0,,,WR1*=0,时,即,M1=1,,,第一级,8,位输入寄存器被选中。待转换的数字信号被锁存到第一级,8,位输入寄存器中。,XFER,*,、,WR2*,:当,XFER,*,=0,,,WR2*=0,时,第一级,8,位输入寄存器中待转换数字进入第二级,8,位,DAC,寄存器中。,I,OUT1,:,D/A,转换电流输出,1,端,输入数字量全为,“,1,”,时,,I,OUT1,最大,输入数字量全为,“,0,”,时,,I,OUT1,最小。,12,I,OUT2,:,D/A,转换电流输出,2,端,,I,OUT2,+I,OUT1,=,常数。,R,fb,:,I-V,转换时的外部反馈信号输入端,内部已有反馈电阻,R,fb,,根据需要也可外接反馈电阻。,V,REF,:,参考电压输入端。,V,CC,:,电源输入端,在,+5V,+15V,范围内。,DGND,:,数字地。,AGND,:模拟地,最好与基准电压共地,13,14,11.2.2,案例设计:单片机扩展,DAC0832,的程控电压源,数字调压,单片机只,要送给,DAC0832,不同数字量,即可实现不同模拟电压输出。,DAC0832,输出可用,单缓冲方式,或,双缓冲方式,。,单缓冲方式是,DAC0832,片内的两级数据寄存器的,有一个处于直通方式,,另一处于受,AT89S51,控制的锁存方式。实际应用中,如只有一路模拟量输出,或虽是多路模拟量输出,但并不要求多路输出同步情况下,就可采用单缓冲方式。,单片机控制,DAC0832,实现数字调压的,单缓冲方式接口电路,见,图,11-3,。由于,XFER,*,=0,、,WR2*,=0,,所以第二级,“,8,位,DAC,寄存器,”,处于直通。第一级,“,8,位输入寄存器,”,为单片机控制的锁存方式,,3,个锁存控制端的,15,16,图,11-3,单缓冲方式的单片机与,DAC0832,的接口原理电路,ILE,直接接到有效的高电平,另两个控制端,CS,*,、,WR1,*,分别由,单片机,P2.0,和,P2.1,控制,DAC 0832,输出电压,Vo,与输入数字量,B,关系为:,由上式见,输出模拟电压,Vo,与,输入数字量,B,以及基准电压,V,REF,成正比,且,B,为,0,时,,Vo,也为,0,,,B,为,255,时,,Vo,为最大的绝对值输出,且不会大于,V,REF,。,下面介绍单缓冲方式下单片机扩展,DAC0832,程控电压源的设计。,17,【例,11-1,】,单片机与,DAC0832,单缓冲方式接口,见,图,11-3,,单片机,P2.0,脚控制,DAC0832,的,CS,*,脚,,P2.1,控制,WR1,*,端。当,P2.0,脚为低时,如果同时,WR*,有效,单片机就会把数字量通过,P1,口送入,DAC0832,的,DI7,DI0,端,并转换输出。用虚拟直流电压表测量经运放,LM358N,的,I/V,转换后的电压值,并观察输出电压变化。,仿真运行后,可看到虚拟直流电压表测量输出电压在,2.5V,0V,(参考电压为,2.5V,)范围内不断线性变化。如参考电压为,5V,,则输出电压在,5V,0V,范围内变化。如果虚拟直流电压表太小,看不清楚电压显示值,可用鼠标滚轮放大直流电压表。,单片机,送给,DAC0832,不同的数字量,,就可,得到不同的输出电平,,从而使单片机控制,DAC0832,成为一个,程控电压源,。,18,参考程序如下:,19,20,11.2.3,案例设计,2,:波形发生器的制作,单片机如把,不同波形数据,发送给,DAC0832,,就可产生各种不同波形信号。下面介绍单片机控制,DAC0832,产生各种函数波形案例,。,【例,11-2,】,单片机控制,DAC0832,产生正,弦波、方波、三角波、梯形波,和,三角波,。,Proteus,的原理电路,见,图,11-4,。单片机,P1.0 P1.4,接有,5,个按键,当按键按下时,分别对应产生正弦波、方波、三角波、梯形波和三角波。,21,图,11-4,控制,DAC0832,产生各种波形的原理电路,22,单片机控制,DAC0832,产生各种波形,实质就是单片机把波形的,采样点数据,送至,DAC0832,,经,D/A,转换后输出模拟信号。改变送出的函数波形采样点后的延时时间,就可改变函数波形的频率。产生各种波形原理如下。,(,1,),正弦波产生原理,单片机把正弦波的,256,个采样点的数据送给,DAC0832,。正弦波采样数据可用软件编程或,MATLAB,等工具计算。,(,2,),方波产生原理,单片机采用定时器定时中断,时间常数决定方波高、低电平持续时间。,23,(,3,),三角波产生原理,单片机把初始数字量,0,送,DAC0832,后,不断增,1,,增至,0 xff,后,然后再把送给,DAC0832,的数字量不断减,1,,减至,0,后,再重复上述过程。,(,4,),锯齿波产生原理,单片机把初始数据,0,送,DAC0832,后,数据不断增,1,,增至,0 xff,后,再增,1,则溢出清,“,0,”,,模拟输出又为,0,,然后再重复上述过程,如此循环,则输出锯齿波。,24,(,5,),梯形波产生原理,输入给,DAC0832,数字量从,0,开始,逐次加,1,。当输入数字量为,0 xff,时,延时一段时间,形成梯形波平顶,然后波形数据再逐次减,1,,如此循环,则输出梯形波。,参考程序,如下:,25,#include,sbit,wr,=P36;,sbit,rd=P32;,sbit,key0=P10;/,定义,P1.0,脚的按键为正弦波键,key0,sbit,key1=P11;/,定义,P1.1,脚的按键为方波键,key1,sbit,key2=P12;/,定义,P1.2,脚的按键为三角波键,key2,sbit,key3=P13;/,定义,P1.3,脚的按键为梯形波键,key3,sbit,key4=P14;/,定义,P1.3,脚的按键为锯齿波键,key4,unsigned char,flag,;/flag,为,1,、,2,、,3,、,4,、,5,时对应正弦波、方波、,/,三角波、梯形波、锯齿波,26,unsigned char const code,/,以下为,正,弦波采样点数组,256,个数据,SIN_code256=0 x80,0 x83,0 x86,0 x89,0 x8c,0 x8f,0 x92,0 x95,0 x98,0 x9c,0 x9f,0 xa2,0 xa5,0 xa8,0 xab,0 xae,0 xb0,0 xb3,0 xb6,0 xb9,0 xbc,0 xbf,0 xc1,0 xc4,0 xc7,0 xc9,0 xcc,0 xce,0 xd1,0 xd3,0 xd5,0 xd8,0 xda,0 xdc,0 xde,0 xe0,0 xe2,0 xe4,0 xe6,0 xe8,0 xea,0 xec,0 xed,0 xef,0 xf0,0 xf2,0 xf3,0 xf4,0 xf6,0 xf7,0 xf8,0 xf9,0 xfa,0 xfb,0 xfc,0 xfc,0 xfd,0 xfe,0 xfe,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xfe,0 xfe,0 xfd,0 xfc,0 xfc,0 xfb,0 xfa,0 xf9,0 xf8,0 xf7,0 xf6,0 xf5,0 xf3,0 xf2,0 xf0,0 xef,0 xed,0 xec,0 xea,0 xe8,0 xe6,0 xe4,0 xe3,0 xe1,0 xde,0 xdc,0 xda,0 xd8,0 xd6,0 xd3,0 xd1,0 xce,0 xcc,0 xc9,0 xc7,0 xc4,0 xc1,0 xbf,0 xbc,0 xb9,0 xb6,0 xb4,0 xb1,0 xae,0 xab,0 xa8,0 xa5,0 xa2,0 x9f,0 x9c,0 x99,0 x96,0 x92,0 x8f,0 x8c,0 x89,0 x86,0 x83,0 x80,0 x7d,0 x79,0 x76,0 x73,0 x70,0 x6d,0 x6a,0 x67,0 x64,0 x61,0 x5e,0 x5b,0 x58,0 x55,0 x52,0 x4f,0 x4c,0 x49,0 x46,0 x43,0 x41,0 x3e,0 x3b,0 x39,0 x36,0 x33,0 x31,0 x2e,0 x2c,0 x2a,0 x27,0 x25,0 x23,0 x21,0 x1f,0 x1d,0 x1b,0 x19,0 x17,0 x15,0 x14,0 x12,0 x10,0 xf,0 xd,0 xc,0 xb,0 x9,0 x8,0 x7,0 x6,0 x5,0 x4,0 x3,0 x3,0 x2,0 x1,0 x1,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x1,0 x1,0 x2,0 x3,0 x3,0 x4,0 x5,0 x6,0 x7,0 x8,0 x9,0 xa,0 xc,0 xd,0 xe,0 x10,0 x12,0 x13,0 x15,0 x17,0 x18,0 x1a,0 x1c,0 x1e,0 x20,0 x23,0 x25,0 x27,0 x29,0 x2c,0 x2e,0 x30,0 x33,0 x35,0 x38,0 x3b,0 x3d,0 x40,0 x43,0 x46,0 x48,0 x4b,0 x4e,0 x51,0 x54,0 x57,0 x5a,0 x5d,0 x60,0 x63,0 x66,0 x69,0 x6c,0 x6f,0 x73,0 x76,0 x79,0 x7c,27,28,unsigned char,keyscan,()/,键盘扫描函数,unsigned char,keyscan_num,temp,;,P1=0 xff;/P1,口输入,temp=P1;/,从,P1,口读入键值,存入,temp,中,if(temp&0 xff)/,判是否有键按下,即键值不为,0 xff,,则有键按下,if(key0=0)/,产生正弦波的按键按下,,P1.0=0,keyscan_num,=1;/,得到的键值为,1,,表示产生正弦波,else if(key1=0)/,产生方波的按键按下,,P1.1=0,keyscan_num,=2;/,得到键值为,2,,表示产生方波,else if(key2=0)/,产生三角波的按键按下,,P1.2=0,keyscan_num,=3;/,得到的键值为,3,,表示产生三角波,else if(key3=0)/,产生梯形波的按键按下,,P1.3=0,keyscan_num,=4;/,得到的键值为,4,,表示产生梯形波,else if(key4=0)/,产生锯齿波的按键按下,,P1.3=0,keyscan_num,=5;/,得到的键值为,5,,表示产生锯齿波,else,keyscan_num,=0;/,没有按键按下,键值为,0,return,keyscan_num,;/,得到的键值返回,29,30,31,32,33,void main()/,主函数,init_DA0832();/DA0832,的初始化函数,do,flag=,keyscan,();/,将键盘扫描函数得到的键值赋给,flag,while(!flag,);,while(1),switch(flag,),case 1:,do,f lag=,keyscan,();,SIN();,while(flag,=1);,break;,case 2:,Square();,do,flag=,keyscan,();,while(flag,=2);,TR0=0;,break;,case 3:,do,flag=,keyscan,();,Triangle();,while(flag,=3);,break;,34,case 4:,do,flag=,keyscan,();,Trapezoidal();,while(flag,=4);,break;,case 5:,do,flag=,keyscan,();,Sawtooth,();,while(flag,=5);,break;,default:,flag=,keyscan,();,break;,35,void timer0(void)interrupt 1,/,T0,的中断函数,P2=P2;/,方波的输出电平求反,TH0=0 xff;/,重装定时时间常数,TL0=0 x83;,TR0=1;/,启动定时器,T0,本案例在仿真运行时,可看到弹出的虚拟示波器,从虚拟示波器屏幕上可观察到由按键选择的函数波形输出。,如在仿真时,关闭该虚拟示波器后,,再启用虚拟示波器观察波形,,可点击鼠标右键,现下拉菜单,点击“,oscilloscope”,后,仿真界面又会出现虚拟示波器屏幕。,36,37,11.3 AT89S51,扩展,10,位串行,DAC-TLC5615,11.3.1,串行,DACTLC5615,简介,美国,TI,公司产品,串行接口,,电压输出,型,最大输出电压是,基准电压值两倍,。带上电复位功能,即上电时把,DAC,寄存器复位至全零。单片机只需用,3,根串行总线,就可完成,10,位数据的串行输入,易于和工业标准的微处理器或单片机接口,非常适于,电池供电,的测试仪表、移动电话,也适用于数字失调与增益调整以及工业控制场合。,TLC5615,的引脚,见,图,11-5,。,38,8,只引脚功能如下:,DIN,:,串行数据输入端;,SCLK,:,串行时钟输入端;,C,S*,:,片选端,低电平有效;,39,图,11-5,TLC5615,引脚,DOUT,:用于级联时的串行数据输出端;,AGND,:,模拟地;,REF,IN,:基准电压输入端,,2V,(VDD-2),;,OUT,:,DAC,模拟电压输出端;,VDD,:,正电源端,,4.5,5.5V,通常取,5V,。,TLC5615,内部功能框图,见,图,11-6,。,40,41,图,11-6,TLC5615,内部功能框图,主要由以下几部分组成:,10,位,DAC,电路,;,一个,16,位移位寄存器,接收串行移入的二进制数,且有一个级联的数据输出端,D,OUT,;,并行输入输出的,10 bit DAC,寄存器,为,10,位,DAC,电路提供待转换的二进制数据,;,电压跟随器为参考电压端,REF,IN,提供高输入阻抗,,大约,10M;,2,电路,提供最大值为,2,倍于,REF,IN,输出,;,上电复位电路和控制逻辑电路。,42,两种工作方式:,(,1,),第,1,种,工作方式:,12,位数据序列,。从,图,10-8,看出,,16,位移位寄存器分为,高,4,位,的虚拟位、,低,2,位,的填充位以及,10,位,有效数据位。在,TLC5615,工作时,只需要向,16,位移位寄存器先后输入,10,位有效位和低,2,位的任意填充位。,(,2,),第,2,种,工作方式,:,级联方式,即,16,位数据列,可将本片的,D,OUT,接到下一片的,D,IN,,需向,16,位移位寄存器先后输入高,4,位虚拟位、,10,位有效位和低,2,位填充位,由于增加了高,4,位虚拟位,所以需要,16,个,时钟脉冲,。,43,利用带有串行接口的,TLC5615 D/A,转换电路,调节可变电阻器,使输出电压可在,0,5V,内调节。调整电位计,用电压表测量,DAC,转换输出的电压值。,当,TLC5615,片选脚,CS*,为低,时,串行输入数据才能被移入,16,位移位寄存器,。当,CS*,为低时,在每一个,SCLK,时钟的上升沿将,DIN,的一位数据移入,16,位移寄存器。,注意,二进制最高有效位被导前移入。接着,,CS*,的上升沿将,16,位移位寄存器的,10,位有效数据锁存于,10,位,DAC,寄存器,供,DAC,电路进行转换,。,当,片选端,CS*,为高,时,串行输入数据不能被移入,16,位移位寄存器。,44,45,11.3.2,案例,设计,:单片机,扩展,串行,DACTLC5615,的设计,【例,11-3,】,单片机控制串行,DAC-TLC5615,进行,D/A,转换,原理电路及仿真,见,图,11-7,。,调节可变电位计,RV1,的值,使,TLC5615,的输出电压可在,0,5V,内调节,从虚拟直流电压表可观察到,DAC,转换输出的电压值。,46,图,11-7,单片机与,DAC-TLC5615,的接口电路,47,参考程序如下:,#include,#include,#define,uchar,unsigned char,#define,uint,unsigned,int,sbit,SCL=P11;,sbit,CS=P12;,sbit DIN=P10;,uchar bdata dat_in_h;,uchar bdata dat_in_l;,sbit h_7=dat_in_h7;,sbit l_7=dat_in_l7;,void,delayms(uint,j),uchar i=250;,for(;j0;j-),48,while(-i);,i=249;,while(-i);,i=250;,void Write_12Bits(void),/,一次向,TLC5615,中,写入,12bit,数据函数,uchar,i;,SCL=0;/,置零,SCL,,为写,bit,做准备;,CS=0;/,片选端,=0,;,for(i,=0;i2;i+)/,循环,2,次,发送高两位;,if(h_7)/,高位先发;,49,DIN=1;/,将数据送出;,SCL=1;/,提升时钟,写操作在时钟上升沿触发,SCL=0;/,结束该位传送,为下次写作准备;,else,DIN=0;,SCL=1;,CL=0;,dat_in_h,=1;,50,for(i,=0;i8;i+)/,循环,8,次,发送低,8,位,;,if(l_7),DIN=1;/,将数据送出;,SCL=1;/,提升时钟,写操作在时钟上升沿触发,SCL=0;/,结束该位传送,为下次写作准备,else,DIN=0;,SCL=1;,SCL=0;,dat_in_l,=1;,for(i,=0;i2;i+)/,循环,2,次,发送两个填充位,51,DIN=0;SCL=1;SCL=0;,CS=1;SCL=0;,void TLC5615_Start(uint,dat_in,),/,启动,DAC,转换函数,dat_in,%=1024;,dat_in_h,=dat_in/256;,dat_in_l,=dat_in%256;,dat_in_h,=6;,Write_12Bits();,void main(),/,主函数,while(1),TLC5615_Start(0 xffff);delayms(1);,52,53,11.3,单片机扩展,ADC,概述,A/D,转换器(,ADC,)把,模拟量,转换成,数字量,,单片机才能进行数据处理。随着超大规模集成电路技术的飞速发展,大量结构不同、性能各异的,A/D,转换芯片应运而生。,1,A/D,转换器简介,目前单片,ADC,芯片较多,对设计者来说,只需,合理的选择芯片,即可。现在部分的单片机片内也集成了,A/D,转换器,位数为,8,位、,10,位或,12,位,且转换速度也很快,但是在片内,A/D,转换器不能满足需要的情况下,还是需要外扩。因此,作为外部扩展,A/D,转换器的基本方法,读者还是应当掌握。,54,目前广泛应用在单片机应用系统中的主要有逐次比较型转换器和双积分型转换器,此外,-,式转换器,也,逐渐得到重视和应用,。,逐次比较型,ADC,,在精度、速度和价格都适中,是最常用的,A/D,转换器。,双积分型,ADC,,具有精度高、抗干扰性好、价格低廉等优点,与逐次比较型,A/D,转换器相比,转换速度较慢,近年来在单片机应用领域中已得到广泛应用。,-,式,ADC,具有积分式与逐次比较型,ADC,的优点。它对工业现场串模干扰具有较强抑制能力,不亚于双积分,ADC,,它比双积分,ADC,有较高转换速度。与逐次比较型,ADC,相比,有较高信噪比,分辨率高,线性度好。由于上述优点,,-,式,ADC,得到了重视,已有多种,-,式,A/D,芯片可供用户选用。,55,56,A/D,转换器按照输出数字量的有效位数分为,4,位、,8,位、,10,位、,12,位、,14,位、,16,位,并行输出以及,BCD,码输出的位、位、位等多种。,目前,除了并行的,A/D,转换器外,带有同步,SPI,串行接口,的,A/D,转换器的使用也逐渐增多。串行接口的,A/D,转换器具有占用单片机的端口线少、使用方便、接口简单等优点,已经得到广泛的使用。,较为典型,的串行,A/D,转换器为,美国,TI,公司,的,TLC549,(,8,位)、,TLC1549,(,10,位)以及,TLC1543,(,10,位)和,TLC2543,(,12,位)等。,A/D,转换器按照转换速度可大致分为,超高速,(转换时间,1ns,)、,高速,(转换时间,1,u,s,)、,中速,(转换时间,1ms,)、,低速,(转换时间,1s,)等几种不同转换速度的芯片。目前许多新型的,A/D,转换器已将多路转换开关、时钟电路、基准电压源、二,/,十进制译码器和转换电路集成在一个芯片内,为用户提供了极大方便。,2,A/D,转换器主要技术指标,(,1,)转换时间或转换速率。,转换时间是指,A/D,转换器完成一次转换所需要的时间。转换时间的倒数为转换速率。,(,2,)分辨率,。分辨率是衡量,A/D,转换器能够分辨出输入模拟量最小变化程度的技术指标。分辨率取决于,A/D,转换器的位数,习惯上用输出的二进制位数或,BCD,码位数表示。,例如,,A/D,转换器,AD1674,的满量程输入电压为,5V,,可输出,12,位二进制数,即用,212,个数进行量化,其分辨率为,1LSB,,也即,V/212=1.22mV,,其分辨率为,12,位,或能分辨出输入电压,1.22mV,的变化。,57,又如,,双积分型输出,BCD,码的,A/D,转换器,MC14433,,其满量程输入电压为,2V,,其输出最大的十进制数为,1999,,分辨率为三位半,如果换算成二进制位数表示,其分辨率约为,11,位,因为,1999,最接近于,211=2048,。,量化过程引起的误差称为,量化误差,。量化误差是由于有限位数字量对模拟量进行量化而引起的误差。量化误差理论上规定为一个单位分辨率的,1/2,LSB,,提高位数既可以提高分辨率,又能减少量化误差。,(,3,)转换精度,。定义为一个实际,A/D,转换器与一理想,A/D,转换器在量化值上的差值,可用绝对误差或相对误差表示。,58,59,11.4,单片机并行扩展,8,位,A/D,转换器,ADC0809,1,ADC0809,引脚及功能,逐次比较型,8,路模拟输入、,8,位数字量输出的,A/D,转换器,引脚,见,图,11-8,。,60,图,11-8,ADC0809,引脚,共,28,个引脚,双列直插式封装,引脚功能如下:,IN0,IN7,:,8,路模拟信号输入。,D0,D7,:转换完毕的,8,位数字量输出端。,C,、,B,、,A,与,ALE,:,C,、,B,、,A,端控制,8,路模拟输入通道的切换,分别与单片机的,3,条地址线相连。,C,、,B,、,A=000,111,对应,IN0,IN7,通道地址。各路模拟输入通道之间切换由改变加到,C,、,B,、,A,上的编码来实现。,ALE,为,ADC0809,接收,C,、,B,、,A,编码时的锁存控制信号。,OE,、,START,、,CLK,:,OE,为转换结果输出允许端;,START,为启动信号输入端;,CLK,为时钟信号输入端,,ADC0809,的,CLK,信号须外加。,EOC,:,转换结束输出信号。当,A/D,转换开始时,该引脚为低电平,当,A/D,转换结束时,该引脚为高电平。,VR,(,+,)、,VR,(,-,):,基准电压输入端。,61,2,ADC0809,的内部结构,结构见,图,11-9,。,ADC0809,采用逐次比较方法完成,A/D,转换,由单一,+5V,电源供电。片内带有锁存功能的,8,路选,1,模拟开关,由加到,C,、,B,、,A,引脚编码决定所选通道。,62,图,11-9,ADC0809,结构框图,ADC0809,完成一次转换需,100,s,(此时加在,CLK,引脚的时钟频率为,640MHz,,即转换时间与加在,CLK,引脚的时钟频率有关),它具有输出,TTL,三态锁存缓冲器,可直接连到,AT89S51,单片机的数据总线上。通过适当的外接电路,,ADC0809,可对,0,5V,的模拟信号进行转换。,3,输入模拟电压与输出数字量的关系,ADC0809,输入模拟电压与转换输出结果数字量关系如下:,63,其中:,V,IN,处于(,VREF(+)-VREF(-),)之间,,N,为十进制数。通常情况下,VREF(+),接,+5V,,,VREF(-),接地,即模拟输入电压范围为,0+5V,,对应的数字量输出为,0 x000 xff,。,4,ADC0809,的转换工作原理,讨论接口设计前,先了解单片机,如何控制,ADC,开始转换,,如何得知转换结束以及如何读入转换结果的问题。,单片机控制,ADC0809,进行,A/D,转换过程如下,:首先由加到,C,、,B,、,A,上的编码决定选择,ADC0809,的某一路模拟输入通道,同时产生高电平加到,0809,的,START,引脚,开始对选中通道转换。,64,当转换结束时,,ADC0809,发出转换结束,EOC,(高电平)信号。当单片机读取转换结果时,需控制,OE,端为高电平,把转换完毕的数字量读入到单片机内。,单片机读取,A/D,转换结果可采用,查询方式,和,中断方式,。,查询方式,是检测,EOC,脚,是否变为高电平,,如为高电平则说明转换结束,然后单片机读入转换结果。,中断方式,是单片机启动,ADC,转换后,单片机执行其他程序。,ADC0809,转换结束后,EOC,变为高电平,,EOC,通过反相器向单片机发出中断请求,单片机响应中断,进入中断服务程序,在中断服务程序中读入转换完毕的数字量。很明显,中断方式效率高,特适合于转换时间较长的,ADC,。,65,66,11.4.1,案例:单片机控制,ADC0809,进行,A/D,转换,【,例,11-4】,采用查询方式控制,ADC0809,(,Proteus,元件库中没有,ADC0809,,可用库中,ADC0808,替代,,与,ADC0809,性能完全相同,用法一样,只是在非调整误差方面有所不同,,ADC0808,为,1/2LSB,,而,ADC0809,为,1LSB,)进行,A/D,转换,原理电路见,图,10-12,。,输入给,ADC0809,模拟电压可通过调节电位器,RV1,来实现,,ADC0808,将输入的模拟电压转换成二进制数字,并通过,P1,口输出,,控制发光二极管亮与灭,来显示转换结果的二进制数字量。,67,图,11-10,单片机控制,ADC0809,进行转换,68,ADC0808,转换一次约需,100s,,采用查询方式,即使用,P2.3,来查询,EOC,脚电平,判断,A/D,转换是否结束。,如果,EOC,脚,为高,说明转换结束,,单片机从,P1,口读入转换二进制的结果,然后把结果从,P0,口输出给,8,个发光二极管,发光二极管被点亮的位,对应转换结果“,0,”。,#include reg51.h,#define,uchar,unsigned char,#define,uint,unsigned,int,#define LED P0,#define out P1,sbit,start=P21;,sbit,OE=P27;,sbit,EOC=P23;,69,sbit,CLOCK=P20;,sbit,add_a,=P24;,sbit,add_b,=P25;,sbit,add_c,=P26;,void,main(void,),uchar,temp;,add_a,=0;add_b=0;add_c=0;/,选择,ADC0809,的通道,0,while(1),start=0;,start=1;,start=0;/,启动转换,while(1),clock=!,clock;if(EOC,=1)break;/,等待转换结束,70,OE=1;/,允许输出,temp=out;/,暂存转换结果,OE=0;/,关闭输出,LED=temp;/,采样结果通过,P0,口输出到,LED ,A/D,转换时须加,基准电压,,单独用高精度稳压电源供给,其电压变化要小于,1LSB,,这是,保证转换精度的,基本条件,。否则当被转换的输入电压不变,而基准电压的变化大于,1LSB,,也会引起,A/D,转换器输出的数字量变化。,如用,中断方式,读取结果。可将,EOC,引脚与单片机,P2.3,脚断开,,EOC,引脚接反相器(例如,74LS04,)的输入,反相器输出接单片机外部中断请求输入端(,INTx,脚),转换结束时,向单片机发出中断请求信号。可将本例接口电路及程序修改,采用中断方式来读取,A/D,转换结果。,71,72,11.4.2,案例:,2,路输入,的数字电压表的设计,【,例,11-5】,设计一个单片机采用查询方式对,2,路模拟电压(,0,5V,)交替采集的数字电压表。原理电路与仿真见,图,11-11,。,2,路,0,5V,被测电压加到,ADC0809,IN0,和,IN1,通道,进行,A/D,转换,两路输入电压的大小可通过,手动调节,RV1,和,RV2,来实现。,本例将,1.25V,和,2.5V,作为,两路输入,的,报警值,,当通道,IN0,和,IN1,的电压分别超过,1.25V,和,2.50V,时,对应二进制数值分别为,0 x40,和,0 x80,。当,A/D,转换结果超过该数值时,将驱动发光二极管,D2,闪烁与蜂鸣器发声,以表示超限。测得的电压交替显示在,LED,数码管上,同时也显示在两个虚拟电压表图标上,通过鼠标,滚轮,放大虚拟电压表图标,可清楚地看到输入电压测量
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服