第11章89C51单片机与DA转换器、AD转换器接口

上传人:飞*** 文档编号:48592371 上传时间:2018-07-17 格式:PPT 页数:85 大小:1.50MB
返回 下载 相关 举报
第11章89C51单片机与DA转换器、AD转换器接口_第1页
第1页 / 共85页
第11章89C51单片机与DA转换器、AD转换器接口_第2页
第2页 / 共85页
第11章89C51单片机与DA转换器、AD转换器接口_第3页
第3页 / 共85页
第11章89C51单片机与DA转换器、AD转换器接口_第4页
第4页 / 共85页
第11章89C51单片机与DA转换器、AD转换器接口_第5页
第5页 / 共85页
点击查看更多>>
资源描述

《第11章89C51单片机与DA转换器、AD转换器接口》由会员分享,可在线阅读,更多相关《第11章89C51单片机与DA转换器、AD转换器接口(85页珍藏版)》请在金锄头文库上搜索。

1、第11章 89C51单片机与D/A转换器、A/D转换器的接口非电物理量(温度、压力、流量、速度等),须经传感器转换成模拟电信号(电压或电流),必须转换成数字量,才能在单片机中处理。A/D转换器(ADC):模拟量数字量的器件。 D/A转换器(DAC):数字量模拟量的器件。数字量,也常常需要转换为模拟信号。只需合理选用商品化的大规模ADC、DAC芯片,了解引脚及功能以及与单片机的接口设计。11.1 89C51与DAC的接口11.1.1 D/A转换器概述1. 概述输入:数字量,输出:模拟量。转换过程:送到DAC的各位二进制数按其权的大小转换为相应的模拟分量,再把各模拟分量叠加,其和就是D/A转换的结

2、果。使用D/A转换器时,要注意区分:* D/A转换器的输出形式;* 内部是否带有锁存器。(1) D/A转换器的两种输出形式 两种输出形式:电压输出形式与电流输出形式。电流输出的D/A转换器,如需模拟电压输出,可在其输出端加一个I-V转换电路。(2)D/A转换器内部是否带有锁存器由于D/A转换需要一定的时间,在这段时间内D/A转换器输入端的数字量应保持稳定,为此应当在D/A转换器数字量输入端的设置锁存器。目前的D/A转换器内部大多带有锁存器,有的还具有双重或多重数据缓冲电路。2.主要技术指标(1)分辨率输入给DAC的单位数字量变化引起的模拟量输出的变化,通 常定义为输出满刻度值与2n之比。显然,

3、二进制位数越多,分 辨率越高。例如,若满量程为10V,根据定义则分辨率为10V/2n。设8位D/A转换,即n=8,分辨率为10V/2n =39.1mV,该值占满量程的0.391%,用1LSB表示。同理:10位 D/A:1 LSB=9.77mV=0.1% 满量程12位 D/A:1 LSB=2.44mV=0.024% 满量程根据对DAC分辨率的需要,来选定DAC的位数。 (2)建立时间描述DAC转换快慢的参数,表明转换速度。定义:为从输入数字量到输出达到终值误差(1/2)LSB(最低有效位)时所需的时间。电流输出时间较短,电压输出再加上I-V转换时间,因此建立时间要长一些。快速DAC可达1s以下。

4、(3)精度理想情况,精度与分辨率基本一致,位数越多精度越高。但由于电源电压、参考电压、电阻等各种因素存在着误差,精度与分辨率并不完全一致。位数相同,分辨率则相同,但相同位数的不同转换器精度会有所不同。例如,某型号的8位DAC精度为0.19%,另一型号的8位DAC精度为0.05%。11.1.2 AT89C51与8位DAC0832的接口1. DAC0832芯片介绍(1)DAC0832的特性美国国家半导体公司产品,具有两个输入数据寄存器的8位DAC,能直接与89C51单片机相连。主要特性如下:* 分辨率为8位;* 电流输出,稳定时间为1s;* 可双缓冲输入、单缓冲输入或直接数字输入;* 单一电源供电

5、(+5+15V);(2)DAC0832的引脚及逻辑结构引脚:图11-1DAC0832的逻辑结构:图11-2引脚功能:DI0DI7:8位数字信号输入端CS*: 片选端。ILE: 数据锁存允许控制端,高电平有效。WR1*:输入寄存器写选通控制端。当CS*=0、ILE=1、WR1*=0时,数据信号被锁存在输入寄存器中。XFER*:数据传送控制。WR2* :DAC寄存器写选通控制端。当XFER*=0,WR2* =0时,输入寄存器状态传入DAC寄存器中。IOUT1:电流输出1端,输入数字量全“1”时,IOUT1最大, 输入数字量全为“0”时,IOUT1最小。 IOUT2:D/A转换器电流输出2端,IOU

6、T2+IOUT1=常数。 Rfb:外部反馈信号输入端, 内部已有反馈电阻Rfb,根据需要也可外接反馈电阻。Vcc:电源输入端,可在+5V+15V范围内。DGND:数字信号地。AGND:模拟信号地。“8位输入寄存器”用于存放CPU送来的数字量,使输入数字量得到缓冲和锁存,由LE1*控制;“8位DAC寄存器” 存放待转换的数字量,由LE2*控制;“8位D/A转换电路”由T型电阻网络和电子开关组成,T型电阻网络输出和数字量成正比的模拟电流。因此,DAC0832通常需要外接I-V转换的运算放大器电路,才能得到模拟输出电压。2. AT89C51与DAC0832的接口电路设计设计AT89C51单片机与DA

7、C0832的接口电路时,常用单缓冲方式或双缓冲方式的单极性输出。(1)单缓冲方式DAC0832的两个数据缓冲器有一个处于直通方式,另一个处于受控的锁存方式。在不要求多路输出同步的情况下,可采用单缓冲方式。单缓冲方式的接口如图11-3:图11-3图11-3中,WR2*和XFER*接地,故DAC0832的“8位DAC寄存器”(见图11-2)处于直通方式。“8位输入寄存器”受CS*和WR1*端控制,且由译码器输出端FEH送来(也可由P2口的某一根口线来控制)。因此,89C51执行如下两条指令就可在WR1*和CS*上产生低电平信号,使0832接收89C51送来的数字量。MOVR0,#0FEH ;DAC

8、地址FEHR0 MOVX R0,A ;WR*和译码器FEH输出端有效现说明DAC0832单缓冲方式的应用。例11-1 DAC0832用作波形发生器。试根据图11-3,分别写出产生锯齿波、三角波和矩形波的程序。 锯齿波的产生ORG 2000HSTART:MOV R0,#0FEH;DAC地址FEH R0 MOV A,#00H;数字量A LOOP: MOVX R0,A ;数字量D/A转换器 INC A ;数字量逐次加1 SJMP LOOP图11-4输入数字量从0开始,逐次加1,为FFH时,加1则清0,模拟输出又为0,然后又循环,输出锯齿波,如图11-4。每一上升斜边分256个小台阶,每个小台阶暂留时

9、间为执行后三条指令所需要的时间。 三角波的产生ORG 2000H START: MOV R0,#0FEH MOV A,#00H UP: MOVXR0,A ;三角波上升边 INC A JNZ UP DOWN: DEC A;A=0时再减1又为FFH MOVX R0,A JNZ DOWN ;三角波下降边 SJMP UP 矩形波的产生ORG 2000H START: MOV R0,#0FEH LOOP: MOV A,#data1 MOVX R0,A;置矩形波上限电平 LCALL DELAY1;调用高电平延时程序 MOV A,#data2图11-5MOVX R0,A;置矩形波下限电平LCALL DELA

10、Y2;调用低电平延时程序SJMP LOOP;重复进行下一个周期DELAY1、DELAY2为两个延时程序,决定矩形波高、低电平 时的持续时间。频率也可采用延时长短来改变。图11-6(2)双缓冲方式多路同步输出,必须采用双缓冲同步方式。接口电路如图11- 7:1#DAC0832因和译码器FDH相连,占有两个端口地址FDH和FFH 。2#DAC0832的两个端口地址为FEH和FFH。其中,FDH和FEH分别为1#和2#DAC0832的数字量输入控制端口地址,而FFH为启动D/A转换的端口地址。图11-7中DAC输出的VX和VY信号要同步,控制X-Y绘图仪绘制的曲线光滑,否则绘制的曲线是阶梯状。控制程

11、序如下:图11-7例11-2 设AT89C51单片机内部RAM中有两个长度为20的数据块,其起始地址为分别为addr1和addr2,请根据图11-7所示,编写能把addr1和addrr2中数据从1#和2#DAC0832同步输出的程序。程序中addr1和addr2中的数据,即为绘图仪所绘制曲线的x、y坐标点。 DAC0832各端口地址:FDH: 1#DAC0832数字量输入控制端口 FEH: 2#DAC0832数字量输入控制端口FFH: 1#和2#DAC0832启动D/A转换端口工作寄存器0区的R1指向addr1;1区的R1指向addr2;0区的R2存放数据块长度;0区和1区的R0指向DAC端口

12、地址。程序为:ORG 2000H addr1 DATA 20H; 定义存储单元addr2 DATA 40H; 定义存储单元DTOUT: MOV R1,#addr; 0区R1指向addr1 MOV R2,#20; 数据块长度送0区R2 SETB RS0; 切换到工作寄存器1区 MOV R1,#addr2; 1区R1指向addr2CLR RS0; 返回0区 NEXT: MOV R0,#0FDH; 0区R0指向1#DAC0832数;字量控制端口MOV A,R1;addr1中数据送AMOVX RO,A;addr1中数据送1#DAC0832INC R1 ; 修改addr1指针0区R1 SETB RS0

13、; 转1区。MOV R0,#0FEH ;1区R0指向2#DAC0832数字量;控制端口 MOV A,R1 ;addr2中数据送AMOVX R0,A ;addr2中数据送2#DAC0832INC R1 ;修改addr2指针1区R1INC R0 ;1区R0指向DAC的启动D/A转换端口MOVX R0,A ;启动DAC进行转换CLR RS0 ;返回0区 DJNZ R2,NEXT ;若未完,则跳NEXT LJMP DTOUT ;若送完,则循环 END3DAC0832的单、双极性的电压输出有些应用场合需要DAC0832为单极性模拟电压输出,而有些场合则要求DAC0832双极性模拟电压输出,下面简单介绍。

14、(1)DAC用作单极性电压输出。在需要单极性模拟电压环境下,可以按照图11-3所示接线。由于DAC0832是8位的D/A转换器,由基尔霍夫定律列出方程组,故可得输出电压vo与输入数字量B的关系为式中,B = 27b7+ 26b6+21b1+20b0;VREF/256为一常数。显然,vo和输入数字量B成正比。B为0时, vo也为0,输入数字量为255时, vo为最大值,输出电压为单极性。(2)DAC用作双极性电压输出。在需双极性电压输出的场合下,可以按照图11-8所示接线。图中,DAC0832的数字量由单片机送来,A1和A2均为运算放大器,vo通过2R电阻反馈到运算放大器A2输入端,其他如图11

15、-8所示。G点为虚拟地,可由基尔霍夫定律列出方程组,并解得由上式可知,在选用+VREF时,若输入数字量最高位b7为“1”,则输出模拟电压vo为正;若输入数字量最高位为“0”,则输出模拟电压vo为负。在选用-VREF时,vo输出值正好和选用+VREF时极性相反。图11-811.1.3 89C51与12位电压输出型D/A转换器AD667的接口设计8位DAC分辨率不够,可采用10位、12位、14位、16位的DAC。本节介绍89C51与12位D/A转换器AD667的接口设计。AD667是分辨率为12位的电压输出型D/A转换器,建立时间3s(至0.01%)。输入方式:双缓冲输入;输出方式:电压输出,通过

16、硬件编程可输出+5V,+10V,2.5V,5V和10V;内含高稳定的基准电压源可方便地与4位、8位或16位微处理器接口;双电源工作电压:12V15V。1.引脚介绍标准28脚双列直插式。图11-9为引脚图,表11-1为其引脚说明。(1)内部功能结构及应用特性图11-10是AD667内部功能结构框图。应用特性: 模拟电压输出范围的配置AD667通过片外引脚的不同连接,可获得不同的输出电压量程范围。单极性工作时,可以获得05V和010V的电压。双极性工作时,可获得2.5V,5.5V和10V的电压。具体量程配置可由引脚1,2,3,9的不同连接实现,如表11-2所列。图11-9图11-10由于AD667内置的量程电阻与

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号