资源预览内容
第1页 / 共148页
第2页 / 共148页
第3页 / 共148页
第4页 / 共148页
第5页 / 共148页
第6页 / 共148页
第7页 / 共148页
第8页 / 共148页
第9页 / 共148页
第10页 / 共148页
亲,该文档总共148页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第1111章章 AT89S51AT89S51单片机与单片机与D/AD/A、A/D A/D 转换器的接口转换器的接口1成都理工大学工程技术学院成都理工大学工程技术学院自动化工程系自动化工程系2第第11章章目目录11.1AT89S51单片机与片机与DAC的接口的接口11.1.1D/A转换器简介11.1.2AT89S51单片机与8位D/A转换器0832的接口设计11.1.3AT89S51单片机与12位D/A转换器AD667的接口设计11.1.4AT89S51与串入的12位D/A转换器AD7543的接口设计11.2AT89S51单片机与片机与ADC的接口的接口11.2.1A/D转换器简介11.2.2AT89S51与逐次比较型8位A/D转换器ADC0809的接口11.2.3AT89S51与逐次比较型12位A/D转换器AD1674的接口11.2.4AT89S51与双积分型A/D转换器MC14433的接口11.389S51单片机与片机与V/F转换器的接口器的接口11.3.1用V/F转换器实现A/D转换的原理11.3.2常用V/F转换器LMX31简介11.3.3V/F转换器与MCS-51单片机接口11.3.4LM331应用举例3内容概要内容概要在单片机测控系统中,被测量被测量的温度、压力、流量、速度等非电物理量非电物理量,须经传感器先转换模拟电信号,必须转换成数字量后才能在单片机中用软件进行处理。模拟量转换成数字量的器件为模拟量转换成数字量的器件为A/D转换器(转换器(ADC)。单片机处理完毕的数字量,有时需转换为转换为模拟信号输出模拟信号输出。器件称为D/A转换器(转换器(DAC)。本章介绍典型的ADC、DAC集成电路芯片,以及与单片机的硬件接口设计及软件设计。411.1AT89S51单片机与单片机与DAC的接口的接口介绍单片机系统如何输出如何输出模拟量模拟量。目前商品化商品化DAC芯片芯片较多,设计者只需要合理的选用只需要合理的选用合适的芯片合适的芯片,了解它们的功能、引脚外特性以及与单片机的接口设计方法即可。由于现在部分的单片机芯片中集成了D/A转换器,位数一般在10位左右,且转换速度也很快,所以单片的DAC开始向高的位数和高转换速度上转变。低端的产品,如8位的D/A转换器,开始面临被淘汰的危险,但是在实验室或涉及某些工业控制方面的应用,低5端的8位DAC以其优异性价比还是具有相当大的应用空间的。11.1.1D/A转换器简介转换器简介1概述概述购买和使用D/A转换器时,要注意D/A转换器选择转换器选择的几个问题。(1)D/A转换器的输出形式转换器的输出形式有两种输出形式两种输出形式。一种是电压输出电压输出,即给D/A转换器输入的是数字量,而输出为电压。另一种是电流输出电流输出。6对电流输出的D/A转换器,如需要模拟电压输出,可在其输出端加一个由运算放大器构成的I-V转换转换电路,将电流输出转换为电压输出。(2)D/A转换器与单片机的接口形式转换器与单片机的接口形式单片机与D/A转换器的连接,早期多采用8位数字量并行传输的并行接口,现在除并行接口外除并行接口外,带有串行口的串行口的D/A转换器品种也不断增多转换器品种也不断增多。除了通用的UART串行口串行口外,目前较为流行的还有I2C串行口串行口和SPI串行口串行口等。所以在选择单片D/A转换器时,要考虑单片机与考虑单片机与D/A转换器的转换器的接口接口形式形式。72主要技术指标主要技术指标指标很多,使用者最关心的几个指标如下。(1)分辨率)分辨率指单片机输入给输入给D/A转换器的转换器的单位数字量的变化单位数字量的变化,所,所引起的引起的模拟量输出的变化模拟量输出的变化,通常定义为定义为输出满刻度值与2n之比(n为D/A转换器的二进制位数)。习惯上用输入数字习惯上用输入数字量的二进制位数表示量的二进制位数表示。位数越多,分辨率越高,即D/A转换器对输入量变化的敏感程度越高。例如,例如,8位的D/A转换器,若满量程输出为10V,根据分辨率定义,则分辨率为则分辨率为10V/2n,分辨率为,分辨率为:810V/256=39.1mV ,即输入的二进制数最低位的变化可引起输出的模拟电压变化39.1mV,该值占满量程的0.391%,常用符号1LSB表示。同理:10位D/A转换1LSB=9.77mV=0.1%满量程12位D/A转换1LSB=2.44mV=0.024%满量程16位D/A转换1LSB=0.076mV=0.00076%满量程使用时,应根据对根据对D/A转换器分辨率转换器分辨率的需要来选定D/A转换器的位数位数。9(2)建立时间)建立时间描述D/A转换器转换快慢转换快慢的一个参数,用于表明转换表明转换时间或转换速度时间或转换速度。其值为从其值为从输入数字量到输出达到终值误输入数字量到输出达到终值误差差 (1/2)LSB时时所需的时间所需的时间。电流输出电流输出的转换时间较短较短,而电压输出电压输出的转换器,由于要加上完成I-V转换的运算放大器的延迟时间,因此转换转换时间要长一些时间要长一些。快速D/A转换器的转换时间可控制在1s以下。10(3)转换精度)转换精度理想情况下,转换精度与分辨率基本一致,位数越多精度越高。但由于电源电压、基准电压、电阻、制造工艺等各种因素存在着误差。严格讲,转换精度与分辨率并不完全一转换精度与分辨率并不完全一致致。只要位数相同,分辨率则相同,但相同位数的不同转但相同位数的不同转换器换器转换精度转换精度会有所不同会有所不同。例如,例如,某种型号的8位DAC精度为0.19%,而另一种型号的8位DAC精度为0.05%。1111.1.2AT89S51与与8位位D/A转换器转换器0832的接口设计的接口设计1DAC0832芯片介绍芯片介绍(1)DAC0832的特性的特性美国国家半导体公司的DAC0832芯片是具有两个输入数据寄存器的8位DAC,它能直接与AT89S51单片机连接,主主要特性如下要特性如下。 分辨率为分辨率为8位。位。 电流输出,建立时间为电流输出,建立时间为1 s。12 可双缓冲输入、单缓冲输入或直接数字输入。可双缓冲输入、单缓冲输入或直接数字输入。 单一电源供电(单一电源供电(+5V+15V)。)。 低功耗,低功耗,20mW。(2)DAC0832的引脚及逻辑结构的引脚及逻辑结构引脚引脚如图图11-1所示,DAC0832的逻辑结构逻辑结构如图图11-2所示。1314图11-1DAC0832的引脚的引脚图15图11-2DAC0832的的逻辑结构构引脚功能:引脚功能:DI0DI7:8位数字信号输入端,位数字信号输入端,与单片机的数据总线与单片机的数据总线P0口相连口相连,用于接收单片机送来的待转换为模拟量的数字量,用于接收单片机送来的待转换为模拟量的数字量,DI7为最高位。为最高位。 :片选端,当片选端,当 为低电平时,本芯片被选中。为低电平时,本芯片被选中。ILE:数据锁存允许控制端,高电平有效。数据锁存允许控制端,高电平有效。:第一级输入寄存器写选通控制,低电平有效。当第一级输入寄存器写选通控制,低电平有效。当 =0,ILE=1, =0时,待转换的数据信号被锁时,待转换的数据信号被锁存到第一级存到第一级8位输入寄存器中。位输入寄存器中。16:数据传送控制,低电平有效。:DAC寄存器写选通控制端,低电平有效。当 =0, =0时,输入寄存器中待转换的数据传入8位DAC寄存器中。IOUT1:D/A转换器电流输出1端,输入数字量全为“1”时,IOUT1最大,输入数字量全为“0”时,IOUT1最小。IOUT2:D/A转换器电流输出2端,IOUT2+IOUT1=常数。Rfb:外部反馈信号输入端,内部已有反馈电阻Rfb,根据需要也可外接反馈电阻。VCC:电源输入端,在+5V+15V范围内。17DGND:数字信号地。AGND:模拟信号地,最好与基准电压共地。DAC0832内部电路如图图11-2所示。“8位输入寄存器位输入寄存器”用于存放单片机送来的数字量,使输入数字量得到缓冲和锁存,由 加以控制;“8位位DAC寄存器寄存器”用于存放待转换的数字量,由控制; “8位位D/A转换电路转换电路”受“8位DAC寄存器”输出的数字量控制,能输出和数字量成正比的模拟电流。因此,需外接I-V转换转换的运算放大器电路,才能得到模拟输出电压模拟输出电压。182AT89S51单片机与单片机与DAC0832的接口电路设计的接口电路设计设计接口电路时,常用单缓冲方式单缓冲方式或双缓冲方式双缓冲方式的单极性输出。(1)单缓冲方式)单缓冲方式指DAC0832内部的两个数据缓冲器两个数据缓冲器有一个有一个处于处于直通直通方方式式,另一个另一个处于受AT89S51单片机控制的锁存方式锁存方式。在实际应用中,如果只有一路模拟量输出,或虽是多路模拟量输出但并不要求多路输出同步的情况下,可采用单缓冲方式。单缓冲方式单缓冲方式的接口电路如图图11-3所示所示。1920图11-3单缓冲方式下冲方式下单片机与片机与DAC0832的接口的接口电路路图图11-3所示的是单极性模拟电压输出电路,由于DAC0832是8位(28=256)的D/A转换器,由基尔霍夫定律列出的方程组可解得0832输出电压vo与输入数字量输入数字量B的关系为显然,输出的模拟电压输出的模拟电压vo和输入的数字量和输入的数字量B以及基准电以及基准电压压VREF成正比成正比,且B为0时,vo也为0,输入数字量为255时,vo为最大的绝对值输出,且不会大于VREF。21图图11-3中,中,和和 接地,接地,故DAC0832的“8位DAC寄存器”(见图11-2)工作于直通方式工作于直通方式。“8位输入寄存器”受和端控制,而且 由译码器输出端FEH送来(也可由P2口的某一条口线来控制)。因此,单片机执行如下两条指令就可在和上产生低电平信号,使DAC0832接收AT89S51送来的数字量。MOVR0,#0FEH;DAC端口地址FEHR0MOVXR0,A;单片机的 和译码器FEH输出端有效22现举例说明单缓冲方式现举例说明单缓冲方式下DAC0832的应用。【例例11-1】DAC0832用作波形发生器波形发生器。试根据图11-3,分别写出产生锯齿波锯齿波、三角波三角波和矩形波矩形波的程序。在图11-3中,运算放大器A输出端Vout直接反馈到Rfb,故这种接线产生的模拟输出电压是单极性的。产生上述三种波形的参考程序如下。 锯齿波的产生锯齿波的产生ORG2000HSTART: MOVR0,#0FEH;DAC地址FEHR0MOVA,#00H;数字量A23LOOP: MOVX R0,A;数字量D/A转换器INCA;数字量逐次加1SJMPLOOP当输入数字量从输入数字量从0开始,逐次加开始,逐次加1进行进行D/A转换转换,模拟量与其成正比输出。当A=FFH时,再加1则溢出清0,模拟输出又为0,然后又重新重复上述过程,如此循环,输出的波形就是锯齿波,如图图11-4所示所示。实际上,每一上升斜边要分成256个小台阶个小台阶,每个小台小台阶暂留时间阶暂留时间为执行后三条指令所需要的时间后三条指令所需要的时间。因此 “INCA”指令后插入NOP指令或延时程序,则可改变锯齿波频率。2425图11-4DAC0832产生的生的锯齿波波输出出 三角波的产生。三角波的产生。ORG2000HSTART: MOVR0,#0FEHMOVA,#00HUP: MOVX R0,A;产生三角波的上升边INCAJNZUPDOWN:DECA;A=0时减1为FFH, 产生三角波的下降边26MOVXR0,AJNZDOWNSJMPUP输出的三角波输出的三角波如图图11-5所示所示。 图图11-5DAC0832产生的三角波输出产生的三角波输出27 矩形波的产生矩形波的产生 ORG2000HSTART: MOVR0,#0FEHLOOP: MOVA,#data1;#data1为上限电平对应的数字量MOVX R0,A;置矩形波上限电平LCALLDELAY1;调用高电平延时程序MOVA,#data2;#data2为下限电平对应的数字量MOVX R0,A;置矩形波下限电平LCALLDELAY2;调用低电平延时程序SJMPLOOP;重复进行下一个周期28图图11-6DAC0832产生的矩形波输出产生的矩形波输出输出的矩形波如矩形波如图图11-6所示所示。 DELAY1、DELAY2为两个延时程序,分别决定输出的矩形波高、低电平时的持续宽度。矩形波频率也可用延时方法改变。29(2)双缓冲方式)双缓冲方式多路的多路的D/A转换转换要求同步输出同步输出时,必须采用双缓冲同必须采用双缓冲同步方式步方式。此方式工作时,数字量的输入锁存和D/A转换输出是分两步分两步完成的。单片机必须通过来锁存待转换的数字量,通过来启动D/A转换(见图图11-2)。因此,双缓冲方式下,DAC0832应该为单片机提供两个I/O端口。AT89S51单片机和DAC0832在双缓冲方式双缓冲方式下的连接如图图11-7所示。3031图图11-7单片机和两片单片机和两片DAC0832的双缓冲方式接口电路的双缓冲方式接口电路由图11-7可见可见,1#DAC0832因 和译码器FDH相连而占有FDH和FFH两个两个I/O端口地址端口地址(由译码器的连接逻辑来决定),而而2#DAC0832的两个端口地址为FEH和FFH。其中,FDH和和FEH分别为1#和和2#DAC0832的数字量输入控制端口地址,而FFH为动D/A转换的端口地址。其余连接如图图11-7所示所示。若把图11-7中DAC输出的模拟电压模拟电压Vx和和Vy来控制来控制X-Y绘图仪绘图仪,则应把Vx和Vy分别加到X-Y绘图仪的X通道通道和Y通道通道,而X-Y绘图仪由X、Y两个方向的步进电机驱动,其中一个电机控制绘笔沿X方向运动;另一个电机控制绘笔沿Y方向运动。32因此对X-Y绘图仪的控制有一基本要求:就是两路模拟信号要同步输出同步输出,使绘制的曲线光滑。如果不同步输出如果不同步输出,例如先输出X通道通道的模拟电压,再输出Y通道通道的模拟电压,则绘图笔先向X方向移动,再向Y方向移动,此时绘制的曲线就是阶梯状的曲线就是阶梯状的。通过本例,也就不难理解DAC设置双缓冲方式的目的所在。33【例例11-2】设AT89S51内部RAM中有两个长度为20的数据块,其起始地址起始地址为分别为addr1和addr2,根据图11-7,编写能把addr1和addrr2中数据从1#和2#DAC0832同步输出的程序。程序中addr1和addr2中的数据,即为绘图仪所绘制曲线的x、y坐标点。由图11-7可知可知,DAC0832各端口地址各端口地址为为:FDH:1#DAC0832数字量输入控制端口FEH:2#DAC0832数字量输入控制端口FFH:1#和2#DAC0832启动D/A转换端口34首先使工作寄存器0区的R1指向addr1;1区的区的R1指向指向addr2;0区工作寄存器的R2存放数据块长度;0区和1区工作寄存器区的R0指向DAC端口地址。程序如下: ORG2000Haddr1DATA20H;定义存储单元addr2 DATA40H;定义存储单元DTOUT:MOVR1,#addr1;0区R1指向addr1MOVR2,#20;数据块长度送0区R2SETBRS0;切换到工作寄存器1区MOVR1,#addr2;1区R1指向addr2CLRRS0;返回工作寄存器0区NEXT:MOVR0,#0FDH;0区R0指向1#DAC数字量控制端口MOVA,R1;addr1中数据送A35MOVXR0,A;addr1中数据送1#DACINCR1;修改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;若送完, 则循环363DAC0832的双极性的电压输出的双极性的电压输出有些场合则要求DAC0832双极性模拟电压输出,下面介绍如何实现。在双极性电压输出的场合下,可以按照图图11-8所示接线。图中,DAC0832的数字量由单片机送来,A1和A2均为运算放大器,vo通过2R电阻反馈到运算放大器A2输入端,G点为虚拟地,其他电路如图11-8所示。由基尔霍夫定律列出的方程组可解得37由上式知,当单片机输出单片机输出给DAC0832的数字量数字量B128时,即数字量最高位b7为1 ,输出的模拟电压vo o为正为正;当单片机输出给DAC0832的数字量B128时,即数字量最高位为0,则vo的输出电压为负的输出电压为负。图图11-8双极性双极性DAC的接法的接法3811.1.3AT89S51与与12位位D/A转换器转换器AD667的接口设计的接口设计8位分辨率不够时位分辨率不够时,可以采用高于8位分辨率的DAC,例如,例如,10位、12位、14位、16位(例如AD669)的DAC。AD667是一种分辨率为分辨率为12位位的并行输入、电压输出型并行输入、电压输出型D/A转换器转换器,建立时间建立时间3 s。输入方式输入方式为双缓冲输入双缓冲输入;输出输出方式方式为电压输出电压输出,通过硬件编程可输出可输出+5V、+10V、 2.5V、 5V和和 10V;内含高稳定的基准电压源,可方便地与4位、8位或16位微处理器接口;双电源工作电压为12V15V。391引脚介绍引脚介绍AD667为28脚双列直插式脚双列直插式封装,图图11-9所示为双列直插式封装引脚图,表表11-1为其引脚说明。图图11-9AD667引脚图引脚图4041(1)内部功能结构)内部功能结构图图11-10所示为AD667内部功能结构框图。42图11-10AD667内部功能内部功能结构框构框图(2)应用特性)应用特性 模拟电压输出范围的配置模拟电压输出范围的配置AD667通过片外引脚的不同电路连接不同电路连接,可获得不同的输出电压量程范围。单极性单极性工作时,可以获得05V和和010V的电压。双极性工作时,可获得 2.5V、 5.5V和和 10V的电压。具体量程配置可由引脚1、2、3、9的不同连接实现,见表表11-2。由于AD667内置的量程电阻与其他元器件具有热跟踪性能,所以AD667的增益增益和偏置漂移非常小偏置漂移非常小。4344 单极性电压输出单极性电压输出图图11-11为010V单极性单极性电压输出电路原理图。45图11-11010V单极性极性电压输出的出的电路原理路原理图在电路运行之前,为保证转换精度,首先要进行为保证转换精度,首先要进行电路电路调零调零和和增益调节增益调节。n电路调零电路调零 数字输入量全为“0”时,调节50k电位器RP1,使其模拟电压输出端(VOUT)电压为0.000V。在大多数情况下,并不需要调零,只要把脚4与脚5相连(接地)即可。n增益调节增益调节 数字输入量全为“1”时,调节100电位器RP2,使其模拟电压输出为9.9976V,即满量程的10.000V减去1LSB(约为2.44mV)所对应的模拟输出量。46 双极性电压输出双极性电压输出图图11-12为-5V+5V双极性电压输出双极性电压输出的电路。在电路运行之前,为保证转换精度,首先要进行偏置调节偏置调节和增益增益调节调节。n 偏置调节偏置调节 数字输入量全为“0”时,调节100的电位器RP1,使其模拟电压输出端电压为5.000V。n 增益调节增益调节 数字输入量全为“1” ,调节电位器RP2,使其模拟输出电压值为4.9976V,即正满量程电压输出5.000V减去1LSB(约为2.44mV)所对应的模拟输出量。4748图11-125V双极性双极性电压输出出电路原理路原理图 内部内部/外部基准电压源的使用外部基准电压源的使用AD667有内置低噪声基准电源内置低噪声基准电源,其绝对精度和温度系数都是通过激光修正,具有长期稳定性。片内基准电源片内基准电源可提供片内D/A转换器所需的基准电流,还可通过缓冲电路驱动外部电路,一般可向外部负载提供0.1mA的驱动电流。 接地与动态电容的接法接地与动态电容的接法AD667把模拟地模拟地AGND与电源地与电源地PGND分开分开,可以减少器件的低频噪声和增强高速性能。把地回路分开的目的是为了尽量减少低电平信号路径中的电流。49AGND是输出放大器中的地端,应与系统中的模拟输出电压基准地直接相连,任何由输出放大器驱动的负载都应该接在模拟地引脚上。电源地电源地PGND可以与模拟电源的接地点就近连接。最后AGND与PGND在一点上进行连接,一般连接到电源地PGND上。另外,AD667的电源引脚到模拟地引脚间电源引脚到模拟地引脚间应加上适当的去耦电容去耦电容。在输出放大器反馈电阻两端加一个20pF的小电容,可以明显改善输出放大器的动态性能。50 数字输入控制与数据代码数字输入控制与数据代码AD667的总线接口逻辑由4个独立的可寻址锁存器个独立的可寻址锁存器组成,其中有3个个4位的输入数据锁存器位的输入数据锁存器(第一级锁存器)和1个个12位的位的DAC锁存器锁存器(第二级锁存器)。利用3个4位锁存器可以直接从4位、8位或16位微处理器总线分次或一次加载12位数字量;一旦数字量被装入12位的输入数据锁存器,就可以把12位数据传入第二级的DAC锁存器,这种双缓冲结构可以避免产生错误的模拟输出。4个锁存器个锁存器由4个地址输入个地址输入A0A3和控制,所有的控制都是低电平有效,对应关系见表表11-3。5152所有锁存器都是所有锁存器都是电平触发电平触发,也就是说,当对应的控制信号都有效时,锁存器输出跟踪输入数据;当任何一个控制信号无效时,数据就被锁存。它允许一个以上的锁存器被同时锁存。建议建议任何未使用的数据和控制引脚任何未使用的数据和控制引脚最好与电源地相连,以改善抗噪声干扰特性。AD667使用正逻辑的二进制输入编码,大于大于2.0V的输入电压表示逻辑“1”,而小于小于0.8V的输入电压表示逻辑“0”。53单极性输出时单极性输出时,输入编码采用直接二进制编码,全全“0”数据输入数据输入000H产生零模拟输出;全全“1”数据输入数据输入FFFH产生比满量程少1LSB的模拟输出。双极性输出时双极性输出时,输入编码采用偏移二进制编码,数据输入为000H时,产生负的满量程输出;数据输入为数据输入为FFFH时,产生比满量程少1LSB的模拟输出;数据输入为800H时,模拟输出为0。其中1LSB为最低位对应的模拟电压。双极性输出时输入与输出关系如图图11-13所示,输入数字输入数字量量N与输出模拟电压与输出模拟电压VOUT的关系为的关系为:54式中,VR为输出电压量程。55图11-13双极性双极性输出与出与输入关系入关系 与单片机接口的数据格式与单片机接口的数据格式AD667与单片机接口的数据格式为左对齐左对齐或右对齐右对齐的数据格式。左对齐左对齐数据格式为:右对齐右对齐数据格式为:562AD667与与AT89S51单片机的接口单片机的接口图图11-14所示为AT89S51单片机与AD667的接口电路。 57图11-14AD667与与AT89S51单片机的接口片机的接口电路路单片机把AD667所占的所占的3个端口个端口地址视为外部数据存视为外部数据存储器的储器的3个单元个单元,对其进行选通,完成对AD667数据传送锁存及转换的功能。假定低低8位数据位数据存20H单元,高高4位位数据存21H的低4位,D/A转换的程序如下程序如下:MOVA,20HMOVDPTR,#7FFEHMOVX DPTR,A;低8位进第一级锁存器MOVA,21HMOVDPTR,#7FFDHMOVX DPTR,A;高4位进第一级锁存器MOVDPTR,#7FFBHMOVX DPTR,A;启动第二级锁存器RET5811.1.4AT89S51与串行输入的与串行输入的12位位D/A转换器转换器AD7543的接口设计的接口设计1.AD7543简介简介美国AD公司为异步串行口设计的12位位价廉D/A转换器。直接与AT89S51的串行口相连,结构如图图11-15所示所示。AD7543片内由12位位串行输入并行输出移位寄存器串行输入并行输出移位寄存器(寄存器A)和12位位DAC输入寄存器输入寄存器(寄存器B)组成。在选通信号的前沿或后沿(可选择)定时把SRI引脚上的串行数据装入寄存器A,一旦寄存器A装满,在加载脉冲的控制下,寄存器A的数据便装入寄存器B中。5960图11-15AD7543的片内的片内结构构AD7543的引脚如图图11-16所示所示,功能如下:OUT1:AD7543的电流输出引脚1。OUT2:AD7543的电流输出引脚2。AGND:模拟地。STB1:寄存器A的选通控制信号。:寄存器B加载1输入。当 和 为低电平时,寄存器A的内容送到寄存器B。SRI:单片机输入到寄存器A的串行数据输入引脚。 :寄存器B加载2输入。61:寄存器A选通3输入。STB4:寄存器A选通4输入。DGND:数字地。:寄存器B清除输入,用于异步地将寄存器B复位至000H。VDD:+5V电源。VREF:基准电压输入。Rfb:DAC反馈输入引脚。6263图11-16AD7543的引脚的引脚2.AD7543与与AT89S51的接口的接口接口电路如图图11-17所示,图中只给出与D/A转换有关的电路。64图11-17AD7543与与AT89S51的接口的接口电路路图图11-17中的单片机串行口直接与单片机串行口直接与AD7543相连相连,串行口选用方式方式0,其TXD端移位脉冲的负跳变端移位脉冲的负跳变将RXD输出输出的串行位数据移入AD7543,利用地址译码器的输出信号产生 ,从而将AD7543移位寄存器A中的内容移入到寄存器B中,并启动启动D/A转换转换。由于AD7543的12位数据是高至低位数据是高至低逐位串行输入的,而AT89S51的串行口方式串行口方式0是低至高是低至高逐位串行输出的,因65此在数据传输到AD7543之前必须重新装配。下面是单片单片机机的驱动程序的驱动程序,假设AD7543的端口地址为“addrH”,数据缓冲器单元地址为dbufh(高4位)和dbufl(低8位)。OUTDA:MOVA,#dbufh;取高4位数据ACALL ASMB;调用装配子程序MOVSBUF,A;串行口输出MOVA,#dbufl;取低8位数据66ACALL ASMB;调用装配子程序MOVSBUF,A;串行口输出MOVDPTR,#addrH;AD7543端口地址送数据指针MOVX DPTR,A;将AD7543寄存器A送寄存器BRETASMB: MOVR6,#00H;装配子程序MOVR7,#08HCLRC67AL0:RLCAXCHA,R6RRCAXCHA,R6DJNZR7,AL0XCHA,R6RET6811.2AT89S51单片机与单片机与ADC的接口的接口11.2.1A/D转换器简介转换器简介A/D转换器把模拟量模拟量转换转换成数字量成数字量,以便于单片机进行数据处理。随着超大规模集成电路技术的飞速发展,A/D转换器的新设计思想和制造技术层出不穷。为满足各种不同的检测及控制任务的需要,大量结构不同、性能各异的A/D转转换芯片应运而生换芯片应运而生。691A/D转换器概述转换器概述目前单片的ADC芯片较多,对设计者来说,只需合理的选择芯片即可。现在部分的单片机片内集成了部分的单片机片内集成了A/D转换转换器器,在片内A/D转换器不能满足需要,还是需外扩。另外作为扩展A/D转换器的基本方法,读者还是应当掌握。尽管A/D转换器的种类很多种类很多,但目前广泛应用在单片机应用系统中的主要有逐次比较型转换器逐次比较型转换器和双积分型转换双积分型转换器器,此外 -式转换器式转换器逐渐得到重视和较为广泛的应用。逐次比较型逐次比较型A/D转换器转换器,在精度、速度和价格上都适中,是最常用的最常用的A/D转换器转换器。70双积分型双积分型A/D转换器转换器,具有精度高、抗干扰性好、价格低廉等优点,与逐次比较型A/D转换器相比,转换速度较慢,近年来在单片机应用领域中也得到广泛应用得到广泛应用。 - 式式ADC具有积分式与逐次比较型ADC的双重优点。它对工业现场的串模干扰具有较强的抑制能力,不亚于双积分ADC,它比双积分ADC有较高的转换速度,与逐次比较型ADC相比,有较高的信噪比,分辨率高,线性度好,不需要采样保持电路。由于上述优点,式ADC得到了重视,已有多种已有多种 式式A/D芯片可供用户选用芯片可供用户选用。71A/D转换器按照输出数字量的有效位数分为按照输出数字量的有效位数分为4位、位、8位、位、10位、位、12位、位、14位、位、16位并行输出位并行输出以及BCD码输出码输出的 3位半、4位半、5位半等多种。目前,除并行输出A/D转换器外,随着单片机串行扩展方式的日益增多,带有带有同步同步SPI串行接口串行接口的的A/D转换器转换器的使用也逐渐增多的使用也逐渐增多。串行输出的A/D转换器具有占用端口占用端口线少、使用方便、接口简单线少、使用方便、接口简单等优点,因此,读者要给予足够重视。较为典型的串行较为典型的串行A/D转换器为美国转换器为美国TI公司公司的TLC549(8位)、TLC1549(10位)以及TLC1543(10位)和TLC2543(12位)。72单片机与串行A/D转换器接口设计,涉及同步串行口SPI的内容,本章不做介绍,感兴趣的读者,请见第12章。本章仅介绍单片机与各种并行输出单片机与各种并行输出A/D转换器转换器的接口设计。A/D转换器按照转换速度可大致分为转换器按照转换速度可大致分为超高速超高速(转换时间1ns)、高速高速(转换时间1s)、中速中速(转换时间1ms)、低速低速(转换时间1s)等几种不同转换速度的芯片。为适应系统集成的需要,有些转换器还将为适应系统集成的需要,有些转换器还将多路转换多路转换开关、时钟电路、基准电压源、开关、时钟电路、基准电压源、二十进制译码器进制译码器和和转换转换电路电路集成在一个芯片内集成在一个芯片内,为用户提供很多方便。732A/D转换器的主要技术指标转换器的主要技术指标(1)转换时间和转换速率)转换时间和转换速率A/D完成一次转换所需要的时间所需要的时间。转换时间的倒数为转换速率。(2)分辨率)分辨率在A/D转换器中,分辨率是衡量A/D转换器能够分辨出能够分辨出输入模拟量最小变化程度的技术指标输入模拟量最小变化程度的技术指标。分辨率取决于A/D转换器的转换器的位数位数,所以习惯上用输出的二进制位数或BCD码位数表示。例如,例如,A/D转换器AD1674的满量程输入电压为5V,可输出12位二进制数,即用212个数进行量化,74其分辨率分辨率为为1LSB,也即5V/212=1.22mV,其分辨率为分辨率为12位位,或A/D转换器能分辨出输入电压分辨出输入电压1.22mV的变化。又如,双积分型输出BCD码的A/D转换器MC14433,其满量程输入电压为2V,其输出最大的十进制数为1999,分辨率为三位半(三位半(BCD码),码),如果换算成二进制位数表示,其分辨率约为分辨率约为11位位,因为1999最接近于211=2048。量化过程引起的误差称为量化误差量化误差。是由于有限位数有限位数字量对模拟量进行量化字量对模拟量进行量化而引起的误差。理论上规定为一个单位分辨率的-1/2-+1/2LSB,提高A/D位数既可以提高分辨率,又能够减少量化误差。75(3)转换精度)转换精度A/D转换器的转换精度定义为一个实际A/D转换器与一个理想A/D转换器在量化值上的差值,可用绝对误差或相对误差表示。11.2.2AT89S51与逐次比较型与逐次比较型8位位A/D转换器转换器ADC0809的接口的接口1ADC0809引脚及功能引脚及功能逐次比较型8路模拟输入、8位数字量输出的A/D转换器,其引脚如图图11-18所示所示。7677图11-18ADC0809的引脚的引脚图共共28引脚,双列直插式封装引脚,双列直插式封装。引脚功能如下:nIN0IN7:8路模拟信号输入端。nD0D7:转换完毕的8位数字量输出端。nA、B、C与与ALE:控制8路模拟输入通道的切换。A、B、C分别与单片机的三条地址线相连,三位编码对应三位编码对应8个通道地个通道地址端口址端口。C、B、A=000111分别对应IN0IN7通道的地址。各路模拟输入之间切换由软件改变C、B、A引脚的编码来实现。78OE、START、CLK:OE为输出允许端,START为启动信号输入端,CLK为时钟信号输入端。VR(+)、)、VR():):基准电压输入端。2ADC0809结构及转换原理结构及转换原理结构如图图11-19所示所示。采用逐次比较法完成A/D转换,单一的+5V电源供电。片内带有锁存功能的8选1模拟开关,由C、B、A的编码的编码来决定所选的通道所选的通道。完成一次转换需100 s左右左右(转换时间与CLK脚的时钟频率有关),具有输出TTL三态锁存缓冲器,可直接连到单片机数据总线上。通过适当的外接电路,ADC0809可对05V的模拟信号进行转换。7980图11-19ADC0809结构框构框图3AT89S51单片机与单片机与ADC0809的接口的接口先了解单片机如何控制如何控制ADC开始转换开始转换,如何得知转换如何得知转换结束结束以及如何读入转换结果如何读入转换结果的问题。控制ADC0809过程如下:先用指令选择先用指令选择ADC0809的的一个模拟输入通道一个模拟输入通道,当执行“MOVXDPTR,A”时,单片机的信号有效信号有效,从而产生一个启动脉冲启动脉冲。信号给ADC0809的START脚,开始对选中通道转换对选中通道转换。当转换结转换结束后束后,ADC0809发出转换结束转换结束EOC(高电平)信号(高电平)信号,该信号可供单片机查询,也可反相后作为向单片机发出的中断请求信号。81当执行指令执行指令“MOVXA,DPTR”时,单片机发出读控制信号,通过逻辑电路控制OE端为高电平,把转转换完毕的数字量读入到单片机的累加器换完毕的数字量读入到单片机的累加器A中。中。单片机读取ADC的转换结果时,可采用查询查询和中断控中断控制制两种方式。查询方式查询方式是在单片机把启动信号送到ADC之后,执行其他程序,同时对ADC0809的EOC脚不断进行检测,以查询ADC变换是否已经结束,如查询到变换已经结束,则读入转换完毕的数据。82中断控制方式中断控制方式是在启动信号送到ADC之后,单片机执行其他程序。ADC0809转换结束并向单片机发出中断请求信号时,单片机响应此中断请求,进入中断服务程序,读入转换完毕的数据。中断控制方式效率高,所以特别适合于转换时间较长的ADC。(1)查询方式)查询方式ADC0809与AT89S51的查询式接口查询式接口如图图11-20所示所示。8384图11-20ADC0809与与AT89S51查询式接口式接口图图11-20所示所示的基准电压基准电压是提供给A/D转换器在转换时所需要的基准电压,这是保证转换精度的基本条件。基准基准电压要单独用高精度稳压电源供给电压要单独用高精度稳压电源供给,其电压的变化要小于电压的变化要小于1LSB。否则当被变换的输入电压不变,而基准电压的变化大于1LSB,也会引起A/D转换器输出的数字量变化。由于ADC0809片内无时钟,可利用单片机提供的地址锁存允许信号ALE经经D触发器二分频后获得触发器二分频后获得,ALE引脚的频率是AT89S51单片机时钟频率的1/6(但要注意,每当访问外部数据存储器时,将少一个ALE脉冲)。如果单片机时钟频率采用6MHz,则ALE引脚的输出频率为1MHz,85再二分频后为二分频后为500kHz,符合ADC0809对时钟频率的要求。当然,也可采用独立的时钟源输出独立的时钟源输出,直接加到ADC的CLK脚。由于ADC0809具有输出三态锁存器,其8位数据输出引脚D0D7可直接与单片机的P0口相连。地址译码引脚C、B、A分别与地址总线的低三位A2、A1、A0相连,以选通IN0IN7中的一个通道。86在启动启动A/D转换转换时,由单片机的写信号和P2.7控制ADC的地址锁存和转换启动,由于由于ALE和和START连在连在一起一起,因此ADC0809在锁存通道地址的同时,启动并进行转换。在读取转换结果在读取转换结果时,用低电平的读信号 和P2.7引脚经一级“或非门”后产生的正脉冲作为OE信号,用来打开三态输出锁存器。下面的程序是采用软件延时采用软件延时的方式,分别对分别对8路模拟路模拟信号轮流采样一次信号轮流采样一次,并依次把结果转储到数据存储区的转换程序。87MAIN:MOVR1,#data;置数据区首地址MOVDPTR,#7FF8H;端口地址送DPTR, ;P2.7=0, 且指向通道IN0MOVR7,#08H;置通道个数LOOP: MOVXDPTR,A;启动A/D转换MOVR6,#0AH;软件延时, 等待转换结束DELAY: NOPNOPNOPDJNZR6,DELAYMOVX A,DPTR;读取转换结果88MOVR1,A;存储转换结果INCDPTR;指向下一个通道INCR1;修改数据区指针DJNZR7,LOOP;8个通道全采样完;否?未完则继续89(2)中断方式)中断方式ADC0809与AT89S51单片机的中断方式接口电路只需要将将图图11-20所示的所示的EOC引脚经过一引脚经过一“反门反门”连接到连接到AT89S51单片机的外中断输入引脚单片机的外中断输入引脚 即可。采用中断方式可大大节省单片机的时间。当转换结束转换结束时,发出时,发出EOC脉冲脉冲向单片机提出中断申请提出中断申请,单片机响应中断请求,由外部中断外部中断1的中断服务程序读的中断服务程序读A/D结果结果,并启动ADC0809的下一次转换,外部中断外部中断1采用跳沿触发跳沿触发方式。90参考程序:参考程序:INIT1:SETBIT1;选择外部中断1为跳沿触发方式SETBEA;总中断允许SETBEX1;允许外部中断1中断MOVDPTR,#7FF8H;端口地址送DPTRMOVA,#00HMOVXDPTR,A;启动ADC0809对IN0通道转换;完成其他的工作中断服务程序:中断服务程序: PINT1: MOVDPTR,#7FF8H;读取结果送内部RAM30HMOVX A,DPTR91MOV30H,AMOVA,#00H;启动ADC0809对IN0的转换MOVX DPTR,ARETI9211.2.3AT89S51与逐次比较型与逐次比较型12位位A/D转换器转换器AD1674的接口的接口某些应用中,8位位ADC常常不够常常不够,必须选择分辨率大选择分辨率大于于8位位的芯片,如10位、位、12位、位、16位位A/D转换器,由于10位、16位接口与12位类似,因此仅以常用的12位A/D转换器AD1674为例介绍。 1AD1674简介简介美国AD公司12位逐次比较型位逐次比较型A/D转换器转换器。转换时间为转换时间为10 s,单通道最大采集速率最大采集速率100kHz。为28引脚双列直插引脚双列直插式封装式封装,其引脚如图图11-21所示所示。93图11-21AD1674的引脚的引脚94由于芯片内有三态输出缓冲电路,因而可直接与各种典型的8位或16位的单片机相连,AD1674片内集成有高精度的基准电压源和时钟电路,从而使该芯片在不需要任何外加电路和时钟信号的情况下完成A/D转换,使用非常方便。AD1674是AD574A/674A的更新换代产品。它们的内部结构和外部应用特性基本相同,引脚功能与AD574A/674A完全兼容,可以直接替换AD574、AD674使用,但最大转换时间由25s提高到10s。95与AD574A/674A相比相比,AD1674的内部结构更加紧凑的内部结构更加紧凑,集成度更高,工作性能(尤其是高低温稳定性)更好集成度更高,工作性能(尤其是高低温稳定性)更好,而且可以使设计板面积大大减小,因而可以降低成本并提高系统的可靠性。目前,片内带有采样保持器的AD1674正以其优良的性能价格比,取代AD574A和AD674A。AD1674共有6个控制引脚个控制引脚,功能如下。 :芯片选择。=0时,芯片被选中。96CE:片启动信号。当CE=1时,究竟是启动转换还是读取结果与R/有关,见表表11-4。R/:读出/转换控制信号。12/:数据输出格式选择信号引脚。当12/=1时,12条数据线并行输出转换结果;当12/=0时,与A0配合,转换结果分两次输出,即只有高8位或低4位有效。注意:注意:12/端与TTL电平不兼容,故只能直接接至+5V或0V上。97A0:字节选择控制。在转换期间在转换期间:当A0=0时,AD1674进行全12位转换。当A0=1时,仅进行8位转换。在读出期间在读出期间,与12/=0配合:当A0=0时,高8位数据有效;当A0=1时,低4位数据有效,中间4位为0,高4位为高阻态。98当采用两次读出的采用两次读出的12位数据位数据遵循左对齐左对齐格式,如下所示:AD1674的上述5个控制信号组合的真值表个控制信号组合的真值表如表表11-4。STS:输出状态信号引脚。 转换开始时转换开始时,STS为高电平,转换过程中转换过程中保持高电平。 转换完成时转换完成时,为低电平。STS可以作为状态信息被CPU查询,也可用它的下跳沿向单片机发出中断申请,通知单片机A/D转换已完成,可读取转换结果。99100除上述6个控制引脚外,其他引脚的功能如下:REFOUT:+10V基准电压输出。REFIN:基准电压输入。只有由此脚把从“REFOUT”脚输出的基准电压引入到AD1674内部的12位DAC,才能进行正常的A/D转换。BIPOFF:双极性补偿。对此引脚进行适当的连接,可实现单极性或双极性的输入。10VIN:10V或5+5V模拟信号输入端。10120VIN:20V或10+10V模拟信号输入端。DGND:数字地。各数字电路器件及“+5V”电源的地。AGND:模拟地。各模拟电路器件及“+15V”、“15V”电源地。VCC:正电源端,为+12+15V。VEE:负电源端,为1215V。2AD1674的工作特性的工作特性AD1674的工作状态由5个控制信号个控制信号CE、R/、12/、A0决定,见表表11-4。102由表11-4知:当CE=1, =0同时满足时,AD1674才能处于工处于工作状态作状态。当AD1674处于工作状态时,R/=0时启动A/D转换;R/=1时读出转换结果。12/和和A0端用来控制转换字长和数据格式。A0=0时启动转换,按完整的12位A/D转换方式工作; A0=1启动转换,则按8位A/D转换方式工作。当当AD1674处于数据读出工作状态处于数据读出工作状态(R/=1)时,A0和12/成为数据输出格式控制端。10312/=1时,对应12位并行输出;12/=0时,则对应8位双字节输出。其中A0=0时输出高8位,A0=1时输出低4位,并以4个0补足尾随的4位。注意注意,A0在转换结果数据输出期间不能变化。如要求AD1674以独立方式独立方式工作,只要将CE、12/端接入+5V,和A0接至0V,将R/作为数据读出和启动转换控制。R/=1时,数据输出端出现被转换后的数据; R/=0时,即启动一次A/D转换。在延时0.5s后,STS=1表示转换正在进行。经过一个转换周期后,STS跳回低电平,表示A/D转换完毕,可读取新的转换数据。104注意,注意,只有在CE=1且 =0时才启动转换,在启动信号有效前,R/必须为低电平,否则将产生读取数据的操作。3AD1674的单极性和双极性输入的电路的单极性和双极性输入的电路通过改变AD1674引脚8、10、12的外接电路,可使AD1674实现单极性输入和双极性输入模拟信号的转换。(1)单极性输入电路)单极性输入电路图图11-22(a)为单极性输入电路,可实现输入信号010V或020V的转换。当输入信号为输入信号为010V时,应从10VIN引脚输入(引脚13);输入信号为输入信号为020V时,应从105图11-22AD1674模模拟输入入电路的外部接法路的外部接法10620VIN引脚输入(引脚14)。输出的转换结果D的计算计算公式公式为:D=4096VIN / VFS或或VIN= DVFS/4096式中VIN为模拟输入电压,VFS为满量程电压。若从若从10VIN脚输入脚输入,VFS=10V,LSB=10/409624mV;若若从从20VIN脚输入脚输入;VFS=20V,1LSB=20/409649mV。图中的电位器RP2用于调零,即当VIN=0时,输出数字量D为全0。单片机系统模拟信号的地线应与9脚AGND相连,使其地线的接触电阻尽可能小。107(2)双极性输入电路)双极性输入电路图图11-22(b)为双极性转换电路双极性转换电路,可实现输入信号10+10V或0+20V的转换。图中电位器RP1用于调零。双极性输入时,输出的转换结果D与模拟输入电压VIN之间的关系为:D=2048(1+VIN/ VFS)或或VIN=(D/ 20481)VFS/2式中VFS为满量程电压。108上式求出的D为12位偏移二进制码,把D的最高位求反便得到补码。补码对应输入模拟量的符号和大小。同样,从AD1674读出的或代入到上式中的数字量D也是偏移二进制码。例如,例如,当模拟信号从10VIN引脚输入,则VFS=10V,若读得D=FFFH,即111111111111B=4095,代入式中,可求得VIN=4.9976V。1094AT89S51单片机与单片机与AD1674的接口的接口图图11-23所示AD1674与与AT89S51单片机的接口电路单片机的接口电路。由于AD1674片内含有高精度的基准电压源和时钟电路,从而使AD1674无需任何外加电路和时钟信号的情况下即可完成A/D转换,使用非常方便。电路采用双极性输入接法采用双极性输入接法,可对5V+5V或10V+10V模拟信号进行转换。转换结果的高转换结果的高8位位从DB11DB4输出,低低4位位从DB3DB0输出,即A0=0时,读取结果的高8位;当A0=1时,读取结果的低4位。若遵循左对若遵循左对齐齐的原则,DB3DB0应接单片机的P0.7P0.4。110STS引脚引脚接单片机的接单片机的P1.0引脚引脚,采用查询方式读取转换结果。当单片机执行对外部数据存储器写指令,使CE=1, =0,R/=0,A0=0时,启动A/D转换。当单片机查询到P1.0引脚为低电平时,转换结束,单片机使CE=1, =0, R/=1,A0=0,读取结果高8位;CE=1, =0, R/=1,A0=1,读取结果的低4位。该接口电路完成一次该接口电路完成一次A/D转换的查询方式的程序如下转换的查询方式的程序如下(高8位转换结果存入R2中,低4位存入R3中,遵循左对齐原则):111112图11-23AD1674与与AT89S51单片机的接口片机的接口电路路AD1674:MOV R0,0F8H;端口地址送R0MOVX R0,A;启动AD1674进行转换SETBP1.0;置P1.0为输入LOOP: NOPJBP1.0,LOOP;查询转换是否结束INCR0;使R/1,准备读取结果MOVX A,R0;读取高8位转换结果MOVR2,A;高8位转换结果存入R2中INCR0;使R/1,A01INCR0MOVXA,R0;读取低4位转换结果MOVR3,A;低4位转换结果存入R3中113上述程序是按查询方式设计的,图图11-23的STS引脚引脚也可接单片机的外中断输入引脚接单片机的外中断输入引脚,即采用中断方式读取转换结果。读者可自行编制采用中断方式读取转换结果的程序。AD1674接口电路全部连接完毕后,在模拟输入端输入一稳接口电路全部连接完毕后,在模拟输入端输入一稳定的标准电压,启动定的标准电压,启动A/D转换,转换,12位数据亦应稳定位数据亦应稳定。如果变化较大,说明电路稳定性差,则要从电源及接地布线等方面查找原因。AD1674的电源电压要有较好的稳定性和较小的噪声的电源电压要有较好的稳定性和较小的噪声,噪声大的电源会产生不稳定的输出代码,所以在设计印制电路板时,要注意电源去耦、布线以及地线的布置。114这些问题对于位数较多的这些问题对于位数较多的ADC与单片机接口,要给予与单片机接口,要给予重视。重视。电源要很好滤波,还要避开高频噪声源。所有的电源引脚都要用去耦电容所有的电源引脚都要用去耦电容。对+5V电源,去耦电容直接接在脚1和脚15之间;且VCC和VEE要通过电容耦合到脚9,去耦电容是一个4.7F的钽电容再并联一个0.1F的陶瓷电容。5更高分辨率的更高分辨率的A/D转换器的选用转换器的选用如果需要更高分辨率的ADC,可采用14位的位的A/D转换转换器器AD7685或16位的位的A/D转换器转换器AD7656。AD7656是6通道、逐次逼近型ADC,每通道可达250kSPS的采样率,可对模拟输入电压10+10V或0+20V进行A/D转换。115片内包含一个片内包含一个2.5V内部基准电压源和基准缓冲器内部基准电压源和基准缓冲器。该器件仅有160mW的功耗,比同类的双极性输入ADC的功耗降低了60。AD7656包含一个低噪声、宽带采样保持放大器包含一个低噪声、宽带采样保持放大器,以便处理输入频率高达8MHz的信号。还具有高速并行和串高速并行和串行接口行接口,可以与各种微控制器或数字信号处理器(DSP)连接。在串行接口方式下在串行接口方式下,能提供一个菊花链连接方式,以便把多个ADC连接到一个串行接口上。AD7656采用具有ADI公司专利技术的iCMOS(工业CMOS)工艺。iCMOS器件能承受高电源电压,同时提高性能、显著降低功耗和缩 116小封装尺寸,所以非常适合在继电保护、电机控制等非常适合在继电保护、电机控制等工业领域使用工业领域使用,有望成为电力继电保护的新一代产品。读者如对AD7656的应用感兴趣,可查阅相关的技术资料。11.2.4AT89S51与双积分型与双积分型A/D转换器转换器MC14433接口接口双积分型双积分型ADC由于两次积分时间比较长,所以由于两次积分时间比较长,所以A/D转转换速度慢,换速度慢,但精度可以做得比较高精度可以做得比较高;对周期变化的干扰信周期变化的干扰信号积分为零号积分为零,抗干扰性能也较好。117双积分型双积分型A/D转换器集成电路芯片很多转换器集成电路芯片很多,常见的有3 3位半位半A/D转换器MC14433和 4位半位半A/D转换器ICL7135。具有精度高、抗干扰性能好等优点,其缺点为转换速度慢,约110次/秒。在不要求高速转换的数据采集系统中,得到了广泛应用。1MC14433A/D转换器简介转换器简介被转换电压量程转换电压量程为199.9mV或1.999V两档。转换完的数据以BCD码的形式分码的形式分4次次送出送出(最高位输出内容特殊,详见表11-5)。引脚如图图11-24所示所示。下面介绍各引脚的功能。118119图11-24MC14433引脚引脚图(1)电源及共地端)电源及共地端VDD:主工作电源,+5V。VEE:模拟部分的负电源端,接-5V。VAG:模拟地端。VSS:数字地端。VR:基准电压输入端。(2)外接电阻及电容端)外接电阻及电容端R1:积分电阻输入端,转换电压转换电压VX=2V时, R1=470;VX=200mV时,R1=27k。120C1:积分电容输入端,C1一般取0.1F。R1/C1:R1与C1的公共端CLKI、CLKO:外接振荡器时钟调节电阻RC,RC一般取470左右。(3)转换启动)转换启动/结束信号端结束信号端EOC:转换结束信号输出端,正脉冲有效。DU:启动新的转换,若DU与EOC相连,每当A/D转换结束后,自动启动新的转换。121(4)过量程信号输出端)过量程信号输出端:当|VX|VR时,过量程 输出低电平。(5)位选通控制端)位选通控制端DS4DS1:分别为个、十、百、千位输出的选通脉冲个、十、百、千位输出的选通脉冲,正脉冲有效。DS1对应千位,DS4对应个位。每个选通脉冲宽度为18个时钟周期,两个相应脉冲之间间隔为2个时钟周期,如图图11-25所示所示。122123图11-25MC14433选通脉冲通脉冲时序序图(6)BCD码输出端码输出端Q3Q0:BCD码数据输出线。其中,Q3为最高位,Q0为最低位。当DS2、DS3和DS4选通期间,输出3位完整的BCD码数,但在DS1(千位)选通期间,即DS1=1期间,输出端Q3Q0除了表示个位的个位的0或或1外,还表示被转换电压的正负极性正负极性(Q2=1为正)和欠量程或过量程,其具体含义见表表11-5。124125由由表表11-5可知:可知:(1)Q3表示最高位千位千位(1/2位)。Q3=0对应“1”,反之对应“0”。(2)Q2表示极性。Q2=1为正极性,Q2=0为负极性。(3)Q0=1表示过量程过量程或欠量程欠量程。当Q3=0时,表示过量程;当Q3=1时,表示欠量程。1262MC14433与与AT89S51单片机的接口单片机的接口转换结果是动态分时输出的动态分时输出的BCD码码,Q0Q3为千、百、十、个位的BCD码,而DS1DS4分别为千、百、十、千、百、十、个位个位的选通信号,由于转换结果输出不是总线式的并行输出,因此AT89S51单片机只能通过并行I/O接口或扩展I/O接口与其相连。下面介绍MC14433与与AT89S51单片机单片机P1口直接相连口直接相连的接口电路的接口电路,如图图11-26所示所示。图11-26MC1403为+2.5V精密集成电压基准源精密集成电压基准源,分压后作为A/D转换基准电压。DU端与端与EOC端端相连即选择连127128图11-26MC14433与与AT89S51单片机的接口片机的接口电路路续转换方式,每次转换结果都送至输出寄存器。EOC是A/D转换结束的输出标志信号。AT89S51单片机读取读取A/D转换结果转换结果可以采用中断方式中断方式或查查询方式询方式。采用中断方式时,EOC端与AT89S51单片机外部中断输入端或相连。采用查询方式时,EOC端可与AT89S51单片机的任意I/O口线相连。若选用中断方式读取选用中断方式读取MC14433的结果的结果,应选用跳沿触发跳沿触发方式方式。如果将A/D转换的结果存放到AT89S51单片机内部RAM的20H、21H单元中,则数据存放的格式数据存放的格式如图图11-27所示所示。129图图11-27数据存放格式数据存放格式读取读取A/D转换结果的程序设计转换结果的程序设计初始化程序初始化程序首先是总中断允许,外部中断1中断请求允许,置外部中断1为跳沿触发方式。每次A/D转换结束,都向单片机请求中断,单片机响应中断,执行中断服务程序,读取A/D转换的结果。130参考程序如下:ORG001BHLJMPPINT1 ;跳向外部中断1的中断服务程序ORG0100HINITI:SETBIT1;初始化,外中断1为跳沿触发方式 MOVIE,84H;总中断允许,外部中断1中断允许PINT1: MOVA,P1;外部中断1服务程序JNBAcc.4,PINT1;等待DS1选通信号的到来JBAcc.0,Per;过、欠量程?是则转Per处理JBAcc.2,PL1;结果正负?为正, 跳转PL1SETB07H;结果为负, 符号位07H置“1”AJMPPL2131PL1:CLR07H;结果为正,符号位清“0”PL2:JBAcc.3,PL3;千位的结果,千位为0,跳转PL3SETB04H;千位为1,04H位置“1”AJMPPL4PL3:CLR04H;千位为0,04H位清“0”PL4:MOVA,P1;JNBAcc.5,PL4;等待百位的选通信号DS2MOVR0,20H;指针指向20H单元XCHD A,R0;百位20H单元低4位PL5:MOVA,P1JNBAcc.6,PL5;等待十位的选通信号DS3的到来SWAP A;读入十位,高低4位交换INCR0;指针指向21H单元MOVR0,A;十位的BCD码送入21H高4位132PL6:MOVA,P1JNBAcc.7,PL6;等待个位选通信号DS4的到来XCHD A,R0;个位送入21H单元的低4位RETIPer:SETB10H;置过量程、欠量程标志RETI;中断返回MC14433外接的积分元件外接的积分元件R1、C1(图11-26中的引脚4、5、6)大小和时钟有关,在实际应用中需加以调整,以得到正确的量程和线性度。积分电容也应选择聚丙烯电容器。13311.3AT89S51单片机与单片机与V/F转换器的接口转换器的接口目前,利用A/D转换技术制成的各种测试仪器得到了广泛应用。在某些要求数据在某些要求数据长距离传输长距离传输,精确度要求较高的场合,采用一般的A/D转换技术有多不便,可使用使用V/F转转换器代替换器代替A/D器件器件。V/F转换器是把电压信号电压信号转变为转变为频率信号频率信号的器件的器件,有良好的精度、线性和积分输入特点,此外,它的应用电路简单,外围元件性能要求不高,适应环境能力强,转换速度不低于一般的双积分型A/D器件,且价格低,因此V/F转换技术广泛用于非快速的广泛用于非快速的A/D转换过程中转换过程中。134V/F转换器与单片机接口有以下特点转换器与单片机接口有以下特点:(1)接口简单、占用单片机硬件资源少)接口简单、占用单片机硬件资源少。产生的频率信号可输入单片机的一根I/O口线或作为中断信号输入及计数信号输入等。(2)抗干扰性能好)抗干扰性能好。用V/F转换器实现A/D转换,就是频率计数的过程,相当于在计数时间内对频率信号进行积分,因而有较强的抗干扰能力。另外可采用光电耦合器连接V/F转换器与单片机之间的通道,实现光电隔离。(3)便于远距离传输。)便于远距离传输。可通过调制进行无线传输或光传输。135由于以上这些特点,V/F转换器适用于一些非快速而适用于一些非快速而需进行远距离信号传输的需进行远距离信号传输的A/D转换过程转换过程。另外,还可以简化电路、降低成本、提高性价比。11.3.1用用V/F转换器实现转换器实现A/D转换的原理转换的原理V/F转换工作原理为:转换工作原理为:单片机片内的计数器把V/F转换器输出的频率信号作为计数脉冲,进行定时计数。计数器计数器的的计数值计数值与与V/F转换器转换器输出的脉冲频率信号输出的脉冲频率信号之间的关系为:136上式中,D是计数器计得的值,T是已知的计数时间。只要知道了D值,再除以计数的时间T,就可求出V/F转换器的输出频率,从而知道输入电压V,实现了A/D转换。11.3.2常用常用V/F转换器转换器LMX31简介简介常用的通用型的常用的通用型的V/F转换器为转换器为LM331,LM331适用于A/D转换器、高精度F/V变换器、长时间积分器、线性频率调制或解调器等电路。LM331的特性如下:的特性如下:1371主要特性主要特性(1)频率范围)频率范围:1100kHz;(2)低的非线性)低的非线性:0.01%;(3)单电源或双电源供电;(4)单电源供电电压为5V时,可保证转换精度;(5)温度特性)温度特性:最大50ppm/C;(6)低功耗:)低功耗:Vs=5V时为15mW138两种封装形式两种封装形式,其中的DIP封装如图图11-28所示。图图11-28LMX31封装图封装图2电特性参数电特性参数(1)电源电压:15V(2)输入电压范围:010V(3)输出频率:10Hz11kHz(4)非线性失真: 0.03%1393LMX31的的V/F转换外部接线转换外部接线LMX31的V/F转换外部接线如外部接线如图图11-29所示所示。 图图11-29LMX31外部接线图外部接线图14011.3.3V/F转换器与转换器与MCS-51单片机接口单片机接口被测电压转换为与其成比例的频率信号后送入计算机进行处理。(1)V/F转换器可以直接与转换器可以直接与89S51单片机接口单片机接口。接口较简单,频率信号接单片机的定时器/计数器输入端即可。如图图11-30所示所示。141图11-30V/F转换器与器与单片机接口片机接口(2)在一些)在一些电源干扰大电源干扰大、模拟电路部分容易对单片机产生、模拟电路部分容易对单片机产生电电气干扰气干扰等恶劣环境中等恶劣环境中,可采用光电隔离光电隔离的方法使V/F转换器与单片机无电信号联系,如图图11-31所示所示。(3)当V/F转换器与单片机之间距离较远转换器与单片机之间距离较远时需要采用驱动电路驱动电路以提高传输能力。一般可采用串行通信的驱动器和接收器来实现。例如使用RS-422的驱动器和接收器时,允许最大传输距离为120m,如图图11-32所示所示。其中SN75174/75175是 RS-422标准的四差分线路驱动/接收器。142 图图11-31使用光电隔离器的接口图图11-32利用串行通信器件的接口143(4)采用光纤光纤或无线传输无线传输时,需配以发送、接收装置,如图图11-33、图、图11-34所示。 图11-33利用光纤进行传输的接口图11-34利用无线传输设备用作输入通道14411.3.4LM331应用举例应用举例本例使用使用LM331和和8031的内部定时器的内部定时器构成A/D转换电路,具有使用元件少、成本低、精度高的特点。1.接口电路接口电路AT89S51与LM331的接口电路接口电路如图图11-35所示所示。V/F转换器最大输出频率为最大输出频率为10kHz,输入电压范围为输入电压范围为010V。由于本电路输出频率较低,如对脉冲计数则会降低精度,因此采用测周期采用测周期的方法。V/F输出的频率经D触发器二分频后接,作为T0计数器的控制信号。145T0计数器置定时器状态,取方式计数器置定时器状态,取方式1,将TMOD.3(T0的GATE位)置1,这样就由和TR0来共同决定计数器是否工作。这种方法只能测量信号周期小于65535个机器周期的信号。146图11-35AT89S51与与LM331的接口的接口电路路2.软件设计软件设计程序包括初始化初始化和计数计数两部分。初始化程序初始化程序要对定时器0进行状态设置,使其工作在定时器工作模式,方式1,并将GATE位置1。计数程序首先需判断 的电平,当其为低时,打开TR0位准备计数;当其变为高时,启动计数,再为低时停止计数并清TR0,取出数据,将T0的时间常数寄存器TH0、TL0清0,准备下一次计数。程序如下:BEGIN: NOPMOVTMOD,09H;定时器;定时器T0初始化初始化MOVTL0,00HMOVTH0,00HLOOP1: NOPJBP3.2,LOOP1147SETBTR0LOOP2: NOPJNBP3.2,LOOP2LOOP3: NOPJBP3.2,LOOP3CLRTR0MOVB,TH0;高位进;高位进B暂存器暂存器MOVA,TL0;低位进;低位进A寄存器寄存器MOVTL0,00HMOVTH0,00HAJMPLOOP1本程序将计数结果高位计数结果高位存B,低位低位存A,以便后期处理。148
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号