《AT89S52单片机与DAC、ADC的接口 .ppt》由会员分享,可在线阅读,更多相关《AT89S52单片机与DAC、ADC的接口 .ppt(134页珍藏版)》请在三一办公上搜索。
1、1,第10章 AT89S52单片机与DAC、ADC的接口,1,2,2,第10章 AT89S52单片机与DAC、ADC的接口10.1 单片机扩展D/A转换器概述10.2 单片机扩展并行8位DAC0832的设计 10.2.1 DAC0832简介 10.2.2 单片机与8位D/A转换器0832的接口设计10.3 AT89S52单片机与12位D/A转换器AD667的接口设计 10.3.1 12位D/A转换器AD667简介 10.3.2 AD667与AT89S51单片机的接口设计 10.3.3 AD667使用中的技术细节10.4 AT89S51与串行输入的12位D/A转换器AD7543的接 口设计,3,
2、10.4.1 AD7543简介 10.4.2 单片机扩展AD7543的接口设计10.5 单片机扩展A/D转换器概述10.6 单片机扩展并行8位A/D转换器ADC0809 10.6.1 ADC0809简介 10.6.2 单片机与ADC0809的接口设计10.7 AT89S52单片机扩展12位串行ADC-TLC2543的设计 10.7.1 TLC2543的特性及工作原理 10.7.2 单片机扩展TLC2543的设计10.8 AT89S52与双积分型A/D转换器MC14433的接口 10.8.1 MC14433 A/D转换器简介,4,10.8.2 单片机与MC14433的接口设计10.9 AT89S
3、52单片机与V/F转换器的接口 10.9.1 用V/F转换器实现A/D转换的原理 10.9.2 常用V/F转换器LMX31简介 10.9.3 V/F转换器与单片机的接口设计 10.9.4 V/F转换的应用设计,5,内容概要 在单片机测控系统中,对非电物理量如温度、压力、流量等的测量,须经传感器先转换成连续变化的模拟电信号(电压或电流),然后再将模拟电信号转换成数字量后才能在单片机中进行处理。实现模拟量转换成数字量的器件称为ADC(A/D转换器)。单片机处理完毕的数字量,有时要根据控制需求转换为模拟信号输出。数字量转换成模拟量的器件称为DAC(D/A转换器)。本章从应用的角度,介绍典型的ADC、
4、DAC芯片与AT89S52单片机的接口设计。,6,10.1 单片机扩展D/A转换器概述单片机只能输出数字量,但是对于某些控制场合,常常需要输出模拟量,例如直流电动机的转速控制。下面介绍单片机如何扩展DAC。目前集成化的DAC芯片种类繁多,设计者只需要合理选用芯片,了解它们的性能、引脚外特性以及与单片机的接口设计方法即可。由于现在部分单片机芯片中集成了DAC,位数一般在10位左右,且转换速度也很快,所以单片的DAC开始向高的位数和高转换速度上转变。而低端的并行8位DAC,开始面临被淘汰的危险,但是在实验室或涉及某些工业控制方面的应用,低端8位DAC以其优异的性价比还是具有较大的应用空间。,6,7
5、,1D/A转换器简介 购买和使用D/A转换器时,要注意有关D/A转换器选择的几个问题。(1)D/A转换器的输出形式 D/A转换器有两种输出形式:电压输出和电流输出。电流输出的D/A转换器在输出端加一个运算放大器构成的I-V转换电路,即可转换为电压输出。(2)D/A转换器与单片机的接口形式 单片机与D/A转换器的连接,早期多采用8位的并行传输的接口,现在除了并行接口外,带有串行口的D/A转换器品种也不断增多,目前多采用较为流行SPI串行接口。在选择单片D/A,7,8,转换器时,要根据系统结构考虑单片机与D/A转换器的接口形式。2主要技术指标D/A转换器的指标很多,设计者最关心的几个指标如下。(1
6、)分辨率 分辨率指单片机输入给D/A转换器的单位数字量的变化,所引起的模拟量输出的变化,通常定义为输出满刻度值与2n之比(n为D/A转换器的二进制位数),习惯上用输入数字,9,量的位数表示。显然,二进制位数越多,分辨率越高,即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转换
7、1 LSB=2.44mV=0.024%满量程,9,10,16位D/A转换1 LSB=0.076mV=0.00076%满量程 使用时,应根据对D/A转换器分辨率的需要来选定D/A转换器的位数。(2)建立时间 建立时间是描述D/A转换器转换速度的参数,用于表明转换时间长短。其值为从输入数字量到输出达到终值误差(1/2)LSB(最低有效位)时所需的时间。电流输出的转换时间较短,而电压输出的转换器,由于要加上完成I-V转换的时间,因此建立时间要长一些。快速D/A转换器的建立时间可控制在1s以下。,10,11,(3)转换精度 理想情况下,转换精度与分辨率基本一致,位数越多精度越高。但由于电源电压、基准电
8、压、电阻、制造工艺等各种因素存在误差,严格地讲,转换精度与分辨率并不完全一致。两个相同位数的不同的DAC,分辨率则相同,但转换精度会有所不同。例如,由于制作工艺上的差异,某种型号的8位DAC精度为0.19%,而另一种型号的8位DAC精度为0.05%。10.2 单片机扩展并行8位DAC0832的设计 美国国家半导体公司的DAC0832芯片是具有两级输入数据寄存器的8位DAC,它能直接与AT89S52单片机连接。,11,12,10.2.1 DAC0832简介1DAC0832芯片介绍(1)DAC0832的特性其主要特性如下。分辨率为8位。电流输出,建立时间为1s。可双缓冲输入、单缓冲输入或直接数字输
9、入。单一电源供电(+5V+15V)。(2)DAC0832的引脚及逻辑结构 DAC0832的引脚如图10-1所示,DAC0832的片内逻辑结构如图10-2所示。,12,13,13,图10-1 DAC0832的引脚,14,图10-2 DAC0832的逻辑结构,15,各引脚的功能如下。DI0DI7:8位数字信号输入端,与单片机的数据总线P0端口相连,用于接收单片机送来的待转换为模拟量的数字量,DI7为最高位。ILE=1,CS*=0,WR1*=0时,即M1=1(LE1*=0),待转换的数字量被锁存到第一级“8位输入寄存器”中。XFER*=0,WR2*=0时,即M3=1(LE2*=0),待转换的第一级8
10、位输入寄存器中数字量被锁存到第二级的“8位DAC寄存器”中,并经“8位D/A转换电路”转换为电流输出。IOUT1:D/A转换器电流输出1端,输入数字量全为“1”时,IOUT1最大,输入数字量全为“0”时,IOUT1最小。,15,16,IOUT2:D/A转换器电流输出2端,IOUT2+IOUT1=常数。Rfb:外部反馈信号输入端,内部已有反馈电阻Rfb,根据需要也可外接反馈电阻。VCC:电源输入端,在+5V+15V范围内。DGND:数字信号地。AGND:模拟信号地,最好与基准电压(为模拟信号)共地。DAC0832内部的三部分电路如图10-2所示。“8位输入寄存器”用于存放单片机送来的数字量,使输
11、入数字量得到缓冲和锁存,由LE1*=0(M1=1)加以控制;“8位DAC寄存器”为第二级寄存器,由LE2*=0(M3=1)控制,用于将“8位输入寄,16,17,存器”输出的数字量锁存,并送入“8位D/A转换电路”转换,输出和数字量成正比的模拟电流。因此,DAC0832通常需要外接I-V转换的运算放大器电路,才能得到模拟输出电压。10.2.2 AT89S52单片机与8位D/A转换器0832的接口设计 设计AT89S52单片机与DAC0832的接口电路时,常用单缓冲方式或双缓冲方式的单极性输出。(1)单缓冲方式 单缓冲方式是指DAC0832内部的两个寄存器有一个处于直通方式,另一个处于受AT89S
12、52单片机控制的锁存方式。在实际应用中,如果只有一路模拟量输出,或虽是多路模拟量输出,18,但并不要求多路输出同步的情况下,就可采用单缓冲方式。单缓冲方式的接口电路如图10-3所示。图10-3所示的是单极性模拟电压输出电路,由于DAC0832是8位(28=256)的D/A转换器,由基尔霍夫定律列出德方程组可解得DAC0832输出电压vo与输入数字量B的关系为:,18,显然,DAC0832输出的模拟电压vo的绝对值与输入的数字量B以及基准电压VREF成正比,且B为0时,vo也为0,B为255时,vo为最大的绝对值输出,且不会大于VREF。,19,图10-3 单缓冲方式下AT89S52单片机与DA
13、C0832的接口电路,20,20,图10-3中,DAC0832的WR2*和XFER*接地,故DAC0832第二级的“8位DAC寄存器”(见图10-2)工作于直通方式。“8位输入寄存器”受和端控制(ILE已经为高),而且由译码器输入为FEH时,输出端为低来控制(也可由P2口的某一条口线来控制)。因此,AT89S51单片机执行如下两条指令就可在和上产生低电平信号,使DAC0832接收单片机送来的数字量。,21,21,MOVR0,#0FEH;DAC的8位输入寄存器端口地址FEHR0MOVXR0,A;AT89S51单片机将待转换的数字量送DAC,;且和译码器FEH输出端有效现举例说明单缓冲方式下DAC
14、0832的应用。【例10-1】DAC0832用作波形发生器。试根据图10-3的电路,分别写出产生锯齿波、三角波和矩形波的程序段。在图10-3中,运算放大器A输出端Vout直接反馈到Rfb,故这种接线产生的模拟输出电压是单极性的。,22,锯齿波的产生 ORG2000HSTART:MOVR0,#0FEH;DAC地址FEH R0MOVA,#00H;数字量ALOOP:MOVXR0,A;数字量D/A转换器 INCA;数字量逐次加1SJMP LOOP,22,当输入数字量从0开始,逐次加1进行D/A转换,模拟量与其成正比输出。当A=FFH时,再加1则溢出清0,模拟输出又为0,然后又重新重复上述过程,如此循环
15、,输出的波形就是锯齿波,如图10-4所示。,23,实际上,每一上升斜边要分成256个小台阶,每个小台阶暂留时间为执行后三条指令所需要的时间。因此“INC A”指令后插入NOP指令或延时程序,则可改变锯齿波频率。,23,图10-4 DAC0832产生的锯齿波输出,24,三角波的产生 输出的三角波如图11-5所示。,24,图11-5 DAC0832产生的三角波输出,参考程序如下。,25,25,vO,矩形波的产生 输出的矩形波如图10-6所示。,26,图10-6 DAC0832产生的矩形波输出,27,输出的矩形波如图10-6所示。DELAY1、DELAY2为两个延时程序,分别决定输出的矩形波高、低电
16、平时的持续宽度。矩形波频率也可用延时方法改变。,27,28,(2)双缓冲方式 多路的D/A转换要求同步输出时,必须采用双缓冲同步方式。此方式工作时,数字量的输入锁存和D/A转换输出是分两步完成的。单片机必须通过LE1*来锁存待转换的数字量,通过LE2*来启动D/A转换(见图10-2)。因此,双缓冲方式下,DAC0832应该为单片机提供两个I/O端口。AT89S52单片机和DAC0832在双缓冲方式下的连接如图10-7所示。,28,29,29,图10-7 单片机和两片DAC0832的双缓冲方式接口电路,30,由图10-7可见,译码器的FDH(即译码器输入为FDH时)和FEH分别为1#与2#DAC
17、0832的第一级“8位输入寄存器”的端口地址,而FFH共同控制1#和2#DAC0832进行D/A转换的第二级“8位DAC寄存器”端口地址。若把图10-7中DAC输出的模拟电压Vx和Vy来控制X-Y绘图仪,则应把Vx和Vy分别加到X-Y绘图仪的X通道和Y通道,而X-Y绘图仪由X、Y两个方向的步进电机驱动,其中一个电机控制绘笔沿X方向运动;另一个电机控制绘笔沿Y方向运动。因此对X-Y绘图仪的控制有一基本要求:就是两路模拟信号,30,31,要同步输出,使绘制的曲线光滑。如果不同步输出,例如先输出X通道的模拟电压,再输出Y通道的模拟电压,则绘图笔先向X方向移动,再向Y方向移动,此时绘制的曲线就是阶梯状
18、的。通过本例,也就不难理解为什么DAC设置双缓冲方式的目的所在。【例10-2】设AT89S52单片机内部RAM中有两个长度为20的数据块,其起始地址为分别为addr1和addr2,根据图10-7,编写把addr1和addrr2中的数据从1#和2#DAC0832同步输出的程序。程序中addr1和addr2中的数据,即为绘图仪所绘制曲线的x、y坐标点。,32,由图10-7可知,DAC0832各端口地址为:FDH:1#DAC0832第一级“8位输入寄存器”的端口地址FEH:2#DAC0832第一级“8位输入寄存器”的端口地址FFH:1#和2#DAC0832共同的第二级“8位DAC寄存器”端口地址 程
19、序首先使单片机工作寄存器0区的R1指向addr1;1区的R1指向addr2;0区工作寄存器的R2存放数据块长度;0区和1区工作寄存器区的R0指向DAC端口地址。参考程序如下:,32,33,33,34,34,3DAC0832的双极性的电压输出 除了需要DAC0832为单极性模拟电压输出外,在有些场合则要求DAC0832双极性模拟电压输出,只需改变DAC0832的外部连线,即可实现双极性模拟电压输出,下面简单介绍。,35,在需要双极性电压输出的场合下,可以按照图10-8所示接线。图中,DAC0832 的8位数字量由单片机送来,A1和A2均为运算放大器,vo通过2R电阻反馈到运算放大器A2 的“-”
20、输入端,G点为虚拟地,其他的电路连接如图10-8所示。由基尔霍夫定律列出的方程组可解得:,35,图10-8 双极性DAC的接法,36,36,由上式可知,当单片机输出给DAC0832的数字量B128时,即数字量最高位b7为“1”,输出的模拟电压vo为正;当单片机输出给DAC0832的数字量B128时,即数字量最高位为“0”,则vo的输出电压为负。,37,10.3 AT89S52单片机与12位D/A转换器AD667的接口设计 当8位DAC分辨率不够时,可采用高于8位分辨率的DAC,例如,10位、12位、14位和16位(例如AD669)的DAC。AD667是一种分辨率为12位的并行输入、为双缓冲输入
21、,电压输出型D/A转换器,建立时间3s;通过改变片外引脚的连接连接,可输出模拟电压+5V、+10V、2.5V、5V和10V;内含高稳定的基准电压源,可方便地与4位、8位或16位微处理器接口;双电源工作电压为12V15V。,37,38,10.3.1 12位D/A转换器AD667简介1引脚介绍 AD667为标准28脚双列直插式封装,图10-9所示为双列直插式封装引脚图。,39,39,图10-9 AD667引脚图,40,40,表10-1为AD667的引脚功能说明,41,2.内部功能结构 图10-10所示为AD667内部功能结构框图。,41,图10-10 AD667内部功能结构框图,42,AD667的
22、总线接口逻辑由4个独立的可寻址锁存器组成,其中第一级锁存器由3个4位的锁存器组成,第二级锁存器为1个“12位DAC锁存器”,可以直接从4位、8位或16位微处理器总线分一次或几次加载12位数字量;一旦数字量被装入第一级的12位(3个4位)输入数据锁存器,就可以控制把12位数字量一次送入第二级的“12位DAC锁存器”并输出,这种双缓冲结构可以避免仅一级寄存器时,3个4位锁存器的不同步的输入,而产生错误的“毛刺”模拟量输出。4个锁存器由4个地址输入A0A3以及共同控制,所有的控制信号都是低电平有效,对应关系如表10-2所示。,42,43,43,44,10.3.2 AD667与AT89S52单片机的接
23、口设计【例10-3】图10-11为AT89S51单片机与AD667的接口电路。,44,图10-11 AD667与AT89S52单片机的接口电路,45,单片机把AD667所占的3个端口地址(第一级的低4位和中4位锁存器,高4位锁存器,第二级的12位锁存器)视为外部数据存储器的3个单元,对其进行选通,完成对AD667数据传送锁存及转换的功能。假定低8位数据存于20H单元,高4位数据存入21H的低4位,实现D/A转换的参考程序段:,45,46,上述程序中,待转换的12位数字量中的低8位数据,高4位数据已经被存于片内RAM的20H单元和21H的低4位。10.3.3 AD667使用中的技术细节D/A转换
24、器AD667配置灵活、性价比高,在实际使用中,有关的技术细节,还是需要了解并掌握的。1.模拟电压输出范围的配置AD667通过片外引脚的不同电路连接,可获得不同的输出电压量程范围。单极性工作时,可以获得05V和010V的电压。双极性工作时,可获得2.5V、5V和10V的电压。具体量程配置可由引脚1、2、3、9的不同连接实现,如表10-3,46,47,48,所示。由于AD667内置的量程电阻与其他元器件具有热跟踪性能,所以AD667的增益和偏置漂移非常小。(1)单极性电压输出 图10-12为010V单极性电压输出电路原理图。a.电路调零 在电路运行之前,为保证转换精度,首先要进行电路调零和增益调节
25、。数字输入量全为“0”时,调节50k电位器RP1,使其模拟电压输出端(VOUT)电压为0.000V。在大多数情况下,并不需要调零,只要把脚4与脚5相连(接地)即可。,49,图10-12 010V单极性电压输出的电路原理图,50,b增益调节 数字输入量全为“1”时,调节100电位器RP2,使其模拟电压输出为9.9976V,即满量程的10.000V减去1LSB(约为2.44mV)所对应的模拟输出量。(2)双极性电压输出 图10-13所示为-5V+5V双极性电压输出的电路图。建议任何未使用的数据和控制引脚最好与电源地相连,以改善抗噪声干扰特性。AD667使用正逻辑的二进制输入编码,大于2.0V的输入
26、电压表示逻辑“1”,而小于0.8V的输入电压表示逻辑“0”。单极性输出时,输入编码采用直接二进制编码,全“0”数据输入000H产生零模拟输出;全“1”数据输入FFFH产生比满量程少1LSB的模拟输出。,50,51,图10-13 5V双极性电压输出电路原理图,52,双极性输出时,输入编码采用偏移二进制编码,数据输入为000H时,产生负的满量程输出;数据输入为FFFH时,产生比满量程少1LSB的模拟输出;数据输入为800H时,模拟输出为0。其中1LSB为最低位对应的模拟电压。双极性输出时输入与输出关系如图10-14所示。,52,图10-14 双极性输出与输入关系,53,输入数字量N与输出模拟电压V
27、OUT的关系为式中,VR为输出电压量程。在电路运行之前,为保证转换精度,首先要进行偏置调节和增益调节。a偏置调节 数字输入量全为“0”时,调节100的电位器RP1,使其模拟电压输出端电压为5.000V。b增益调节 数字输入量全为“1”时,调节100电位器RP2,使其模拟输出电压值为4.9976V,即正满量程电压输出5.000V减去1LSB(约为2.44mV)所对应的模拟输出量。,54,2.内部/外部基准电压源的使用AD667有内置低噪声基准电源,其绝对精度和温度系数都是通过激光修正的,具有长期的稳定性。片内基准电源可提供片内D/A转换器所需的基准电流,还可通过缓冲电路驱动外部电路,一般可向外部
28、负载提供0.1mA的驱动电流。3.接地与动态电容的接法AD667把模拟地AGND与电源地PGND分开,可以减少器件的低频噪声和增强高速性能。把地回路分开的目的是为了尽量减少低电平信号路径中的电流。AGND是输出放大器中的地端,应与系统中的模拟输出电压基准地直接相连,任何由,55,输出放大器驱动的负载都应该接在模拟地引脚上。电源地PGND可以与模拟电源的接地点就近连接。最后AGND与PGND在一点上进行连接,一般连接到电源地PGND上。另外,AD667的电源引脚到模拟地引脚间应加上适当的去耦电容。在输出放大器反馈电阻两端加一个20pF的小电容,可以明显改善输出放大器的动态性能。,56,10.4
29、AT89S51与串行输入的12位D/A转换器AD7543的接口设计10.4.1 AD7543简介 AD7543是美国AD公司的专为通用异步串行口(UART)设计的12位价廉的D/A转换器。AD7543可直接与AT89S52的串行口相连,其内部结构如图10-15所示。AD7543片内由12位串行输入并行输出移位寄存器(寄存器A)和12位DAC输入寄存器(寄存器B)组成。在选通信号的前沿或后沿(可选择)定时把SRI引脚上的串行数据装入寄存器A,一旦寄存器A装满,在加载脉冲的控制下,寄存器A的数据,56,57,57,图10-15 AD7543的片内结构,58,便装入寄存器B中,并转换为模拟量输出。A
30、D7543的DIP封装形式的引脚如图10-16所示。,58,图10-16 AD7543的引脚,59,59,各引脚功能如下:OUT1:AD7543的电流输出引脚1。OUT2:AD7543的电流输出引脚2。AGND:模拟地。STB1、STB2、STB*、STB4:寄存器A的4个选通控制信号。LD1*、LD2*:寄存器B加载1与加载2输入。当LD1*和LD2*为低电平时,寄存器A的内容送到寄存器B。SRI:单片机输入到寄存器A的串行数据输入引脚。DGND:数字地。CLR*:寄存器B清除输入,用于异步地将寄存器B复位至000H。VDD:+5V电源。,60,各引脚功能如下:OUT1:AD7543的电流输
31、出引脚1。OUT2:AD7543的电流输出引脚2。AGND:模拟地。STB1、STB2、STB*、STB4:寄存器A的4个选通控制信号。LD1*、LD2*:寄存器B加载1与加载2输入。当LD1*和LD2*为低电平时,寄存器A的内容送到寄存器B。SRI:单片机输入到寄存器A的串行数据输入引脚。DGND:数字地。CLR*:寄存器B清除输入,用于异步地将寄存器B复位至000H。VDD:+5V电源。VREF:基准电压输入。Rfb:DAC反馈电阻输入引脚。,61,10.4.2 AT89S52扩展AD7543的接口设计【例10-4】AT89S52与AD7543的接口电路如图10-17所示。,61,图10-
32、17 AD7543与AT89S51的接口电路,62,图10-17中的单片机串行口直接与AD7543相连,串行口选用方式0,其TXD端移位脉冲的负跳变将RXD输出的串行位数据移入AD7543,利用地址译码器的输出信号产生,从而将AD7543移位寄存器A中的内容移入到寄存器B中,并启动D/A转换。由于AD7543的12位数据是高至低逐位串行输入的,而AT89S52的串行口方式0是低至高逐位串行输出的,因此在数据传输到AD7543之前必须重新装配。下面是单片机的驱动程序,假设AD7543的端口地址为“addrH”,数据缓冲器单元地址为dbufh(高4位)和dbufl(低8位)。,62,63,63,6
33、4,10.5 单片机扩展A/D转换器概述 A/D转换器(ADC)把模拟量转换成数字量,单片机才能进行数据处理。随着超大规模集成电路技术的飞速发展,大量结构不同、性能各异的A/D转换芯片应运而生。1A/D转换器简介 目前单片ADC芯片较多,对设计者来说,只需合理的选择芯片即可。现在部分的单片机片内也集成了A/D转换器,位数为8位、10位或12位,且转换速度也很快,但是在片内A/D转换器不能满足需要的情况下,还是需要外扩。因此,作为外部扩展A/D转换器的基本方法,还是应当掌握。尽管A/D转换器的种类很多,但目前广泛应用在单片机应用,64,65,系统中的主要有逐次比较型转换器和双积分型转换器,此外-
34、式转换器也逐渐得到重视和应用。逐次比较型A/D转换器,在精度、速度和价格上都适中,是最常用的A/D转换器。双积分型A/D转换器,具有精度高、抗干扰性好、价格低廉等优点,与逐次比较型A/D转换器相比,转换速度较慢,近年来在单片机应用领域中已得到广泛应用。-式ADC具有积分式与逐次比较型ADC的双重优点。它对工业现场的串模干扰具有较强的抑制能力,不亚于双积分ADC,它比双积分ADC有较高的转换速度,与逐次比较型ADC相比,有较高的信噪比,分辨率高,线性度好。由于上述,66,优点,-式ADC也逐渐得到重视,已有多种-式A/D芯片可供用户选用。A/D转换器按照输出数字量的有效位数分为4位、8位、10位
35、、12位、14位、16位并行输出以及BCD码输出的位、位、位等多种。目前,除了并行的A/D转换器外,带有同步SPI串行接口的A/D转换器的使用也逐渐增多。串行接口的A/D转换器具有占用单片机的端口线少、使用方便、接口简单等优点,已经得到广泛的使用。较为典型的串行A/D转换器为美国TI公司的TLC549(8位)、TLC1549(10位)以及TLC1543(10位)和TLC2543(12位)等。,66,67,A/D转换器按照转换速度可大致分为超高速(转换时间1ns)、高速(转换时间1s)、中速(转换时间1ms)、低速(转换时间1s)等几种不同转换速度的芯片。目前许多新型的A/D转换器已将多路转换开
36、关、时钟电路、基准电压源、二/十进制译码器和转换电路集成在一个芯片内,为用户提供了极大方便。2A/D转换器的主要技术指标(1)转换时间或转换速率。转换时间是指A/D转换器完成一次转换所需要的时间。转换时间的倒数为转换速率。(2)分辨率。分辨率是衡量A/D转换器能够分辨出输入模拟量最小变化程度的技术指标。分辨率取决于A/D转换器的位数,所以,67,68,习惯上用输出的二进制位数表示。例如,某型号A/D转换器的满量程输入电压为5V,可输出12位二进制数,即用212个数进行量化,分辨能力为1LSB,即5V/212=1.22mV,其分辨率为12位,或能分辨出输入电压1.22mV的变化。但是对于双积分型
37、BCD码输出的A/D转换器MC14433,其满量程转换电压为2V档时,其输出的十进制数范围为00001999,能分辨出1mv的变化。如果把分辨率换算成二进制位数表示,位的A/D转换器(千位仅有0和1两个十进制数字,称其为半位,而百、十、个位均可能有10个十进制数字09出现,为完整的位,所以称其为三位半),其分辨率大约为11位,因为1999最接近于211=2048。,68,69,量化过程引起的误差称为量化误差。量化误差是由于有限位数字量对模拟量进行量化而引起的误差。量化误差理论上规定为一个单位分辨率的 1/2LSB,提高A/D转换器的位数既可提高分辨率,又能够减少量化误差。(3)转换精度。定义为
38、一个实际A/D转换器与一个理想A/D转换器在量化值上的差值,可用绝对误差或相对误差表示。要注意一个问题,两片具有相同位数的A/D转换器,它们的转换精度未必相同。,69,70,10.6 单片机扩展并行8位A/D转换器ADC0809 10.6.1 ADC0809简介1ADC0809功能及引脚 ADC0809是一种逐次比较型8路模拟输入、8位数字量并行输出的A/D转换器,其引脚见图10-18。,70,71,71,图10-18 ADC0809的引脚图,72,共28引脚,双列直插式封装。引脚功能如下:IN0IN7:8路模拟信号输入端。D0D7:转换完毕的8位数字量输出端。A、B、C与ALE:控制8路模拟
39、输入通道的切换。A、B、C分别与单片机的三条地址线相连,三位编码对应8个通道地址端口。C、B、A=000111分别对应IN0IN7通道的地址。各路模拟输入之间切换由软件改变C、B、A引脚的编码来实现。OE、START、CLK:OE为输出允许端,START为启动信号输入端,CLK为时钟信号输入端。VR(+)、VR():基准电压输入端。,72,73,2ADC0809结构及转换原理 结构如图10-19所示。采用逐次比较法完成A/D转换,单一的+5V电源供电。片内带有锁存功能的8选1模拟开关,由C、B、A的编码来决定所选的通道。完成一次转换需100s左右(转换时间与CLK脚的时钟频率有关),具有输出T
40、TL三态锁存缓冲器,可直接连到单片机数据总线上。通过适当的外接电路,ADC0809可对05V的模拟信号进行转换。,73,74,74,图10-19 ADC0809结构框图,75,10.6.2AT89S52单片机与ADC0809的接口设计 先了解单片机如何控制ADC开始转换,如何得知转换结束以及如何读入转换结果的问题。单片机读取ADC的转换结果时,可采用查询和中断控制两种方式。查询方式是在单片机把启动信号送到ADC之后,执行其他程序,同时对ADC0809的EOC脚不断进行检测,以查询ADC变换是否已经结束,如查询到变换已经结束,则读入转换完毕的数据。中断控制方式是在启动信号送到ADC之后,单片机执
41、行,75,76,其他程序。ADC0809转换结束并向单片机发出中断请求信号时,单片机响应此中断请求,进入中断服务程序,读入转换完毕的数据。中断控制方式效率高,所以特别适合于转换时间较长的ADC。1.查询方式【例10-5】单片机采用查询方式控制ADC0809进行A/D转换的接口设计与软件编程。ADC0809与单片机的查询方式接口电路如图10-20所示。,76,77,77,图10-20 ADC0809与AT89S52查询式接口,78,图10-20所示的基准电压是提供给A/D转换器在转换时所需要的基准电压,这是保证转换精度的基本条件。基准电压要单独用高精度稳压电源供给,其电压的变化要小于1LSB。否
42、则当被变换的输入电压不变,而基准电压的变化大于1LSB,也会引起A/D转换器输出的数字量变化。由于ADC0809片内无时钟,可利用单片机提供的地址锁存允许信号ALE经D触发器二分频后获得,ALE引脚的频率是AT89S51单片机时钟频率的1/6(但要注意,每当访问外部数据存储器时,将少一个ALE脉冲)。如果单片机时钟频率采用6MHz,则ALE引脚的输出频率为1MHz,再二分频后,78,79,为500kHz,符合ADC0809对时钟频率的要求。当然,也可采用独立的时钟源输出,直接加到ADC的CLK脚。由于ADC0809具有输出三态锁存器,其8位数据输出引脚D0D7可直接与单片机的P0口相连。地址译
43、码引脚C、B、A分别与地址总线的低三位A2、A1、A0相连,以选通IN0IN7中的一个通道。,79,80,在启动A/D转换时,由单片机的写信号WR*和P2.7控制ADC的地址锁存和转换启动,由于ALE和START连在一起,因此ADC0809在锁存通道地址的同时,启动并进行转换。在读取转换结果时,用低电平的读信号 和P2.7引脚经一级“或非门”后产生的正脉冲作为OE信号,用来打开三态输出锁存器。下面的程序是采用软件延时的方式,分别对8路模拟信号轮流采样一次,并依次把结果转储到数据存储区的转换程序。,80,81,81,82,2.中断方式 ADC0809与AT89S52单片机的中断方式接口电路只需要
44、将图10-20所示的EOC引脚经过一“反门”连接到AT89S52单片机的外中断输入引脚INT1*即可。采用中断方式可大大节省单片机的时间。当转换结束时,发出EOC脉冲向单片机提出中断申请,单片机响应中断请求,由外部中断1的中断服务程序读A/D结果,并启动ADC0809的下一次转换,外部中断1采用跳沿触发方式。参考程序:,82,83,83,84,10.7 AT89S51扩展12位串行ADC-TLC2543的设计 TLC2543是美国TI公司分辨率为12位的串行SPI接口的A/D转换器,转换时间为10s。TLC2543用4根线与单片机进行串行通信,这4根线分别是片选信号、I/O时钟、串行数据输入、
45、串行数据输出。采用SPI接口的特点是快速、高效,操作起来比I2C要简单一些。由于TLC2543与单片机的接口电路简单,且价格适中,分辨率较高,因此在智能仪器仪表中有着较为广泛的应用。与TLC2543类似的串行SPI接口的A/D转换器还有:TLC1549(10位,转换时间21s)与TLC549(8位,转换时间17s),85,10.7.1 TLC2543的特性及工作原理 TLC2543片内有1个14路模拟开关,用来选择11路模拟输入以及3路内部测试电压中的1路进行采样。为了保证测量结果的准确性,该器件具有3路内置自测试方式,可分别测试“REF+”正基准电压值,“REF-”负基准电压值和“REF+/
46、2”的值,TLC2543的模拟量输入范围为REF+REF-,一般的输入模拟量变化范围为0+5V,所以此时REF+脚接+5V,REF-脚接地。,86,1.TLC2543的引脚 TLC2543的引脚见图10-21,各引脚功能如下。AIN0AIN10:11路模拟量输入端。CS*:片选端。DATAINPUT:串行数据输入端。由4位的串行地址输入来选择模拟量输入通道。DATA OUT:A/D转换结果的三态串行输出端。为高时处于高阻抗状态,为低时处于转换结果输出状态。EOC:转换结束端。I/O CLOCK:I/O时钟端。,87,图10-21 TLC2543引脚,88,REF+:正基准电压端。基准电压的正端
47、(通常为Vcc)被加到REF+,最大的输入电压范围为加在本引脚与REF-引脚的电压差。REF-:负基准电压端。基准电压低端(通常为地)加此端。Vcc:电源。GND:地。,89,2.TLC2543工作过程 工作过程分为两个周期:I/O周期和实际转换周期。(1)I/O周期 I/O周期由外部提供的I/O CLOCK定义,延续8、12或16个时钟周期,取决于选定的输出数据长度。器件进入I/O周期后同时进行两种操作。TLC2543的工作时序如图10-22所示。在I/OCLOCK的前8个脉冲的上升沿,以MSB前导方式从DATAINPUT端输入8位数据到输入寄存器。其中前4位为模拟通道地址,控制14通道模拟
48、多路器从11个模拟输入和3个内部自测电压中,选通1路,90,图10-22 TLC2543的工作时序,91,到采样保持器,该电路从第4个I/OCLOCK脉冲下降沿开始,对所选的信号进行采样,直到最后一个I/O CLOCK脉冲下降沿。I/O脉冲时钟个数与输出数据长度(位数)有关,输出数据的长度由输入数据的D3、D2可选择为8位、12位或16位。当工作于12位或16位时,在前8个脉冲之后,DATAINPUT无效。在DATA OUT端串行输出8位、12位或16位数据。当 保持为低时,第1个数据出现在EOC的上升沿,若转换由 控制,则第1个输出数据发生在 的下降沿。这个数据是前1次转换的结果,在第1个输
49、出数据位之后的每个后续位均由后续的I/OCLOCK脉冲下降沿输出。,92,(2)转换周期 在I/O周期最后一I/OCLOCK脉冲下降沿后,EOC变低,采样值保持不变,转换周期开始,片内转换器对采样值进行逐次逼近式A/D转换,其工作由与I/OCLOCK同步的内部时钟控制。转换结束后EOC变高,转换结果锁存在输出数据寄存器中,待下一I/O周期输出。I/O周期和转换周期交替进行,从而可减少外部的数字噪声对转换精度影响。,93,3.TLC2543命令字 每次转换都必须向TLC2543写入命令字,以便确定被转换信号来自哪个通道,转换结果用多少位输出,输出的顺序是高位在前还是低位在前,输出结果是有符号数还
50、是无符号数。命令字写入顺序是高位在前,格式如下:(1)通道地址选择位用来选择输入通道。00001010分别是11路模拟量AIN0AIN10的地址;地址1011、1100和1101所选择的自测试电压分别是(VREF+)-(VREF-)/2、VREF-、VREF+。1110是掉电地址,选,94,掉电后,TLC2543处于休眠状态,此时电流小于20A。(2)数据长度(D3D2)位用来选择转换的结果用多少位输出。D3D2为0:12位输出;D3D2为01:8位输出;D3D2为11:16位输出。(3)数据的顺序位(D1)用来选择数据输出的顺序。D1=0,高位在前;D1=1,低位在前。(4)数据的极性位(D