数模和模数转换接口.ppt

上传人:小飞机 文档编号:5059021 上传时间:2023-06-01 格式:PPT 页数:18 大小:782.50KB
返回 下载 相关 举报
数模和模数转换接口.ppt_第1页
第1页 / 共18页
数模和模数转换接口.ppt_第2页
第2页 / 共18页
数模和模数转换接口.ppt_第3页
第3页 / 共18页
数模和模数转换接口.ppt_第4页
第4页 / 共18页
数模和模数转换接口.ppt_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《数模和模数转换接口.ppt》由会员分享,可在线阅读,更多相关《数模和模数转换接口.ppt(18页珍藏版)》请在三一办公上搜索。

1、第六章 数/模和模/数转换接口,数/模和模/数转换电路的概念,在单片机的实时控制和智能仪表等应用系统中,被控制或被测量对象的有关变量,往往是一些连续变化的模拟量,如温度、压力、流量、速度等物理量。这些模拟量必须转换成数字量后才能输入到计算机进行处理。计算机处理的结果,也常常需要转换为模拟信号,驱动相应的执行机构,实现对被控对象的控制。若输入是非电的模拟信号,还需通过传感器转换成电信号。实现模拟量变换成数字量的设备称为模数转换器(AD),数字量转换成模拟量的设备称为数模转换器(DA)。,具有模拟量输入和模拟量输出的MCS-51应用系统结构,模数数模转换技术是数字测量和数字控制领域中的一个专门分支

2、。在微电子技术已取得巨大成果的今天,对那些具有明确应用目标的单片微机产品的设计人员来说,只需要合理地选用商品化的大规模AD、DA电路器件,了解它们的功能和接口方法即可。,14.2.1 DAC0832的引脚功能,DAC0832是一典型的8位并行D/A转换器。为20引脚的双列直插式封装 DAC0832内部主要由两个8位的寄存器和一个8位的DA转换器及一些控制逻辑组成。其内部结构及引脚排列如下图所示。,DI0DI7:8位数据输入引脚。逻辑电平与TIL兼容。ILE:输入数据锁存允许端,高电平有效。/CS:芯片片选输人端,低电平有效。/WR1:输入寄存器的写信号,低电平有效。当/CS、ILE及信号/WR

3、1同时有效时,DI0DI7的数据被锁存到输入寄存器。,/XFER:数据传送控制器信号,低电平有效。/WR2:DAC寄存器的写信号,低电平有效。当/WR2和/XFER信号同时有效时,将输入寄存器中的内容锁存到DAC寄存器中。,VREF:基准参考电压源输入端。电压范围:10+10VIOUT1:输出电流1。其值随转换的输入数据线性变化,输入数据为0FFH时,IOUT1输出最大,输入数据为00H时,IOUT1输出最小。IOUT2:输出电流2。RFB:芯片内部反馈电阻输入引脚,为使用外部运算放大器时提供反馈电阻。,VCC:芯片工作电源电压。范围:+5+15V。AGND:模拟地。模拟信号和基准电源的参考地

4、。DGND:数字地。工作电源和数字逻辑地。,14.2.2 DAC0832的工作方式,1直通工作方式 当0832所有的控制信号(/CS、/WR1、/WR2、ILE、/XFER)都为有效时,两个寄存器处于直通状态,此时数据线的数字信号经两个寄存器直接进入DA转换器进行转换并输出。此工作方式适用于连续反馈控制中。,2单缓冲工作方式单缓冲工作方式是使两个寄存器始终有一个(多为DAC寄存器)处于直通状态,另一个处于受控状态。如使/WR2=0和/XFER=0,或将/WR1与/WR2相连及/XFER与/CS相连,则DAC寄存器处于直通状态,输入寄存器处于受控状态。应用系统中如只有一路DA转换,或有多路转换但

5、不要求同步输出时,可采用单缓冲工作方式。,3双缓冲工作方式双缓冲工作方式是使输入寄存器和DAC寄存器都处于受控状态。这主要用于多路DA转换系统以实现多路模拟信号的同步输出。例如有三个八位二进制数,分别先后进入三个DAC0832芯片的输入寄存器,这时若将三个DAC0832的DAC寄存器的锁存信号同时变为低电平(三个DAC0832的引脚/WR2、/XFER分别接在一起,即可达到此目的),,则分别先后锁存在三个DAC0832芯片的输入寄存器中的数据同时打入其DAC寄存器,并随之进行数模转换,同时输出相应的模拟量。若三个DAC0832芯片的DAC寄存器处于直通状态,就无法控制三路模拟信号的同步输出。,

6、14.3 DAC0832与单片机的接口及应用,图中为采用单缓冲工作方式的一路DA输出与8051单片机的连接图。图中采用将芯片两级寄存器的控制信号并接的方式,即将DAC0832的/WR1和/WR2并接后与805l的/WR信号线相连,/CS和/XFER并接后与P2.7相连,并将ILE接高电平。在这种工作方式下,输入数据在控制信号的作用下,送入DAC寄存器,再经DA转换输出一个与输入数据对应的模拟量。,DA转换器的基准电压VREF由稳压管上的电压分压后提供。图中运算放大器的作用将DA转换器输出电流转换成电压输出。,D/A转换程序设计,图中的接法是采用线选法把DAC0832当作8031扩展的一个并行I

7、O口,当P2.7=0时,则信号/CS和/XFER有效,当P3.6=0时,则信号/WR1和/WR2有效,将一个8位数据送入DAC0832完成转换的指令如下:,#include/包含头文件reg51.hsbit DA_CS=P27;/定义DA的CS端口sbit DA_WR=P36;/定义DA的WR端口void delayms(unsigned int);/声明delayms函数void main()DA_CS=0;/DAC0832的/CS和/XFER引脚有效 DA_WR=0;/DAC0832的/WR1和/WR2引脚有效 while(1)/把数字量55H送到P0转换为模拟量 P0=0 x7F;del

8、ayms(50);/延时50ms,/延时函数void delayms(unsigned int xms)unsigned int i,j;for(i=xms;i0;i-)for(j=110;j0;j-);,#include/包含头文件reg51.hsbit DA_CS=P27;/定义DA的CS端口sbit DA_WR=P36;/定义DA的WR端口void delayms(unsigned int);/声明delayms函数void main()DA_CS=0;/DAC0832的/CS和/XFER引脚有效DA_WR=0;/DAC0832的/WR1和/WR2引脚有效while(1)/把数字量55H

9、送到P0转换为模拟量P0=P1;delayms(50);/延时50ms/延时函数void delayms(unsigned int xms)unsigned int i,j;for(i=xms;i0;i-)for(j=110;j0;j-);,14.4 A/D转换器的介绍,用于模数(A/D)转换的集成芯片种类很多,按其转换原理可分为计数比较型、逐次逼近型、双积分型等等。不同AD转换器芯片在速度、精度和价格上均有差别,其分辨率(输出转换结果的二进制数或BCD码位数)也有8位、10位、12位及16位等多种,这也是应用选型时应主要考虑的因素。由于逐次逼近法AD转换器在精度、速度和价格上都适中,8位的分

10、辨率也可满足一般的应用要求,是最常见的AD转换器件。下面我们主要介绍逐次逼近型AD转换器的工作原理及典型芯片ADC0809与单片机的接口方法。,A/D转换器的工作原理,逐次逼近法AD转换器也称逐次比较法A/D。对于一个输出为N位的逐次逼近法A/D转换器,其内部原理框图如图所示。主要以一DA(数模)转换为基础,加上比较器、N位逐次逼近寄存器、置数控制逻辑电路以及时钟等组成。它通过对最高位(DN1)至最低位(D0)的逐次检测比较来逼近被转换的输入电压,转换原理为:,在启动信号控制下开始转换,置数控制逻辑电路首先置N位寄存器最高位(DN1)为1,其余位清0,随后N位寄存器的内容经DA转换后得到整个量

11、程一半的模拟电压VN,通过电压比较器与输入电压VX比较。若VXVN时,则保留DN1=1;若VXVN时,则DN1位清0。然后,控制逻辑使N位寄存器的下一位(DN2)置l,与上次的结果一起经DA转换再后与VX比较,重复上述过程,直至判断出位D0取1还是0,然后 DONE发出信号表示转换结束。经过上述N次比较后,N位寄存器中的数据就是与输入模拟量对应的数字量,经输出缓冲器输出即完成了转换。,整个转换过程就是这样通过逐次比较逼近的方式实现的,转换速度由时钟频率决定,一般在几微秒到上百微秒之间。,14.5 ADC0809芯片结构及引脚,ADC0809是一典型的逐次逼近型8路模拟量输入、8位数字量输出的A

12、/D转换芯片,采用CMOS工艺制造,28引脚双列直插式封装。图为ADC0809的内部结构逻辑图,和ADC0809的引脚图。,ADC0809芯片引脚功能,为了实现8路模拟量的A/D转换,芯片内部集成有一个多路模拟开关,由地址译码器译码后可选通一路模拟量输入,8路模拟量共用一个AD转换器进行转换。转换结果送入输出锁存器锁存和输出。当外加时钟频率为640kHz时,转换时间为64us。,芯片引脚功能说明如下:IN0IN7 8路输入通道的模拟量输入端D0D7 8位数字量输出端START:启动信号。加上正脉冲后,开始启动AD转换。此信号要求保持200ns以上。,ADDA、ADDB、ADDC:地址线。用于选

13、择所需的模拟输入通道。其地址状态与模拟输入通道的对关系如表所示。,EOC:转换结束输出信号。转换开始后,EOC信号变低;转换结束时,EOC返回高电平。查询这个引脚的信号状态可知AD转换器是否转换结束。也可以直接用作转换结束的中断请求信号,CPU通过中断服务子程序读取转换后的数字量。OE:输出允许控制端。CLK:时钟信号。频率范围:10kHz1.2MHz,通常采用500kHz。,VCC:芯片电源电压。由于是CMOS芯片,故允许的电源范围较宽(+5V+15V)。GND为地端。VREF(+)和VREF():AD转换器的正负基准参考电压输入端。一般可将VREF(+)与VCC连接在一起,VREF()与G

14、ND连接在一起。,ALE:地址锁存信号。信号的上跳沿把三位地址信号送入地址锁存器,并经译码器的地址输出,以选择相应的模拟输入通道。,#include/包含头文件reg51.hsbit CLOCK=P24;/定义ADC0809的CLOCK引脚sbit EOC=P25;/定义ADC0809的EOC引脚sbit START=P26;/定义ADC0809的START引脚sbit OE=P27;/定义ADC0809的OE引脚sbit high_bit=P30;/定义数码管的高位位选通sbit low_bit=P31;/定义数码管的低位位选通unsigned char ADC_val;/定义AD转换结果暂

15、存unsigned char table=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 x88,0 x83,0 xc6,0 xa1,0 x86,0 x8e;/0F的段码表void display(unsigned char);/显示函数声明void delayms(unsigned int);/延时函数声明/主程序void main()TMOD=0 x02;/设置定时器0为工作方式2TH0=245;/定时器0,10us中断一次TL0=0;EA=1,ET0=1;/开放中断TR0=1;/启动定时while(1)START

16、=0;START=1;START=0;/启动A/D转换 while(EOC);/等待EOC变低 while(!EOC);/等待EOC变低,转换结束 OE=1;ADC_val=P0;OE=0;/读转换结果 display(ADC_val);/显示16进制转换结果,/定时器0中断服务程序void time0_int()interrupt 1CLOCK=CLOCK;/取反,产生方波/显示函数void display(unsigned char ADC_display)unsigned char display_high,display_low;/把两位十六进制的模数转换结果拆分出低位display_low=ADC_display/省略 延时函数void delayms(unsigned int xms),

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号