数模和模数转换接口.ppt

上传人:wuy****n92 文档编号:54007966 上传时间:2022-10-27 格式:PPT 页数:18 大小:780.50KB
返回 下载 相关 举报
数模和模数转换接口.ppt_第1页
第1页 / 共18页
数模和模数转换接口.ppt_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《数模和模数转换接口.ppt》由会员分享,可在线阅读,更多相关《数模和模数转换接口.ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第六章第六章 数数/模和模模和模/数转换接口数转换接口数数/模和模模和模/数转换电路的概念数转换电路的概念在单片机的实时控制和智能仪表等应用系统中,被控在单片机的实时控制和智能仪表等应用系统中,被控制或被测量对象的有关变量,往制或被测量对象的有关变量,往往是一些连续变化的往是一些连续变化的模拟量,如温度、压力、流量、速度等物理量。这些模拟量,如温度、压力、流量、速度等物理量。这些模拟量必须转换模拟量必须转换成数字量后才能输入到计算机进行处成数字量后才能输入到计算机进行处理。计算机处理的结果,也常常需要转换为模拟信理。计算机处理的结果,也常常需要转换为模拟信号,号,驱动相应的执行机构,实现对被控

2、对象的控制。若输驱动相应的执行机构,实现对被控对象的控制。若输入是非电的模拟信号,还需通过入是非电的模拟信号,还需通过传感器转换成电信号。传感器转换成电信号。实现模拟量变换成数字量的设备称为模数转换器实现模拟量变换成数字量的设备称为模数转换器(AD),数字量转,数字量转换成模拟量的设备称为数模转换器换成模拟量的设备称为数模转换器(DA)。具有模拟量输入和模拟量输出的具有模拟量输入和模拟量输出的MCS-51应应用用系统结构系统结构 模数数模转换技术是数字测量和数字控制领域中的一个专门模数数模转换技术是数字测量和数字控制领域中的一个专门分支。在微电子技术已分支。在微电子技术已取得巨大成果的今天,对

3、那些具有明确取得巨大成果的今天,对那些具有明确应用目标的单片微机产品的设计人员来说,只需应用目标的单片微机产品的设计人员来说,只需要合理地选用要合理地选用商品化的大规模商品化的大规模AD、DA电路器件,了解它们的功能和接口电路器件,了解它们的功能和接口方法即可。方法即可。14.2.1 DAC0832的引脚功能的引脚功能DAC0832是一典型的是一典型的8位并行位并行D/A转换器。为转换器。为20引脚的双列直插引脚的双列直插式封装式封装 DAC0832内部主要由两个内部主要由两个8位的寄存器和一个位的寄存器和一个8位的位的DA转换器转换器及一些控制逻辑组成。其内部结构及引脚排列如下图所示。及一些

4、控制逻辑组成。其内部结构及引脚排列如下图所示。DI0DI7:8位数据输入引脚。逻辑电平与位数据输入引脚。逻辑电平与TIL兼容。兼容。ILE:输入数据锁存允许端,高电平有效。:输入数据锁存允许端,高电平有效。/CS:芯片片选输人端,低电平有效。:芯片片选输人端,低电平有效。/WR1:输入寄存器的写信号,低电平有效。当:输入寄存器的写信号,低电平有效。当/CS、ILE及信号及信号/WR1同时有效时,同时有效时,DI0DI7的数据被锁存到输入寄存器。的数据被锁存到输入寄存器。/XFER:数据传送控制器信号,低电平有效。:数据传送控制器信号,低电平有效。/WR2:DAC寄存器的写信号,低电平有效。当寄

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

6、外部运算放大器时提供反馈电阻。反馈电阻。VCC:芯片工作电源电压。范围:芯片工作电源电压。范围:+5+15V。AGND:模拟地。模拟信号和基准电源的参考地。:模拟地。模拟信号和基准电源的参考地。DGND:数字地。工作电源和数字逻辑地。:数字地。工作电源和数字逻辑地。14.2.2 DAC0832的工作方式的工作方式1直通工作方式直通工作方式 当当0832所有的控制信号所有的控制信号(/CS、/WR1、/WR2、ILE、/XFER)都为有效时,两个寄存都为有效时,两个寄存器处于直通状态,此时数据线器处于直通状态,此时数据线的数字信号经两个寄存器直接的数字信号经两个寄存器直接进入进入DA转换器进行转

7、换并转换器进行转换并输出。此工作方式适用于连续输出。此工作方式适用于连续反馈控制中。反馈控制中。2单缓冲工作方式单缓冲工作方式单缓冲工作方式是使两个寄存单缓冲工作方式是使两个寄存器始终有一个器始终有一个(多为多为DAC寄存器寄存器)处于直通状态,另一个处于受处于直通状态,另一个处于受控状态。如使控状态。如使/WR2=0和和/XFER=0,或将,或将/WR1与与/WR2相连及相连及/XFER与与/CS相连,则相连,则DAC寄存器处于寄存器处于直通状态,输入寄存器处于受直通状态,输入寄存器处于受控状态。控状态。应用系统中如只有一路应用系统中如只有一路DA转转换,或有多路转换但不要求同换,或有多路转

8、换但不要求同步输出时,可采用单缓冲工作步输出时,可采用单缓冲工作方式。方式。3双缓冲工作方式双缓冲工作方式双缓冲工作方式是使输入寄存双缓冲工作方式是使输入寄存器和器和DAC寄存器都处于受控状寄存器都处于受控状态。这主要用于多路态。这主要用于多路DA转换转换系统以实现多路模拟信号的同系统以实现多路模拟信号的同步输出。例如有三个八位二进步输出。例如有三个八位二进制数,分别先后进入三个制数,分别先后进入三个DAC0832芯片的输入寄存器,芯片的输入寄存器,这时若将三个这时若将三个DAC0832的的DAC寄存器的锁存信号同时变为低寄存器的锁存信号同时变为低电平(三个电平(三个DAC0832的引脚的引脚

9、/WR2、/XFER分别接在一起,即分别接在一起,即可达到此目的),可达到此目的),则分别先后锁存在三个则分别先后锁存在三个DAC0832芯片的输入寄存器中的数据同芯片的输入寄存器中的数据同时打入其时打入其DAC寄存器,并随之进行数模转换,同时输出相应的模寄存器,并随之进行数模转换,同时输出相应的模拟量。若三个拟量。若三个DAC0832芯片的芯片的DAC寄存器处于直通状态,就无寄存器处于直通状态,就无法控制三路模拟信号的同步输出。法控制三路模拟信号的同步输出。14.3 DAC0832与单片机的接口及应用与单片机的接口及应用图中为采用单缓冲工作方式的一路图中为采用单缓冲工作方式的一路DA输出与输

10、出与8051单片机的连接单片机的连接图。图中采用将芯片两级寄存器的控制信号并接的方式,即将图。图中采用将芯片两级寄存器的控制信号并接的方式,即将DAC0832的的/WR1和和/WR2并接后与并接后与805l的的/WR信号线相连,信号线相连,/CS和和/XFER并接后与相连,并将并接后与相连,并将ILE接高电平。在这种工作方式下,输接高电平。在这种工作方式下,输入数据在控制信号的作用下,送入入数据在控制信号的作用下,送入DAC寄存器,再经寄存器,再经DA转换输转换输出一个与输入数据对应的模拟量。出一个与输入数据对应的模拟量。DA转换器的基转换器的基准电压准电压VREF由稳由稳压管上的电压分压管上

11、的电压分压后提供。图中压后提供。图中运算放大器的作运算放大器的作用将用将DA转换器转换器输出电流转换成输出电流转换成电压输出。电压输出。D/A转换程转换程序设计序设计图中的接法是采用线选法把图中的接法是采用线选法把DAC0832当作当作8031扩展的一个扩展的一个并行并行IO口,当口,当P2.7=0时,则时,则信号信号/CS和和/XFER有效,当有效,当P3.6=0时,则信号时,则信号/WR1和和/WR2有效,将一个有效,将一个8位数据送入位数据送入DAC0832完成转换的指令如下:完成转换的指令如下:#include/包含头文件包含头文件sbit DA_CS=P27;/定义定义DA的的CS端

12、口端口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;delayms(50);/延时延时50ms /延时函数延时函数void delayms(unsigned int xms)unsigned int i,j;for(i=xms;i0;

13、i-)for(j=110;j0;j-);#include/包含头文件sbit 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=P1;delayms(50);/延时50ms/延时函数void delayms(unsigned int xms)unsigned int i,j;for

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

15、于逐次逼近法由于逐次逼近法AD转换器在精度、速度和价格转换器在精度、速度和价格上都适中,上都适中,8位的分辨率也可满足一般位的分辨率也可满足一般的应用要求,的应用要求,是最常见的是最常见的AD转换器件。下面我们主要介绍逐转换器件。下面我们主要介绍逐次逼近型次逼近型AD转换器的工作转换器的工作原理及典型芯片原理及典型芯片ADC0809与单片机的接口方法。与单片机的接口方法。A/D转换器转换器的工作原理的工作原理逐次逼近法逐次逼近法AD转换器也称逐次比较法转换器也称逐次比较法A/D。对于一个输出为。对于一个输出为N位位的逐次逼近法的逐次逼近法A/D转转换器,其内部原理框图如图所换器,其内部原理框图

16、如图所示。主要以一示。主要以一DA(数模数模)转换为基转换为基础,加上比较器、础,加上比较器、N位逐次逼近寄存位逐次逼近寄存器、置器、置数控制逻辑电路以及时钟等组数控制逻辑电路以及时钟等组成。它通过对最高位成。它通过对最高位(DN1)至最低至最低位位(D0)的逐次检测比较来逼近被转的逐次检测比较来逼近被转换的输入电压,转换原理为:换的输入电压,转换原理为:在启动信号控制下开始转换,置数控制逻辑电路首先置在启动信号控制下开始转换,置数控制逻辑电路首先置N位寄存器位寄存器最最高位高位(DN1)为为1,其余位清,其余位清0,随后,随后N位寄存器的内容经位寄存器的内容经DA转换转换后得到整个量程一半的

17、后得到整个量程一半的模拟电压模拟电压VN,通过电压比较器与输入电压,通过电压比较器与输入电压VX比较。若比较。若VXVN时,则保留时,则保留DN1=1;若;若VXVN时,则时,则DN1位清位清0。然后,控制逻辑使然后,控制逻辑使N位寄存器的下一位位寄存器的下一位(DN2)置置l,与上次的结,与上次的结果一果一起经起经DA转换再后与转换再后与VX比较,重复上述过程,直至判断出位比较,重复上述过程,直至判断出位D0取取1还是还是0,然后,然后 DONE发出信号表示转换结束。经过上述发出信号表示转换结束。经过上述N次比较后,次比较后,N位寄存器中的数据就是与输入模拟量对应的数字量,经输出缓位寄存器中

18、的数据就是与输入模拟量对应的数字量,经输出缓冲冲器输出即完成了转换。器输出即完成了转换。整个转换过程就是这整个转换过程就是这整个转换过程就是这整个转换过程就是这样通过逐次比较逼近样通过逐次比较逼近样通过逐次比较逼近样通过逐次比较逼近的方式实现的,转换的方式实现的,转换的方式实现的,转换的方式实现的,转换速度速度速度速度由时钟频率决定,由时钟频率决定,由时钟频率决定,由时钟频率决定,一般在几微秒到上百一般在几微秒到上百一般在几微秒到上百一般在几微秒到上百微秒之间。微秒之间。微秒之间。微秒之间。14.5 ADC0809芯片芯片结构及引脚结构及引脚 ADC0809是一典型的是一典型的逐次逼近型逐次逼

19、近型8路模拟路模拟量输入、量输入、8位数字量位数字量输出的输出的A/D转换芯片,转换芯片,采采用用CMOS工艺制造,工艺制造,28引脚双列直插式封引脚双列直插式封装。图为装。图为ADC0809的的内部结构逻辑内部结构逻辑图,和图,和ADC0809的的引脚图。引脚图。ADC0809芯芯片引脚功能片引脚功能为了实现为了实现8路模拟量的路模拟量的A/D转换,芯片内部集成有一个多路模拟开转换,芯片内部集成有一个多路模拟开关,由地址译码器译码后可选通一路模拟量输入,关,由地址译码器译码后可选通一路模拟量输入,8路模拟量共用路模拟量共用一个一个AD转换器进行转换。转换结果送入输出锁存器锁存和输出。转换器进

20、行转换。转换结果送入输出锁存器锁存和输出。当外加时钟频率为当外加时钟频率为640kHz时,转换时间为时,转换时间为64us。芯片引脚功能说明如下:芯片引脚功能说明如下:IN0IN7 8路输入通道的模拟量输入端路输入通道的模拟量输入端D0D7 8位数字量输出端位数字量输出端START:启动信号。加上正脉冲后,开始启动:启动信号。加上正脉冲后,开始启动AD转换。此信号转换。此信号要求保持要求保持200ns以上。以上。ADDA、ADDB、ADDC:地址线。用于选择所需的模拟输入通道。:地址线。用于选择所需的模拟输入通道。其地址状态与模拟输入通道的对关系如表所示。其地址状态与模拟输入通道的对关系如表所

21、示。EOC:转换结束输出信号。转换开始后,:转换结束输出信号。转换开始后,EOC信号变低;转换结信号变低;转换结束时,束时,EOC返回高电平。查询这个引脚的信号状态可知返回高电平。查询这个引脚的信号状态可知AD转换转换器是否转换结束。也可以直接用作转换结束的器是否转换结束。也可以直接用作转换结束的中断请求信号,中断请求信号,CPU通过中断服务子程序读取转换后的数字量。通过中断服务子程序读取转换后的数字量。OE:输出允许控制端。:输出允许控制端。CLK:时钟信号。频率范围:,通常采用:时钟信号。频率范围:,通常采用500kHz。VCC:芯片电源电压。由于是:芯片电源电压。由于是CMOS芯片,故允

22、许的电源范围较宽芯片,故允许的电源范围较宽(+5V+15V)。GND为地端。为地端。VREF(+)和和VREF():AD转换器的正负基准参考电压输入端。转换器的正负基准参考电压输入端。一般可将一般可将VREF(+)与与VCC连接在一起,连接在一起,VREF()与与GND连接在一连接在一起。起。ALE:地址锁存信:地址锁存信号。信号的上跳沿号。信号的上跳沿把三位地址信号送把三位地址信号送入地址锁存器,并入地址锁存器,并经译码器的地址输经译码器的地址输出,以选择相应的出,以选择相应的模拟输入通道。模拟输入通道。#include/包含头文件包含头文件sbit CLOCK=P24;/定义定义ADC08

23、09的的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转换结果暂存转换结果暂存unsigned char table=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82

24、,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=0;START=1;START=0

25、;/启动启动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_

26、low;/把两位十六进制的模数转换结果拆分出低位把两位十六进制的模数转换结果拆分出低位display_low=ADC_display&0 x0f;/把低位数的段码通过把低位数的段码通过P1口送到低位数码管口送到低位数码管P1=tabledisplay_low;low_bit=1;/选通两位数码管的低位选通两位数码管的低位delayms(10);/延时延时10mslow_bit=0;/把两位十六进制的模数转换结果拆分出高位把两位十六进制的模数转换结果拆分出高位display_high=ADC_display&0 xf0;display_high=display_high4;/把高位数的段码通过把高位数的段码通过P1口送到高位数码管口送到高位数码管P1=tabledisplay_high;high_bit=1;/选通两位数码管的高位选通两位数码管的高位delayms(10);/延时延时10mshigh_bit=0;/省略省略 延时函数延时函数void delayms(unsigned int xms)

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

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁