ADC0809模数转换器的使用详解程序.doc

上传人:wj 文档编号:8775587 上传时间:2023-05-14 格式:DOC 页数:12 大小:170KB
下载 相关 举报
ADC0809模数转换器的使用详解程序.doc_第1页
第1页 / 共12页
ADC0809模数转换器的使用详解程序.doc_第2页
第2页 / 共12页
ADC0809模数转换器的使用详解程序.doc_第3页
第3页 / 共12页
ADC0809模数转换器的使用详解程序.doc_第4页
第4页 / 共12页
ADC0809模数转换器的使用详解程序.doc_第5页
第5页 / 共12页
ADC0809模数转换器的使用详解程序.doc_第6页
第6页 / 共12页
ADC0809模数转换器的使用详解程序.doc_第7页
第7页 / 共12页
ADC0809模数转换器的使用详解程序.doc_第8页
第8页 / 共12页
ADC0809模数转换器的使用详解程序.doc_第9页
第9页 / 共12页
ADC0809模数转换器的使用详解程序.doc_第10页
第10页 / 共12页
ADC0809模数转换器的使用详解程序.doc_第11页
第11页 / 共12页
ADC0809模数转换器的使用详解程序.doc_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

ADC0809模数转换器的使用详解程序.doc

《ADC0809模数转换器的使用详解程序.doc》由会员分享,可在线阅读,更多相关《ADC0809模数转换器的使用详解程序.doc(12页珍藏版)》请在冰点文库上搜索。

ADC0809模数转换器的使用详解程序.doc

ADC0809模数转换器的使用详解与程序

带我们的王老师刚评上硕导了,下学期开始带研究生了。

 从他那里了解到每做一次实验或者实践,应该把它用规范的格式记录下来,一来自己可以日后查看,二来同学间可以相互交流,共通过进步,甚为必要。

现将本次实验记录如下。

 实验

名称:

根据光强控制外围器件的通断。

 实验原理;使用AD芯片将太阳能电池产生的光生伏打电压转化为数字信号,再通过单片机处理后,在数码管上显示电压,同时根据设定电压伐值,控制外围器件的通断。

 实验所需的设备:

51单片机烧写器一个,电脑一台,数字式示波器一个,数字式万用表一个

 实验所需的元件:

太阳能电池一片,单片机一片,1k排阻一个,四位连体的数码管一个,排针若干排,导线,万用版一块,焊锡。

 实验前的理论准备;能熟练使用51单片机,示波器,keil软件,isp下载软件,看懂AD0809的英文pdf说明

 实验的难点:

难点一就是AD0809芯片的使用。

难点二就是将AD0809产生的0~256的数字换算成0~5.000的精确度,而又不至于溢出出错。

难点三就是以上的理论准备全部系自学,呵呵

下面着重说明AD0809的使用难点。

 ADC0809是采样频率为8位的、以逐次逼近原理进行模—数转换的器件。

其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

  1.主要特性

  1)8路8位A/D转换器,即分辨率8位。

  2)具有转换起停控制端。

  3)转换时间为100μs

  4)单个+5V电源供电

  5)模拟输入电压范围0~+5V,不需零点和满刻度校准。

  6)工作温度范围为-40~+85摄氏度

  7)低功耗,约15mW。

  2.内部结构

  ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图13.22所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近

  3.外部特性(引脚功能)

  ADC0809芯片有28条引脚,采用双列直插式封装,如图13.23所示。

下面说明各引脚功能。

  IN0~IN7:

8路模拟量输入端。

  2-1~2-8:

8位数字量输出端。

  ADDA、ADDB、ADDC:

3位地址输入线,用于选通8路模拟输入中的一路

  ALE:

地址锁存允许信号,输入,高电平有效。

  START:

A/D转换启动信号,输入,高电平有效。

  EOC:

A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。

  OE:

数据输出允许信号,输入,高电平有效。

当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。

  CLK:

时钟脉冲输入端。

要求时钟频率不高于640KHZ。

  REF(+)、REF(-):

基准电压。

  Vcc:

电源,单一+5V。

  GND:

地。

  ADC0809的工作过程是:

首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。

此地址经译码选通8路模拟输入之一到比较器。

START上升沿将逐次逼近寄存器复位。

下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。

直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。

当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。

 

 值得一提的是,我按照上面电路,把AD的ABC三脚共同接接地时,AD0809088始终输出高电平,最后当我把BC共同接地,在程序中给A一个0,则AD0809正常运行,有输出,并且发现当所给的时钟频率越低,最高精度的那位输出越稳定,具体参数范围从芯片资料里有详细介绍,不过十全英文,专业词汇哦。

哈哈

 现将程序记录如下:

 完整的程序从这里下载:

#include

#defineuintunsignedint

#defineucharunsignedchar

ucharaa,qian,bai,shi,ge;

uinttemp;

sbitclock=P2^0;

sbitstart=P2^1;

sbiteoc=P2^2;

sbitoe=P2^3;

sbitale=P2^4;

sbitadda=P2^5;

ucharcodetable[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71

};

//voiddisplay(ucharbai,ucharshi,ucharge);

voiddelay(uintz);

voidmain()

{

TMOD=0x20;//设置定时器1为工作方式2

TH1=0x216;//216

TL1=0x216;//216

EA=1;//开总中断

ET1=1;//开t1中断

TR1=1;

start=0;//复位

oe=0;//输出

adda=0;

//eoc=0;

ale=0;//关闭地址选择

while

(1)

{

start=0;

///delay(10);

start=1;//复位

ale=1;//打开地址选择

adda=0;

///delay(10);

start=0;//开始转换

ale=0;//关地址

//delay

(1);

while(eoc==0);//等待eoc变为1

//delay

(1);

oe=1;//打开输出

//delay

(1);

//P1=0xff;

temp=P1;//取p1到p3

oe=0;//关输出

temp=temp*50;

temp=temp/256;

qian=temp/1000;

bai=temp%1000/100;

shi=temp%100/10;

ge=temp%10;

P3=0x00;

P0=0xfe;

P3=table[qian];

delay(50);

P3=0x00;

P0=0xfd;

P3=table[bai];

delay(50);

P3=0x00;

P0=0xfb;

P3=table[shi];

delay(50);

P3=0x00;

P0=0xf7;

P3=table[ge];

}

}

voiddelay(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=1;y>0;y--);

}

voidcl()interrupt3

{

clock=!

clock;

}

模数转换器

模数转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。

  通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。

由于数字信号本身不具有实际意义,仅仅表示一个相对大小。

故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。

而输出的数字量则表示输入信号相对于参考信号的大小。

  模数转换器最重要的参数是转换的精度,通常用输出的数字信号的位数的多少表示。

转换器能够准确输出的数字信号的位数越多,表示转换器能够分辨输入信号的能力越强,转换器的性能也就越好。

  A/D转换一般要经过采样、保持、量化及编码4个过程。

在实际电路中,有些过程是合并进行的,如采样和保持,量化和编码在转换过程中是同时实现的。

  一般来说,AD比DA贵,尤其是高速的AD,因为在某些特殊场合,如导弹的摄像头部分要求有高速的转换能力。

一般那样AD要上千美元。

还有通过AD的并联可以提高AD的转换效率,多个AD同时处理数据,能满足处理器的数字信号需求了。

编辑本段转换方法

  

模数转换器

模数转换过程包括量化和编码。

量化是将模拟信号量程分成许多离散量级,并确定输入信号所属的量级。

编码是对每一量级分配唯一的数字码,并确定与输入信号相对应的代码。

最普通的码制是二进制,它有2n个量级(n为位数),可依次逐个编号。

模数转换的方法很多,从转换原理来分可分为直接法和间接法两大类。

直接法是直接将电压转换成数字量。

它用数模网络输出的一套基准电压,从高位起逐位与被测电压反复比较,直到二者达到或接近平衡(见图)。

控制逻辑能实现对分搜索的控制,其比较方法如同天平称重。

先使二进位制数的最高位Dn-1=1,经数模转换后得到一个整个量程一半的模拟电压VS,与输入电压Vin相比较,若Vin>VS,则保留这一位;若Vin

然后使下一位Dn-2=1,与上一次的结果一起经数模转换后与Vin相比较,重复这一过程,直到使D0=1,再与Vin相比较,由Vin>VS还是Vin

经过n次比较后,n位寄存器的状态即为转换后的数据。

这种直接逐位比较型(又称反馈比较型)转换器是一种高速的数模转换电路,转换精度很高,但对干扰的抑制能力较差,常用提高数据放大器性能的方法来弥补。

它在计算机接口电路中用得最普遍。

  间接法不将电压直接转换成数字,而是首先转换成某一中间量,再由中间量转换成数字。

常用的有电压-时间间隔(V/T)型和电压-频率(V/F)型两种,其中电压-时间间隔型中的双斜率法(又称双积分法)用得较为普遍。

  模数转换器的选用具体取决于输入电平、输出形式、控制性质以及需要的速度、分辨率和精度。

  用半导体分立元件制成的模数转换器常常采用单元结构,随着大规模集成电路技术的发展,模数转换器体积逐渐缩小为一块模板、一块集成电路。

编辑本段举例说明

  例1:

对于一个2位的电压模数转换器,如果将参考设为1V,那么输出的信号有00、01、10、11,4种编码,分别代表输入电压在0V-0.25V,0.26V-0.5V,0.51V-0.75V,0.76V-1V时的对应输入。

分为4个等级编码,当一个0.8V的信号输入时,转换器输出的数据为11。

例2:

对于一个4位的电压模数转换器,如果将参考设为1V,那么输出的信号有0000、0001、0010、0011、0100、0101、0110、0111、1000、1001、1010、1011、1100、1101、1110、1111,16种编码,分别代表输入电压在0V-0.0625V,0.0626V-0.125V,...........0.9376V-1V。

分为16个等级编码(比较精确)当一个0.8V的信号输入时,转换器输出的数据为1100。

A/D转换器的选型技巧及注意事项(转)

 AD的选择,首先看精度和速度,然后看是几路的,什么输出的比如SPI或者并行的,差分还是单端输入的,输入范围是多少,这些都是选AD需要考虑的。

DA的选择,主要是精度和输出,比如是电压输出还是电流输出等等。

     在进行电路设计时,面对种类繁多的A/D、D/A芯片,如何选择你所需要的器件呢?

这要综合设计的诸项因素,系统技术指标、成本、功耗、安装等,最重要的依据还是速度和精度。

      精度:

与系统中所测量控制的信号范围有关,但估算时要考虑到其他因素,转换器位数应该比总精度要求的最低分辩率高一位。

常见的A/D、D/A器件有8位,10位,12位,14位,16位等。

      速度:

应根据输入信号的最高频率来确定,保证转换器的转换速率要高于系统要求的采样频率。

      通道:

有的单芯片内部含有多个A/D、D/A模块,可同时实现多路信号的转换;常见的多路A/D器件只有一个公共的A/D模块,由一个多路转换开关实现分时转换。

      数字接口方式:

接口有并行/串行之分,串行又有SPI、I2C、SM等多种不同标准。

数值编码通常是二进制,也有BCD(二~十进制)、双极性的补码、偏移码等。

      模拟信号类型:

通常AD器件的模拟输入信号都是电压信号,而D/A器件输出的模拟信号有电压和电流两种。

      根据信号是否过零,还分成单极性(Unipolar)和双极性(Bipolar)。

      电源电压:

有单电源,双电源和不同电压范围之分,早期的A/D、D/A器件要有+15V/-15V,如果选用单+5V电源的芯片则可以使用单片机系统电源。

      基准电压:

有内、外基准和单、双基准之分。

     功耗:

一般CMOS工艺的芯片功耗较低,对于电池供电的手持系统对功耗要求比较高的场合一定要注意功耗指标。

      封装:

常见的封装是DIP,现在表面安装工艺的发展使得表贴型封装的应用越来越多。

      跟踪/保持(Track/Hold缩写T/H):

原则上直流和变化非常缓慢的信号可不用采样保持,其他情况都应加采样保持。

     满幅度输出(Rail-toRail)新近业界出现的新概念,最先应用于运算放大器领域,指输出电压的幅度可达输入电压范围。

在D/A中一般是指输出信号范围可达到电源电压范围。

(国内的翻译并不统一,如“轨-轨”、“满摆幅”)

高精度测量类的A/D设计注意事项:

1:

参考电压需要足够精确,推荐使用外部高精准参考电压。

2:

如果PGA可调,增益系数一般是越小噪声越低。

3:

一般最好用到满量程,此时AD精度不浪费。

4:

如果有偏置,需要进行自校。

5:

请注意在使用DEMO板调试时,会由调试口导入PC噪声,由信号连接线导入外部噪声,因此建议使用屏蔽电缆传输信号。

6:

板上注意模拟电源和数字电源,以及模拟地和数字地要分开,减少耦合噪声路径。

7:

使用差分输入可以减少共模噪声,但是差模噪声会增大。

8:

如果是片内集成AD的MCU,支持高速时钟,如果不影响性能,内部工作时钟越低,对您的AD采样引起的干扰越小,如果是板上就需要注意走线和分区。

9:

信号输入前级接滤波电路,一般一阶RC电路较多,注意Fc=1/1000~1/100采样频率,电阻和电容的参数注意选取.信号接入后级接滤波电路最好采用sinc滤波方式.注意输入偏置电流会限制您外部的滤波电阻阻值的大小。

RxIb<1LSB。

有的片内AD还有集成输入Buffer,有助与抑制您的噪声,一般是分两当,看输入信号范围和满量程之间的关系。

AD分为很多种,SAR,FLASH,并行比较型,逐次逼近型,Deltasigma型,一般是速度越高,精度越高越贵。

针对不同场合不同成本不同要求分别选用,还得注意是您的Layout。

A/D转换器件选型指南

  A/D转换器的品种繁多,性能各异,A/D转换器的选择直接影响系统的性能。

在确定设计方案后,首先需要明确A/D转换的需要的指标要求,包括数据精度、采样速率、信号范围等等。

  1.确定A/D转换器的位数

  在选择A/D器件之前,需要明确设计所要达到的精度。

精度是反映转换器的实际输出接近理想输出的精确程度的物理量。

在转化过程中,由于存在量化误差和系统误差,精度会有所损失。

其中量化误差对于精度的影响是可计算的,它主要决定于A/D转换器件的位数。

A/D转换器件的位数可以用分辨率来表示。

一般把8位以下的A/D转换器称为低分辨率ADC,9~12位称为中分辨率ADC,13位以上为高分辨率。

A/D器件的位数越高,分辨率越高,量化误差越小,能达到的精度越高。

理论上可以通过增加A/D器件的位数,无止境提高系统的精度。

但事实并非如此,由于A/D前端的电路也会有误差,它也同样制约着系统的精度。

  比如,用A/D采集传感器提供的信号,传感器的精度会制约A/D采样的精度,经A/D采集后信号的精度不可能超过传感器输出信号的精度。

设计时应当综合考虑系统需要的精度以及前端信号的精度。

  2.选择A/D转换器的转换速率

  在不同的应用场合,对转换速率的要求是不同的,在相同的场合,精度要求不同,采样速率也会不同。

采样速率主要由采样定理决定。

确定了应用场合,就可以根据采集信号对象的特性,利用采样定理计算采样速率。

如果采用数字滤波技术,还必须进行过采样,提高采样速率。

  3.判断是否需要采样/保持器

  采样/保持器主要用于稳定信号量,实现平顶抽样。

对于高频信号的采集,采样/保持器是非常必要的。

如果采集直流或者低频信号,可以不需要采样保持器。

  4.选择合适的量程

  模拟信号的动态范围较大,有时还有可能出现负电压。

在选择时,待测信号的动态范围最好在A/D器件的量程范围内。

以减少额外的硬件付出。

  5.选择合适的线形度

  在A/D采集过程中,线形度越高越好。

但是线形度越高,器件的价格也越高。

当然,也可以通过软件补偿来减少非线性的影响。

所以在设计时要综合考虑精度、价格、软件实现难度等因素。

  6.选择A/D器件的输出接口

  A/D器件接口的种类很多,有并行总线接口的,有SPI、I2C、1-Wire等串行总线接口的。

它们在原理和精度上相同,但是控制方法和接口电路会有很大差异。

在接口上的选择,主要决定于系统要求、已经开发者对于各种接口的熟练程度。

AD558芯片在AD转化中使用:

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

当前位置:首页 > 外语学习 > 韩语学习

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2