资源预览内容
第1页 / 共148页
第2页 / 共148页
第3页 / 共148页
第4页 / 共148页
第5页 / 共148页
第6页 / 共148页
第7页 / 共148页
第8页 / 共148页
第9页 / 共148页
第10页 / 共148页
亲,该文档总共148页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1,第11章 AT89S51单片机与D/A、 A/D 转换器的接口,1,2,2,第11章 目录 11.1 AT89S51单片机与DAC的接口 11.1.1 D/A转换器简介 11.1.2 AT89S51单片机与8位D/A转换器0832的接口设计 11.1.3 AT89S51单片机与12位D/A转换器AD667的接口设计 11.1.4 AT89S51与串入的12位D/A转换器AD7543的接口设计 11.2 AT89S51单片机与ADC的接口 11.2.1 A/D转换器简介 11.2.2 AT89S51与逐次比较型8位A/D转换器ADC0809的接口 11.2.3 AT89S51与逐次比较型12位A/D转换器AD1674的接口,3,11.2.4 AT89S51与双积分型A/D转换器MC14433的接口 11.3 89S51单片机与V/F转换器的接口 11.3.1 用V/F转换器实现A/D转换的原理 11.3.2 常用V/F转换器LMX31简介 11.3.3 V/F转换器与MCS-51单片机接口 11.3.4 LM331应用举例,4,内容概要 在单片机测控系统中,被测量的温度、压力、流量、速度等非电物理量,须经传感器先转换模拟电信号,必须转换成数字量后才能在单片机中用软件进行处理。 模拟量转换成数字量的器件为A/D转换器(ADC)。 单片机处理完毕的数字量,有时需转换为模拟信号输出。器件称为D/A转换器(DAC)。 本章介绍典型的ADC、DAC集成电路芯片,以及与单片机的硬件接口设计及软件设计。,5,11.1 AT89S51单片机与DAC的接口 介绍单片机系统如何输出模拟量。 目前商品化DAC芯片较多,设计者只需要合理的选用合适的芯片,了解它们的功能、引脚外特性以及与单片机的接口设计方法即可。由于现在部分的单片机芯片中集成了D/A转换器,位数一般在10位左右,且转换速度也很快,所以单片的DAC开始向高的位数和高转换速度上转变。 低端的产品,如8位的D/A转换器,开始面临被淘汰的危险,但是在实验室或涉及某些工业控制方面的应用,低,5,6,端的8位DAC以其优异性价比还是具有相当大的应用空间的。 11.1.1 D/A转换器简介 1概述 购买和使用D/A转换器时,要注意D/A转换器选择的几个问题。 (1)D/A转换器的输出形式 有两种输出形式。一种是电压输出,即给D/A转换器输入的是数字量,而输出为电压。另一种是电流输出。,6,7,对电流输出的D/A转换器,如需要模拟电压输出,可在其输出端加一个由运算放大器构成的I-V转换电路,将电流输出转换为电压输出。 (2)D/A转换器与单片机的接口形式 单片机与D/A转换器的连接,早期多采用8位数字量并行传输的并行接口,现在除并行接口外,带有串行口的D/A转换器品种也不断增多。除了通用的UART串行口外,目前较为流行的还有I2C串行口和SPI串行口等。所以在选择单片D/A转换器时,要考虑单片机与D/A转换器的接口形式。,7,8,2主要技术指标 指标很多,使用者最关心的几个指标如下。 (1)分辨率 指单片机输入给D/A转换器的单位数字量的变化,所引起的模拟量输出的变化,通常定义为输出满刻度值与2n之比(n为D/A转换器的二进制位数)。习惯上用输入数字量的二进制位数表示。位数越多,分辨率越高,即D/A转换器对输入量变化的敏感程度越高。 例如,8位的D/A转换器,若满量程输出为10V,根据分辨率定义,则分辨率为10V/2n,分辨率为:,8,9,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%满量程 使用时,应根据对D/A转换器分辨率的需要来选定D/A转换器的位数。,9,10,(2)建立时间 描述D/A转换器转换快慢的一个参数,用于表明转换时间或转换速度。其值为从输入数字量到输出达到终值误差(1/2)LSB时所需的时间。 电流输出的转换时间较短,而电压输出的转换器,由于要加上完成I-V转换的运算放大器的延迟时间,因此转换时间要长一些。快速D/A转换器的转换时间可控制在1s以下。,10,11,(3)转换精度 理想情况下,转换精度与分辨率基本一致,位数越多精度越高。 但由于电源电压、基准电压、电阻、制造工艺等各种因素存在着误差。严格讲,转换精度与分辨率并不完全一致。只要位数相同,分辨率则相同,但相同位数的不同转换器转换精度会有所不同。 例如,某种型号的8位DAC精度为0.19%,而另一种型号的8位DAC精度为0.05%。,11,12,11.1.2 AT89S51与8位D/A转换器0832的接口设计 1DAC0832芯片介绍 (1)DAC0832的特性 美国国家半导体公司的DAC0832芯片是具有两个输入数据寄存器的8位DAC,它能直接与AT89S51单片机连接,主要特性如下。 分辨率为8位。 电流输出,建立时间为1s。,12,13, 可双缓冲输入、单缓冲输入或直接数字输入。 单一电源供电(+5V+15V)。 低功耗,20mW。 (2)DAC0832的引脚及逻辑结构 引脚如图11-1所示,DAC0832的逻辑结构如图11-2所示。,13,14,14,图11-1 DAC0832的引脚图,15,15,图11-2 DAC0832的逻辑结构,16,引脚功能: DI0DI7:8位数字信号输入端,与单片机的数据总线P0口相连,用于接收单片机送来的待转换为模拟量的数字量,DI7为最高位。 :片选端,当 为低电平时,本芯片被选中。 ILE:数据锁存允许控制端,高电平有效。 :第一级输入寄存器写选通控制,低电平有效。当 =0,ILE=1, =0时,待转换的数据信号被锁存到第一级8位输入寄存器中。,16,17,:数据传送控制,低电平有效。 :DAC寄存器写选通控制端,低电平有效。当 =0, =0时,输入寄存器中待转换的数据传入8位DAC寄存器中。 IOUT1:D/A转换器电流输出1端,输入数字量全为“1”时,IOUT1最大,输入数字量全为“0”时,IOUT1最小。 IOUT2:D/A转换器电流输出2端,IOUT2 + IOUT1 = 常数。 Rfb:外部反馈信号输入端,内部已有反馈电阻Rfb,根据需要也可外接反馈电阻。 VCC:电源输入端,在+5V+15V范围内。,17,18,DGND:数字信号地。 AGND:模拟信号地,最好与基准电压共地。 DAC0832内部电路如图11-2所示。 “8位输入寄存器”用于存放单片机送来的数字量,使输入数字量得到缓冲和锁存,由 加以控制; “8位DAC寄存器”用于存放待转换的数字量,由 控制; “8位D/A转换电路”受“8位DAC寄存器”输出的数字量控制,能输出和数字量成正比的模拟电流。因此,需外接I-V转换的运算放大器电路,才能得到模拟输出电压。,18,19,2AT89S51单片机与DAC0832的接口电路设计 设计接口电路时,常用单缓冲方式或双缓冲方式的单极性输出。 (1)单缓冲方式 指DAC0832内部的两个数据缓冲器有一个处于直通方式,另一个处于受AT89S51单片机控制的锁存方式。在实际应用中,如果只有一路模拟量输出,或虽是多路模拟量输出但并不要求多路输出同步的情况下,可采用单缓冲方式。 单缓冲方式的接口电路如图11-3所示。,19,20,20,图11-3 单缓冲方式下单片机与DAC0832的接口电路,21,图11-3所示的是单极性模拟电压输出电路,由于DAC0832是8位(28=256)的D/A转换器,由基尔霍夫定律列出的方程组可解得0832输出电压vo与输入数字量B的关系为 显然,输出的模拟电压vo和输入的数字量B以及基准电压VREF成正比,且B为0时,vo也为0,输入数字量为255时,vo为最大的绝对值输出,且不会大于VREF。,21,22,图11-3中, 和 接地,故DAC0832的“8位DAC寄存器”(见图11-2)工作于直通方式。 “8位输入寄存器”受 和 端控制,而且 由译码器输出端FEH送来(也可由P2口的某一条口线来控制)。因此,单片机执行如下两条指令就可在 和 上产生低电平信号,使DAC0832接收AT89S51送来的数字量。 MOV R0,#0FEH ;DAC端口地址FEHR0 MOVX R0,A ;单片机的 和译码器FEH输出端有效,22,23,现举例说明单缓冲方式下DAC0832的应用。 【例11-1】 DAC0832用作波形发生器。试根据图11-3,分别写出产生锯齿波、三角波和矩形波的程序。 在图11-3中,运算放大器A输出端Vout直接反馈到Rfb,故这种接线产生的模拟输出电压是单极性的。产生上述三种波形的参考程序如下。 锯齿波的产生 ORG 2000H START: MOV R0,#0FEH ;DAC地址FEH R0 MOV A,#00H ;数字量A,23,24,LOOP: MOVX R0,A ;数字量D/A转换器 INC A ;数字量逐次加1 SJMP LOOP 当输入数字量从0开始,逐次加1进行D/A转换,模拟量与其成正比输出。当A = FFH时,再加1则溢出清0,模拟输出又为0,然后又重新重复上述过程,如此循环,输出的波形就是锯齿波,如图11-4所示。 实际上,每一上升斜边要分成256个小台阶,每个小台阶暂留时间为执行后三条指令所需要的时间。因此 “INC A”指令后插入NOP指令或延时程序,则可改变锯齿波频率。,24,25,25,图11-4 DAC0832产生的锯齿波输出,26, 三角波的产生。 ORG 2000H START: MOV R0,#0FEH MOV A,#00H UP: MOVX R0,A;产生三角波的上升边 INC A JNZ UP DOWN:DEC A ;A=0时减1为FFH, 产生三角波的下降边,26,27,MOVX R0,A JNZ DOWN SJMP UP 输出的三角波如图11-5所示。 图11-5 DAC0832产生的三角波输出,27,28, 矩形波的产生 ORG 2000H START: MOV R0,#0FEH LOOP: MOV A,#data1 ;#data1为上限电平对应的数字量 MOVX R0,A ;置矩形波上限电平 LCALL DELAY1 ;调用高电平延时程序 MOV A,#data2 ;#data2为下限电平对应的数字量 MOVX R0,A ;置矩形波下限电平 LCALL DELAY2 ;调用低电平延时程序 SJMP LOOP ;重复进行下一个周期,28,29,图11-6 DAC0832产生的矩形波输出 输出的矩形波如图11-6所示。 DELAY1、DELAY2为两个延时程序,分别决定输出的矩形波高、低电平时的持续宽度。矩形波频率也可用延时方法改变。,29,30,(2)双缓冲方式 多路的D/A转换要求同步输出时,必须采用双缓冲同步方式。此方式工作时,数字量的输入锁存和D/A转换输出是分两步完成的。单片机必须通过 来锁存待转换的数字量,通过 来启动D/A转换(见图11-2)。 因此,双缓冲方式下,DAC0832应该为单片机提供两个I/O端口。AT89S51单片机和DAC0832在双缓冲方式下的连接如图11-7所示。,30,31,31,图11-7 单片机和两片DAC0832的双缓冲方式接口电路,32,由图11-7可见,1#DAC0832因 和译码器FDH相连而占有FDH和FFH两个I/O端口地址(由译码器的连接逻辑来决定),而2#DAC
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号