AT89S52单片机与DAC、ADC的接口 .ppt
《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的输入
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AT89S52单片机与DAC、ADC的接口 AT89S52 单片机 DAC ADC 接口
链接地址:https://www.31ppt.com/p-4515279.html