重点内容数模转换模数转换本章小结_第1页
重点内容数模转换模数转换本章小结_第2页
重点内容数模转换模数转换本章小结_第3页
重点内容数模转换模数转换本章小结_第4页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程重点内容:重点内容:l数数/ /模转换模转换l模模/ /数转换数转换l本章小结本章小结单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程1D/A转换器原理权电阻解码网络的结构如图10.1所示。数模转换器(D/A)就是一种把数字信号转换成为模拟电信号的器件。它的基本要求是输出电压 应该和输入数字量成正比,*2refoVVB *2refoVVB *2refoVVB 单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程2D/A 转换器主要性能指标有关D/A转换器的技术性能指标很多,例如分辩率、

2、线性度、转换精度、建立时间、接口形式等。下面介绍一些主要的性能指标。(1) 分辩率分辨率是D/A转换器对输入量变化敏感程度的描述,与输入数字量的位数有关。如果数字量的位数为n,则D/A转换器的分辨率为2-n。这就意味着数/模转换器能对满刻度的2-n输入量作出反应。例如8位数的分辨率为1/256,10位数分辨率为1/1024等。因此数字量位数越多,分辨率也就越高,亦即转换器对输入量变化的敏感程度也就越高。使用时,应根据分辨率的需要来选定转换器的位数。DAC常可分为8位、10位、12位三种,例如,单片集成D/A转换器AD7541的分辨率为12位,单片集成D/A转换器DAC0832的分辨率为8位等。

3、(2)线性度 通常用非线性误差的大小表示D/A转换器的线性度。并且,把理想的输入/输出特性的偏差与满刻度输出之比的百分数,定义为非线性误差。 例如,单片集成D/A转换器AD7541的线性度(非线牲误差)为小于等于士002FSR(FSR为满刻度的英文缩写)。*2refoVVB *2refoVVB *2refoVVB 单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程(3)转换精度转换精度以最大的静态转换误差的形式给出。这个转换误差应该是非线性误差、比例系数误差以及漂移误差等综合误差。但是有的产品说明中,只是分别给出各项误差,而不给出综合误差。应该注意,精度和分辨率是两个不同的

4、概念。精度是指转换后所得的实际值对于理想值的接近程度,而分辨率是指能够对转换结果以后影响的最小输入量,对于分辨率很高的D/A转换器并不一定具有很高的精度 (4) 建立时间建立时间是描述D/A转换速度快慢的一个参数,指从输入数字量变化到输出达到终值误差(1/2)LSB(最低有效位)时所需的时间。通常以建立时间来表示转换速度。转换器的输出形式为电流时建立时间较短;而输出形式为电压时,由于建立时间还要加上运算放大器的延迟时间,因此建立时间要长一点。但总的来说,D/A转换速度远高于A/D转换,例如快速的D/A转换器的建立时间可达1s。(5) 接口形式D/A转换器与单片机接口方便与否,主要决定于转换器本

5、身是否带数据锁存器。总的来说有两类D/A转换器,一类是不带锁存器的,另一类是带锁存器的。对于不带锁存器的D/A转换器,为了保存来自单片机的转换数据,接口时要另加锁存器,因此这类转换器必须在口线上;而带锁存器的D/A转换器,可以把它看作是一个输出口,因此可直接在数据总线上,而不需另加锁存器。*2refoVVB *2refoVVB *2refoVVB 单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程1DAC0832引脚说明D/A转换电路是一个R-2R T型电阻网络,实现8位数据的转换。对各引脚信号说明如下:DI7DI0:转换数据输入。 :片选信号(输入),低电平有效。ILE:

6、数据锁存允许信号(输入),高电平有效。 :第1写信号(输入),低电平有效。该信号与ILE信号共同控制输入寄存器是数据直通方式还是数据锁存方式;当ILE=1和 =0时,为输入寄存器直通方式;当ILE=1和 =1时,为输入寄存器锁存方式。 :数据传送控制信号(输入),低电平有效。 :第2写信号(输入),低电平有效。该信号与 和在一起控制DAC寄存器是数据直通方式还是数据锁存方式;当 =0和 =0时,为DAC寄存器直通方式;当 =1和 =0时,为DAC寄存器锁存方式。Iout1:电流输出1。当数据为全为“1”时,输出电流最大;当为全“0”时输出电流最小。Iout2:电流输出2。DAC转换器的特性之一

7、是:Iout1+Iout2=常数。Rfb:反馈电阻端。即为运算放大器的反馈电阻端,电阻(15k)已经固化在芯片中,因为DAC0832是电流输出D/A转换器,为了取得电压的输出,需在2个电流输出端接运算放大器,Rfb即为运算放大器反馈电阻,运算放大器的接法如图10.3所示。Vref:基准电压,其电压可正可负,范围-10V+10V。DGND:数字地AGND:模拟地 *2refoVVB *2refoVVB *2refoVVB 单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程2DAC0832内部结构DAC0832内部结构框图如图10.4所示。芯片内的D/A转换电路是一个R-2R

8、T型电阻网络。数据输入通道由输入寄存器和DAC寄存器构成两级数据输入锁存,由3个与门电路组成控制逻辑,产生 和 信号,分别对两个输入寄存器进行控制。当 ( )=0时,数据进入寄存器被锁存;当 ( )=1时 ,锁存器的输出跟随输入。这样在使用时就可以根据需要,对数据输入采用两级锁存(双锁存)形式,或单级锁存(一级锁存一级直通)形式,或直接输入(两级直通)形式。两级输入锁存,可使D/A转换器在转换前一个数据的同时,就可以将下一个待转换数据预先送到输入寄存器,以提高转换速度。此外,在使用多个D/A转换器分时输入数据的情况下,两级缓冲可以保证同时输出模拟电压。*2refoVVB *2refoVVB *

9、2refoVVB 单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程DAC0832的工作方式DAC0832进行D/A转换,可以采用两种方法对数据进行锁存。第一种方法是使输入寄存器工作在锁存状态,而DAC寄存器工作在直通状态。具体地说,就是使 和 都为低电平,DAC寄存器的锁存选通端得不到有效电平而直通;此外,使输入寄存器的控制信号ILE处于高电平、 处于低电平,这样,当 端来一个负脉冲时,就可以完成1次转换。第二种方法是使输入寄存器工作在直通状态,而DAC寄存器工作在锁存状态。就是使 和 为低电平,ILE为高电平,这样,输入寄存器的锁存选通信号处于无效状态而直通;当 和 端

10、输入1个负脉冲时,使得DAC寄存器工作在锁存状态,提供锁存数据进行转换。根据上述对DAC0832的输入寄存器和DAC寄存器不同的控制方法,DAC0832有如下3种工作方式:单缓冲方式。单缓冲方式是控制输入寄存器和DAC寄存器同时接收资料,或者只用输入寄存器而把DAC寄存器接成直通方式。此方式适用只有一路模拟量输出或几路模拟量异步输出的情形。双缓冲方式。双缓冲方式是先使输入寄存器接收资料,再控制输入寄存器的输出资料到DAC寄存器,即分两次锁存输入资料。此方式适用于多个D/A转换同步输出的情形。直通方式。直通方式是资料不经两级锁存器锁存,即 , , , 均接地,ILE接高电平。此方式适用于连续反馈

11、控制线路,不过在使用时,必须通过另加I/O接口与CPU连接,以匹配CPU与D/A转换。*2refoVVB *2refoVVB *2refoVVB 单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程【例10-1】试利用单缓冲方式在图10.5所示的运放输出端输出一个锯齿波电压信号。程序如下:#include #include #define DA0832 XBYTE0 xfffe#define uchar unsigned char#define uint unsigned intvoid stair (void)uchar i;while(1)for(i = 0; i = 2

12、55; i = i+)/*形成锯齿波输出值,最大255*/DA0832 = i;/*D/A转换输出*/*2refoVVB *2refoVVB *2refoVVB 单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程【例10-2】试利用缓冲方式的为图10.6所示的两路模拟量同步输出的系统编写程序。分析: 和 一起接8051的 , 和 共同连接在P2.7,因此两个寄存器的地址相同。程序如下:#include #include #define INPUTR1 XBYTE0 x8fff#define INPUTR2 XBYTE0 xa7ff#define DACRXBYTE0 x2f

13、ff#define uchar unsigned charvoid dac2b(uchar data1,uchar data2)INPUTR1 = data1;/*送数据到一片DAC0832*/INPUTR2 = data2;/*送数据到另一片DAC0832*/DACR = 0;/*启动两路D/A同时转换*/*2refoVVB *2refoVVB *2refoVVB 单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程1A/D转换器原理A/D转换器按转换原理可分为4种,即计数式A/D转换器、双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器*目前最常用的是双积分

14、式A/D转换器和逐次逼近式A/D转换器。双积分式A/D转换器的主要特点是转换精度高、抗干扰性能好、价格便宜,但转换速度较慢。另一种逐次逼近式A/D转换器是一种速度较快精度较高的转换器。其转换时间大约在几us到几百us之间。本部分将主要介绍逐次逼近型A/D转换器的原理。逐次逼近型A/D转换器的原理图如图10.7所示。*2refoVVB *2refoVVB *2refoVVB 单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程逐次逼近型A/D转换器的原理类似天平称重量时的尝试法,逐步用法码的累积重量去迫近被称物体。例如用8个重量为20、21、22、23、24、25、26、27g

15、的砝码,可以称出重量为0255g之间的物体,逐次逼近型A/D转换器的工作过程如下。(1)ADC从高到低逐次给SAR的每一位“置1”(即加上不同权重的硅码),SAR相当于放法码的称盘。(2)每次SAR中的数据经D/A转换为电压VC。(3)VC与输入电压Vi比较,若VC128所以保留最高位的1。令当前寄存器为二进制0B 1100 0000即十进制192,发现158192所以舍弃D6位的1。令当前寄存器为二进制0B 1010 0000即十进制160,发现158144所以保留D4位的1。令当前寄存器为二进制0B 1001 1000即十进制152,发现158152所以保留D3位的1。令当前寄存器为二进制

16、0B 1001 1100即十进制156,发现158156所以保留D2位的1。令当前寄存器为二进制0B 1001 1110即十进制158,发现158=158所以保留D1位的1。令当前寄存器为二进制0B 1001 1111即十进制159,发现158159所以舍弃D0位的1。最后得数字0B 1001 1110即为158。*2refoVVB *2refoVVB *2refoVVB 单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程2A/D转换器性能指标有关A/D转换器的技术性能指标很多,例如分辩率、量化误差、转换时间、绝对精度、相对精度、漏码等。下面介绍一些主要的性能指标。(1)分

17、辨率对于ADC来说,分辨率表示输出数字量变化一个相邻数码所需输入模拟电压的变化量。转换器的分辨率定义为满刻度电压与2n之比值,其中n为ADC的位数。例如12位分辨率的ADC能够分辨出满刻度的l/2n,一个10V满刻度的12位ADC能够分辨输入电压变化的最小值为2.4mV。(2)量化误差(Quantizing Error)量化误差是在A/D转换中由于整量化所产生的固有误差。(3)转换时间(Conversion Time)转换时间指A/D完成一次转换所需要的时间。(4)绝对精度(Relative Precision)绝对精度指A/D转换器的输出端所产生的数字代码中,分别对应于实际需要的模拟输入值与

18、理论上要求的模拟输入值之差。(5)相对精度(Absolute Precision)相对精度指满度值校准以后,任一数字输出所对应的实际模拟输入值(中间值)与理论值(中间值)之差。(6)漏码(Missed Code)如果模拟输入连续增加(或减小)时,数字输出不是连续增加(或减小)而是越过某一个数字即出现漏码。*2refoVVB *2refoVVB *2refoVVB 单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程1.ADC0809的内部逻辑结构ADC0809内部逻辑结构如图10.8所示。由图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个

19、三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。地址锁存与译码电路完成对A、B、C三个地址位进行锁存和译码,其译码输出用于通道选择,如表10.1所示。八位A/D转换器是逐次逼近式,由控制与时序电路、逐次逼近寄存器、树状开关以及256R电阻阶梯网络等组成。输出锁存器用于存放和输出转换得到的数字量。*2refoVVB *2refoVVB *2refoVVB 单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程2.ADC0809信号

20、引脚 ADC0809芯片为28引脚双列直插式封装,其引脚排列见图10.9。对主要信号引脚的功能说明如下:IN7IN0:8个模拟通道输入端ADC0809对输入模拟量的要求主要有:信号单极性,电压范围05V若信号过小还需进行放大。另外,模拟量输入在A/D转换过程中其值不应变化太快,因此对变化速度快的模拟量,在输入前应增加采样保持电路。ADDA、ADDB和ADDC:通道地址线CBA的8种组合状态000111对应了8个通道的选择,其对应关系见表10-1。ALE:地址锁存允许信号对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。START:转换启动信号START上跳沿时,所有内部寄存器清0;STAR

21、T下跳沿时,开始进行A/D转换;在A/D转换期间,START应保持低电平。D7D0:数据输出线为三态缓冲输出形式,可以和单片机的数据线直接相连。OE:输出允许信号用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高电阻;OE=1,输出转换得到的数据。CLK:时钟信号ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500kHz的时钟信号。EOC:转换结束信号EOC=0,正在进行转换;EOC=1,转换结束。该状态信号既可作为查询的状态标志,又可以作为中断请求信号使用。Vcc:+5V电源。Vref:参考电源。参考电压用来与输入的模拟信

22、号进行比较,作为逐次逼近的基准。其典型值为+5V(Vref (+) =+5V,Vref(-) =0V)GND:电源地。*2refoVVB *2refoVVB *2refoVVB 单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程3ADC0809工作时序ADC0809工作时序如图10.10所示。根据时序图,ADC0809的工作过程如下:(1)把通道地址送到ADDAADDC上,选择一个模拟输入端。(2)把通道地址信号有效期间,ALE上的上升沿把该地址锁存到内部地址锁存器。(3)START引脚上的下降沿启动A/D变换。(4)变换开始后EOC引脚呈现低电平,EOC重新变为高电平时表

23、示转换结束。(5)OE信号打开输出锁存器的三态门并送出转换结果。*2refoVVB *2refoVVB *2refoVVB 单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程ADC0809与8051单片机的一种连接如图10.11所示。按图中的片选线接法,ADC0809的模拟通道07的地址为7FF8H7FFFH。输入电压为VIN = D VREF / 255 = 5D/255。其中,D为采集的数据字节。ADC0809的启动信号START由片选线P2.7与写信号WR 的“或非”产生。这要求一条向ADC0809写操作指令来启动转换。ALE与START相连,即按打入的通道地址接通模

24、拟量并启动转换。输出允许信号OE由读信号 与片选线P2.7“或非“产生,即一条ADC0809的读操作使数据输出。*2refoVVB *2refoVVB *2refoVVB 单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程A/D转换后得到的是数字量的数据,这些数据应传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换完成,因为只有确认数据转换完成后,才能进行传送。为此可采用下述三种方式。(1)传送方式对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128s,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用这个延时子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。(2)查询方式A/D转换芯片有表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,软件测试EOC的状态,即可确知转换是否完成,然后进行数据传送。(3)中断方式表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。若EOC信号送到单片机的 ,可以采用查询该引脚或中断的方式进行转换后数据的传送。*2r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论