《第六章数模和模数转换接口PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第六章数模和模数转换接口PPT讲稿.ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第六章数模和模数转换接口第1页,共18页,编辑于2022年,星期三数数/模和模模和模/数转换电路的概念数转换电路的概念在单片机的实时控制和智能仪表等应用系统中,被控制在单片机的实时控制和智能仪表等应用系统中,被控制或被测量对象的有关变量,往或被测量对象的有关变量,往往是一些连续变化的模拟往是一些连续变化的模拟量,如温度、压力、流量、速度等物理量。这些模拟量量,如温度、压力、流量、速度等物理量。这些模拟量必须转换必须转换成数字量后才能输入到计算机进行处理。计算成数字量后才能输入到计算机进行处理。计算机处理的结果,也常常需要转换为模拟信机处理的结果,也常常需要转换为模拟信号,驱动相应号,驱动相应的
2、执行机构,实现对被控对象的控制。若输入是非电的的执行机构,实现对被控对象的控制。若输入是非电的模拟信号,还需通过模拟信号,还需通过传感器转换成电信号。实现模拟量传感器转换成电信号。实现模拟量变换成数字量的设备称为模数转换器变换成数字量的设备称为模数转换器(AD),数字量转,数字量转换成模拟量的设备称为数模转换器换成模拟量的设备称为数模转换器(DA)。第2页,共18页,编辑于2022年,星期三具有模拟量输入和模拟量输出的具有模拟量输入和模拟量输出的MCS-51应应用系统用系统结构结构 模数数模转换技术是数字测量和数字控制领域中的一个专门分支。在模数数模转换技术是数字测量和数字控制领域中的一个专门
3、分支。在微电子技术已微电子技术已取得巨大成果的今天,对那些具有明确应用目标的单片微取得巨大成果的今天,对那些具有明确应用目标的单片微机产品的设计人员来说,只需机产品的设计人员来说,只需要合理地选用商品化的大规模要合理地选用商品化的大规模AD、DA电路器件,了解它们的功能和接口方法即可。电路器件,了解它们的功能和接口方法即可。第3页,共18页,编辑于2022年,星期三14.2.1 DAC0832的引脚功能的引脚功能DAC0832是一典型的是一典型的8位并行位并行D/A转换器。为转换器。为20引脚的双列直插式封引脚的双列直插式封装装 DAC0832内部主要由两个内部主要由两个8位的寄存器和一个位的
4、寄存器和一个8位的位的DA转换器及转换器及一些控制逻辑组成。其内部结构及引脚排列如下图所示。一些控制逻辑组成。其内部结构及引脚排列如下图所示。第4页,共18页,编辑于2022年,星期三DI0DI7:8位数据输入引脚。逻辑电平与位数据输入引脚。逻辑电平与TIL兼容。兼容。ILE:输入数据锁存允许端,高电平有效。:输入数据锁存允许端,高电平有效。/CS:芯片片选输人端,低电平有效。:芯片片选输人端,低电平有效。/WR1:输入寄存器的写信号,低电平有效。当:输入寄存器的写信号,低电平有效。当/CS、ILE及信号及信号/WR1同时有效同时有效时,时,DI0DI7的数据被锁存到输入寄存器。的数据被锁存到
5、输入寄存器。/XFER:数据传送控制器信号,低电平有效。:数据传送控制器信号,低电平有效。/WR2:DAC寄存器的写信号,低电平有效。当寄存器的写信号,低电平有效。当/WR2和和/XFER信号同时有效信号同时有效时,将输入寄存器中的内容锁存到时,将输入寄存器中的内容锁存到DAC寄存器中。寄存器中。VREF:基准参考电压源输入端。电压范围:基准参考电压源输入端。电压范围:10+10VIOUT1:输出电流:输出电流1。其值随转换的输入数据线性变化,输入数据为。其值随转换的输入数据线性变化,输入数据为0FFH时,时,IOUT1输出最大,输入数据为输出最大,输入数据为00H时,时,IOUT1输出最小。
6、输出最小。IOUT2:输出电流:输出电流2。RFB:芯片内部反馈电阻输入引脚,为使用外部运算放大器时提供反馈电阻。:芯片内部反馈电阻输入引脚,为使用外部运算放大器时提供反馈电阻。VCC:芯片工作电源电压。范围:芯片工作电源电压。范围:+5+15V。AGND:模拟地。模拟信号和基准电源的参考地。:模拟地。模拟信号和基准电源的参考地。DGND:数字地。工作电源和数字逻辑地。:数字地。工作电源和数字逻辑地。第5页,共18页,编辑于2022年,星期三14.2.2 DAC0832的工作方式的工作方式1直通工作方式直通工作方式 当当0832所有的控制信号所有的控制信号(/CS、/WR1、/WR2、ILE、
7、/XFER)都为都为有效时,两个寄存器处于直通有效时,两个寄存器处于直通状态,此时数据线的数字信号状态,此时数据线的数字信号经两个寄存器直接进入经两个寄存器直接进入DA转转换器进行转换并输出。此工作换器进行转换并输出。此工作方式适用于连续反馈控制中。方式适用于连续反馈控制中。2单缓冲工作方式单缓冲工作方式单缓冲工作方式是使两个寄存器单缓冲工作方式是使两个寄存器始终有一个始终有一个(多为多为DAC寄存器寄存器)处处于直通状态,另一个处于受控状于直通状态,另一个处于受控状态。如使态。如使/WR2=0和和/XFER=0,或将,或将/WR1与与/WR2相连及相连及/XFER与与/CS相相连,则连,则D
8、AC寄存器处于直通状态,寄存器处于直通状态,输入寄存器处于受控状态。输入寄存器处于受控状态。应用系统中如只有一路应用系统中如只有一路DA转换,或转换,或有多路转换但不要求同步输出时,可有多路转换但不要求同步输出时,可采用单缓冲工作方式。采用单缓冲工作方式。3双缓冲工作方式双缓冲工作方式双缓冲工作方式是使输入寄存器和双缓冲工作方式是使输入寄存器和DAC寄存器都处于受控状态。这主寄存器都处于受控状态。这主要用于多路要用于多路DA转换系统以实现多转换系统以实现多路模拟信号的同步输出。例如有三路模拟信号的同步输出。例如有三个八位二进制数,分别先后进入三个八位二进制数,分别先后进入三个个DAC0832芯
9、片的输入寄存器,这芯片的输入寄存器,这时若将三个时若将三个DAC0832的的DAC寄存器寄存器的锁存信号同时变为低电平(三个的锁存信号同时变为低电平(三个DAC0832的引脚的引脚/WR2、/XFER分别分别接在一起,即可达到此目的),接在一起,即可达到此目的),则分别先后锁存在三个则分别先后锁存在三个DAC0832芯片的输入寄存器中的数据同时芯片的输入寄存器中的数据同时打入其打入其DAC寄存器,并随之进行数模转换,同时输出相应的模拟量。寄存器,并随之进行数模转换,同时输出相应的模拟量。若三个若三个DAC0832芯片的芯片的DAC寄存器处于直通状态,就无法控制三寄存器处于直通状态,就无法控制三
10、路模拟信号的同步输出。路模拟信号的同步输出。第6页,共18页,编辑于2022年,星期三14.3 DAC0832与单片机的接口及应用与单片机的接口及应用图中为采用单缓冲工作方式的一路图中为采用单缓冲工作方式的一路DA输出与输出与8051单片机的连接图。图中采单片机的连接图。图中采用将芯片两级寄存器的控制信号并接的方式,即将用将芯片两级寄存器的控制信号并接的方式,即将DAC0832的的/WR1和和/WR2并并接后与接后与805l的的/WR信号线相连,信号线相连,/CS和和/XFER并接后与并接后与P2.7相连,并将相连,并将ILE接高电接高电平。在这种工作方式下,输入数据在控制信号的作用下,送入平
11、。在这种工作方式下,输入数据在控制信号的作用下,送入DAC寄存器,再寄存器,再经经DA转换输出一个与输入数据对应的模拟量。转换输出一个与输入数据对应的模拟量。DA转换器的基准转换器的基准电压电压VREF由稳压管由稳压管上的电压分压后提上的电压分压后提供。图中运算放大供。图中运算放大器的作用将器的作用将DA转换器输出电流转转换器输出电流转换成电压输出。换成电压输出。第7页,共18页,编辑于2022年,星期三D/A转换程转换程序设计序设计图中的接法是采用线选法把图中的接法是采用线选法把DAC0832当作当作8031扩展的一个并行扩展的一个并行IO口,当口,当P2.7=0时,则信号时,则信号/CS和
12、和/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引脚有效引
13、脚有效 while(1)/把数字量把数字量55H送到送到P0转换为模拟量转换为模拟量 P0=0 x7F;delayms(50);/延时延时50ms /延时函数延时函数void delayms(unsigned int xms)unsigned int i,j;for(i=xms;i0;i-)for(j=110;j0;j-);第8页,共18页,编辑于2022年,星期三第9页,共18页,编辑于2022年,星期三#include/包含头文件reg51.hsbit DA_CS=P27;/定义DA的CS端口sbit DA_WR=P36;/定义DA的WR端口void delayms(unsigned in
14、t);/声明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(i=xms;i0;i-)for(j=110;j0;j-);第10页,共18页,编辑于2022年,星期三第11页,共18页,编辑于2022年,星期三14.4 A/D转换器的介绍转换器的介绍用于模数用于模数(A/D)转
15、换的集成芯片种类很多,按其转换转换的集成芯片种类很多,按其转换原理可分为计数比较型、逐次逼原理可分为计数比较型、逐次逼近型、双积分型等等。近型、双积分型等等。不同不同AD转换器芯片在速度、精度和价格上均有差别,转换器芯片在速度、精度和价格上均有差别,其分辨率其分辨率(输出转换结果的二进制数或输出转换结果的二进制数或BCD码位数码位数)也有也有8位、位、10位、位、12位及位及16位等多种,这也是位等多种,这也是应用选型时应应用选型时应主要考虑的因素。主要考虑的因素。由于逐次逼近法由于逐次逼近法AD转换器在精度、速度和价格上都转换器在精度、速度和价格上都适中,适中,8位的分辨率也可满足一般位的分
16、辨率也可满足一般的应用要求,是最常的应用要求,是最常见的见的AD转换器件。下面我们主要介绍逐次逼近型转换器件。下面我们主要介绍逐次逼近型AD转换器的工作转换器的工作原理及典型芯片原理及典型芯片ADC0809与单片机的接与单片机的接口方法。口方法。第12页,共18页,编辑于2022年,星期三A/D转换器的转换器的工作原理工作原理逐次逼近法逐次逼近法AD转换器也称逐次比较法转换器也称逐次比较法A/D。对于一个输出为。对于一个输出为N位的位的逐次逼近法逐次逼近法A/D转转换器,其内部原理框图如图所换器,其内部原理框图如图所示。主要以一示。主要以一DA(数模数模)转换为基转换为基础,加上比较器、础,加
17、上比较器、N位逐次逼近寄存位逐次逼近寄存器、置数控制器、置数控制逻辑电路以及时钟等组逻辑电路以及时钟等组成。它通过对最高位成。它通过对最高位(DN1)至最低至最低位位(D0)的逐的逐次检测比较来逼近被转次检测比较来逼近被转换的输入电压,转换原理为:换的输入电压,转换原理为:在启动信号控制下开始转换,置数控制逻辑电路首先置在启动信号控制下开始转换,置数控制逻辑电路首先置N位寄存器最位寄存器最高位高位(DN1)为为1,其余位清,其余位清0,随后,随后N位寄存器的内容经位寄存器的内容经DA转换后得到整个量程一半的转换后得到整个量程一半的模拟电压模拟电压VN,通过电压比较器与输入电压,通过电压比较器与
18、输入电压VX比较。若比较。若VXVN时,则保留时,则保留DN1=1;若;若VXVN时,则时,则DN1位清位清0。然后,控制逻辑使。然后,控制逻辑使N位寄存器的下一位位寄存器的下一位(DN2)置置l,与上次的结,与上次的结果一起经果一起经DA转换再后与转换再后与VX比较,重复上述过程,比较,重复上述过程,直至判断出位直至判断出位D0取取1还是还是0,然后,然后 DONE发出信号表示转换结束。经过上发出信号表示转换结束。经过上述述N次比较后,次比较后,N位寄存器中的数据就是与输入模拟量对应的数字量,位寄存器中的数据就是与输入模拟量对应的数字量,经输出缓经输出缓冲器输出即完成了转换。冲器输出即完成了
19、转换。整个转换过程就是这样整个转换过程就是这样整个转换过程就是这样整个转换过程就是这样通过逐次比较逼近的方通过逐次比较逼近的方通过逐次比较逼近的方通过逐次比较逼近的方式实现的,转换速度式实现的,转换速度式实现的,转换速度式实现的,转换速度由由由由时钟频率决定,一般在时钟频率决定,一般在时钟频率决定,一般在时钟频率决定,一般在几微秒到上百微秒之间几微秒到上百微秒之间几微秒到上百微秒之间几微秒到上百微秒之间。第13页,共18页,编辑于2022年,星期三14.5 ADC0809芯片芯片结构及引脚结构及引脚 ADC0809是一典型的逐是一典型的逐次逼近型次逼近型8路模拟量输入、路模拟量输入、8位数字量
20、输出的位数字量输出的A/D转换转换芯片,采芯片,采用用CMOS工艺制工艺制造,造,28引脚双列直插式封引脚双列直插式封装。图为装。图为ADC0809的内的内部结构逻辑部结构逻辑图,和图,和ADC0809的的引脚图。引脚图。第14页,共18页,编辑于2022年,星期三ADC0809芯芯片引脚功能片引脚功能为了实现为了实现8路模拟量的路模拟量的A/D转换,芯片内部集成有一个多路模拟开关,由地转换,芯片内部集成有一个多路模拟开关,由地址译码器译码后可选通一路模拟量输入,址译码器译码后可选通一路模拟量输入,8路模拟量共用一个路模拟量共用一个AD转换器转换器进行转换。转换结果送入输出锁存器锁存和输出。当
21、外加时钟频率为进行转换。转换结果送入输出锁存器锁存和输出。当外加时钟频率为640kHz时,转换时间为时,转换时间为64us。芯片引脚功能说明如下:芯片引脚功能说明如下:IN0IN7 8路输入通道的模拟量输入端路输入通道的模拟量输入端D0D7 8位数字量输出端位数字量输出端START:启动信号。加上正脉冲后,开始启动:启动信号。加上正脉冲后,开始启动AD转换。此信号要求转换。此信号要求保持保持200ns以上。以上。ADDA、ADDB、ADDC:地址线。用于选择所需的模拟输入通道。:地址线。用于选择所需的模拟输入通道。其地址状态与模拟输入通道的对关系如表所示。其地址状态与模拟输入通道的对关系如表所
22、示。EOC:转换结束输出信号。转换开始后,:转换结束输出信号。转换开始后,EOC信号变低;转换结束时,信号变低;转换结束时,EOC返回高电平。查询这个引脚的信号状态可知返回高电平。查询这个引脚的信号状态可知AD转换器是否转换结束。转换器是否转换结束。也可以直接用作转换结束的也可以直接用作转换结束的中断请求信号,中断请求信号,CPU通过中断服务子程序读取转换后的数字量。通过中断服务子程序读取转换后的数字量。OE:输出允许控制端。:输出允许控制端。CLK:时钟信号。频率范围:时钟信号。频率范围:10kHz1.2MHz,通常采用,通常采用500kHz。VCC:芯片电源电压。由于是:芯片电源电压。由于
23、是CMOS芯片,故允许的电源范围较宽芯片,故允许的电源范围较宽(+5V+15V)。GND为地端。为地端。VREF(+)和和VREF():AD转换器的正负基准参考电压输入端。一般转换器的正负基准参考电压输入端。一般可将可将VREF(+)与与VCC连接在一起,连接在一起,VREF()与与GND连接在一起。连接在一起。ALE:地址锁存信:地址锁存信号。信号的上跳沿号。信号的上跳沿把三位地址信号送把三位地址信号送入地址锁存器,并入地址锁存器,并经译码器的地址输经译码器的地址输出,以选择相应的出,以选择相应的模拟输入通道。模拟输入通道。第15页,共18页,编辑于2022年,星期三第16页,共18页,编辑
24、于2022年,星期三第17页,共18页,编辑于2022年,星期三#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_v
25、al;/定义定义AD转换结果暂存转换结果暂存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,1
26、0us中断一次中断一次TL0=0;EA=1,ET0=1;/开放中断开放中断TR0=1;/启动定时启动定时while(1)START=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;/取反,产生方波取反,产生方波
27、/显示函数显示函数void display(unsigned char ADC_display)unsigned char display_high,display_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)第18页,共18页,编辑于2022年,星期三