ADC0809经典用法深度剖析
51单片机adc0809模数转换器逐次逼近法的实现原理

51单片机adc0809模数转换器逐次逼近法的实现原
理
51单片机ADC0809模数转换器采用逐次逼近法实现模数转换。
逐次逼近法的原理是,从高位到低位逐位比较,根据比较结果不断调整待转换的数字量,直到找到一个数字量使其对应的模拟量与输入的模拟量相等或最大程度接近。
在ADC0809模数转换器中,逐次逼近法的实现过程如下:
1. 将最高位(MSB)设置为1,其余位为0,形成起始转换数字量。
2. 将该数字量输入比较器,与输入的模拟量进行比较。
3. 根据比较结果,调整数字量的最高位:如果模拟量大于数字量,则将最高位清0;否则保持为1。
4. 保持其余位不变,将调整后的数字量再次输入比较器进行比较。
5. 重复步骤3和4,直到比较器的输出为稳定状态(即最高位不再变化),此时得到的就是输入模拟量的近似值。
通过逐次逼近法,ADC0809模数转换器能够实现高精度的模数转换,并且具有较快的转换速度。
模数转换器ADC0809应用原理

模数转换器ADC0809应用原理模数转换器(Analog-to-Digital Converter,简称ADC)是一种将模拟信号转换为数字信号的电子元件。
在电子领域中,模数转换器有着广泛的应用,其中最常见的就是采集模拟信号,并将其转换为数字信号进行处理。
ADC0809是一种八位分辨率的8通道模数转换器,它可以将输入模拟信号转换为一个八位的二进制数字。
ADC0809的工作原理ADC0809采用了单倍增量逐次比较式ADC,其基本工作原理是,将输入的模拟信号与一个参考电压进行比较,输出相应的数字信号。
具体工作流程如下图所示:___________________________________ ________________________| 时钟||___________________________________________________________________|______________ ________ ________ ________ ________| 输入模拟信号 | | 比较器0 | | 比较器1 | | ...... | | 比较器7 ||_____________| _________ |________| |________| |________| |________|| | || || | ___________ | ___________ | ___________ || |__| |__|__||__|__| |__|| 串—并串—并串—并串—并八个比较结果反相器(INV)| ________ ________ ________|______________________________| 反相器| | 反相器 | | ...... | | 反相器 ||________| |________| |________| |________|| | | || | | || | | |V V V V____ ____ ________ ________ ________| | | | | ...... | | || D0 ~ D7 |_______| D0 ~ D7 |_______| D0 ~ D7 |_______| D0 ~ D7 ||____ _____| |________| |________| |________|| | | || | | || | | || | | || | | |____ ____ ________ ________ ________| | | | | ...... | | || 转换器 | | 转换器 | | ...... | | 转换器 | |____ _____| |________| |________| |________|| | | || | | || | | |V V V V____ ____ ________ ________ ________| | | | | ...... | | || A0 ~ A7 |_______| A0 ~ A7 |______| A0 ~ A7 |_______| A0 ~ A7 ||____ _____| |________| |________| |________| ADC0809采样过程通过时序的序列完成,当转换器满足转换条件时为转换器一个时钟等分周期“CLK R”,其转换过程又称为一次采样,转换结果产生在结束时取样“EOC”有效之后的下一次时钟上升沿ACTIVE EDGE时,由拨动设置开关的方式进行设定(ADDRESS A, B, C, OE)。
adc0809引脚图及功能

adc0809引脚图及功能
ADC0809是8位A / D转换器,它的转换方法为逐次逼近法。
ADC0809为CMOS工艺,其管脚为28脚,管脚排列如图所示。
各个管脚的功能如下:
INo ~ IN7:八个模拟量输入端。
START:启动A / D转换,当START为高电平时,开始A / D转换。
EOC:转换结束信号。
当A / D转换完毕之后,发出一个正脉冲,表示A / D转换结束,此信号可用做
A / D转换是否结束的检测信号或中断申请信号(加一个反相器)。
C、B、A:通道号地址输入端,C、B、A为二进制数输入,C为最高位,A 为最低位,CBA从000~111分别选中通道IN0 ~ IN7。
ALE:地址锁存信号,高电平有效。
当ALE为高电平时,允许C、B、A 所示的通道被选中,并把该
通道的模拟量接入A / D转换器。
CLOCK:外部时钟脉冲输入端,改变外接R、C可改变时钟频率。
D7~D0:数字量输出端。
D7为高位。
VREF(+),VREF(—):参考电压端子,用来提供D / A转换器权电阻的标准电平。
一般 VREF(+)=5V,
VREF(—)= 0V
Vcc:电源电压,+5V。
GND:接地端。
图 ADC0809 管脚排列图
ADC0809可以进行八路A / D转换,并且这种器件使用时无需进行调零和满量程调整,转换速度和精度属中高档,售价又不贵。
所以,一般控制场合采用这些ADC0809(或0800 系列)的A / D转换片是比较理想的。
adc0809原理

adc0809原理ADC0809是一款8位串行输入模数转换器(ADC),由National Semiconductor(现为德州仪器)开发和生产。
它的原理是将输入的模拟信号转换成对应的数字信号,用于数字系统的处理和分析。
ADC0809采用逐次逼近型模数转换技术,具有8个模拟输入通道,并且能完成8位精度的转换。
它的输入范围为0-5V,输入阻抗为100kΩ。
ADC0809包含一个8位逐次逼近型模数转换器、一个输入多路选择器、一个时钟驱动电路、一个控制逻辑和一个数据锁存器。
ADC0809的工作原理如下:首先,用户通过使用时钟信号来驱动转换器的工作。
时钟信号一般由控制器提供,控制器通过多个IO引脚向ADC0809发送指令信号。
时钟信号使得转换器按照指定的频率工作。
其次,输入模拟信号经过模拟开关输入,并通过输入多路选择器将选中的信号路径引入到采样保持电路中。
ADC0809的输入多路选择器可以选择8个不同的输入通道。
输入模拟信号经过采样保持电路后,被锁存并保持一段时间以进行后续处理。
然后,转换器根据锁存的模拟信号进行逐步逼近型模数转换。
逐序地,转换器首先将8位比较器的基准电压与DAC输出进行比较。
如果DAC输出高于基准电压,则比较器输出为高电平,否则为低电平。
比较器输出经过一个选择和存储逻辑单元(LCU),得到一个3位的二进制数,供数值控制逻辑(NCL)使用。
NCL 根据LCU的输出向DAC施加增量或减量,使得DAC输出逐渐逼近输入模拟量。
最后,转换器通过串行接口将转换后的数字结果通过数据锁存器传送到输出端,供控制器读取。
串行接口为8位的串行输出,由转换器的输出引脚提供。
转换后的数字结果可以进行进一步的数字处理和显示。
需要注意的是,ADC0809的转换精度和转换速率在一定程度上有一定的权衡。
为了提高转换精度,需要减小转换速率。
当转换速率较高时,转换精度可能会下降。
因此,在具体应用中需要根据需求选择合适的转换速率和精度。
ADC0809中文说明

1.ADC0809简介ADC0809是采样分辨率为8位的、以逐次逼近原理进行模—数转换的器件。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
2.主要特性1)8路输入通道,8位A/D转换器,即分辨率为8位。
2)具有转换起停控制端。
3)转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时)4)单个+5V电源供电5)模拟输入电压范围0~+5V,不需零点和满刻度校准。
6)工作温度范围为-40~+85摄氏度7)低功耗,约15mW。
3.内部结构ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图13.22所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D 转换器进行转换,这是一种经济的多路数据采集方法。
地址锁存与译码电路完成对A、B、C 3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连4.外部特性(引脚功能)对ADC0809主要信号引脚的功能说明如下:IN7~IN0——模拟量输入通道ALE——地址锁存允许信号。
对应ALE上跳沿,A、B、C地址状态送入地C B A 选择的通道0 0 0 IN00 0 1 IN10 1 0 IN20 1 1 IN31 0 0 IN41 0 1 IN51 1 0 IN61 1 1 IN7START——转换启动信号。
START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。
本信号有时简写为ST.A、B、C——地址线。
通道端口选择线,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。
CLK——时钟信号。
ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。
adc0809的工作原理

adc0809的工作原理
ADC0809是一种8位串行模数转换器(Analog-to-Digital Converter,简称ADC),其工作原理如下:
1. 输出控制信号:当待转换的模拟信号准备好后,控制信号线将置为高电平,通知ADC开始转换过程。
2. 选择输入通道:通过输入通道选择信号来选择要进行转换的模拟信号源。
ADC0809有8个输入通道,因此需要使用3个输入引脚来选择通道。
3. 启动时钟信号:通过发送时钟信号来控制转换过程。
ADC0809需要一个时钟源来同步转换过程。
时钟信号的频率决定了转换速度。
4. 采样保持电路:在转换期间,输入信号将被采样并保持在一个样本保持电容中。
这个采样保持电路保证了转换期间输入信号的稳定性。
5. 双斜率积分器:ADC0809采用了双斜率积分器技术来进行模拟信号的转换。
在转换开始后,ADC开始对采样保持电容的电压进行积分,直到电压上升到参考电压。
6. 输出数据:一旦积分电压达到参考电压,ADC会将其状态固定,并将其转换为二进制数字输出。
输出数据以8位二进制形式呈现。
7. 转换结束信号:当转换完成后,ADC会通过标志信号线发出转换完成的信号。
这个信号可以被连接到微控制器或其他数字设备,以通知它们可以读取新的转换结果了。
通过以上步骤,ADC0809可以将模拟信号转换为数字信号,实现模拟到数字的转换功能。
AD转换芯片ADC0809的原理及应用

ADC0809A/D转换芯片的原理及应用ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。
它是逐次逼近式A/D转换器,可以和单片机直接接口。
(1)ADC0809的内部逻辑结构由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D 转换器和一个三态输出锁存器组成。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
三态输出锁器用于锁存A/D转换完的数字量,当OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。
(2).引脚结构IN0-IN7:8条模拟量输入通道ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:4条ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
通道选择表如下表所示。
C B A 选择的通道0 0 0 IN00 0 1 IN10 1 0 IN20 1 1 IN31 0 0 IN41 0 1 IN51 1 0 IN61 1 1 IN7数字量输出及控制线:11条ST为转换启动信号。
当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。
EOC为转换结束信号。
当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。
OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。
OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。
D7-D0为数字量输出线。
CLK为时钟输入信号线。
因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(+),VREF(-)为参考电压输入。
adc0809模数转换公式

adc0809模数转换公式ADC0809模数转换公式ADC0809是一种八位串行控制ADC(Analog-to-Digital Converter,模数转换器),它可以将模拟信号转换为数字信号。
ADC0809采用的是逐次比较法,最大转换速率为100kHz。
其输出数据格式为二进制补码形式。
模数转换公式一般为:V_{in} = \frac{D}{2^n} * V_{REF}V_{in}为输入模拟电压,D为ADC输出数字量,n为ADC的位数,V_{REF}为ADC的参考电压。
ADC0809工作原理ADC0809的工作原理基于逐次比较法,其主要部分有:比较器、运算放大器、8位移位寄存器、控制逻辑和输出寄存器。
当模拟信号被送入ADC0809时,首先通过比较器进行比较,如果比较器的一个输入端被送入一个参考电压,比较器的另一个输入端被送入输入模拟信号,比较器输出与输入端相连的开关被打开,运算放大器输出的电压跟随着比较器的输出变化。
在ADC0809的控制下,运算放大器会把比较器输出的电压值进行增益调整并送入8位移位寄存器。
这个过程可以理解为,ADC0809逐位地进行比较,并将每位的比较结果转换成二进制码存在寄存器中。
当所有位的比较和转换完成后,ADC0809会将二进制码输出到外部的数据总线上,从而提供给后面的数字电路进行处理。
ADC0809的典型应用场景ADC0809主要用于需要将模拟信号转换成数字信号的场合。
下面列举一些典型的应用场景:1.嵌入式系统中,ADC0809可以将传感器测量到的模拟信号转换成数字信号,为嵌入式系统提供数字化的数据。
2.工业自动化领域中,ADC0809可以将工控设备传感器采集的模拟信号转换成数字信号,为人机界面提供数字化的数据。
3.实验室仪器控制中,ADC0809可以将各类传感器测量到的模拟信号转换成数字信号,用于仪器控制和数据处理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ADC0809与单片机的接
口和用法
信号引脚
ADC0809芯片为28引脚为双列直插式封装.
对ADC0809主要信号引脚的功能说明如下:
IN
7~IN
——模拟量输入通道
ALE——地址锁存允许信号。
对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。
START——转换启动信号。
START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。
本信号有时简写为ST.
A、B、C——地址线。
通道端口选择线,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。
其地址状态与通道对应关系见表9-1。
CLK——时钟信号。
ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。
通常使用频率为500KHz的时钟信号
EOC——转换结束信号。
EOC=0,正在进行转换;EOC=1,转换结束。
使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。
D 7~D
——数据输出线。
为三态缓冲输出形式,可以和单片机的数据线直接相连。
D 0为最低位,D
7
为最高
OE——输出允许信号。
用于控制三态输出锁存器向单片机输出转换得到的数据。
OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。
Vcc—— +5V电源。
Vref——参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基
准。
其典型值为+5V(Vref
(+)=+5V, Vref
(-)
=-5V).
接法一:
主要程序:
OE=0;//输出为高阻态
AA=BB=CC=0;//选择通道0
ALE=1;
ST=1;
ALE=0;//锁存地址选择通道
ST=0;//启动转换
While(!EOC);//等待转换结束
OE=1;//打开数据通道
Value=P0;//读取结果
接法二:
模拟通道选择信号A、B、C分别接最低三位地址A0、A1、A2即(P0.0、P0.1、P0.2)
主要程序:
首先确定ADC0809的地址因为只有P0.0、P0.1、P0.2与adc0809有关,故ADC0809的地址为0xFFF8-0xFFFF即通道IN0-IN7
#define adc809 PBYTE[0xF8] //选中INT0
adc0809=0x07; //adc0809=随便一个数,只产生一个WR=0的脉冲信号,
锁存AABBCC的地址
while(!EOC);
value=adc809; //读取adc809的值
接法三:
ADC0809的三个地址端A、B、C即可如前所述与地址线相连,也可与数据线相连,例如ADDA、ADDB、ADDC接到数据口0、1、2,这时启动A/D转换的指令与上述类似,只不过A的内容不能为任意数,而必须和所选输入通道号IN0~IN7相一致。
主要程序:
#define adc809 PBYTE[0xff] //acd809的地址
adc0809=0x07;//选择通道IN7
while(!EOC);
value=adc0809; //读取转换结果
续:若电路中有多片RAM或ROM,则可以给ADC0809加一个片选端,如下:用P2.7作为adc809的片选端。
这样adc809的地址为0x7FF8—0x7FFF
主要程序:
#define adc809 XBYTE[0x7FF8] //选中INT0
adc0809=0x07; //adc0809=随便一个数,只产生一个WR=0的脉冲信号,
锁存AABBCC的地址
while(!EOC);
value=adc809; //读取adc809的值
一、总线控制
由于外部扩展I/O接口芯片是与外部数据存储器芯片统一编址的,总共用16根地址线,单片机P2口提供高8位地址,P0口提供低8位地址。
为了唯一地选中某一个外部存储七单元或外部I/O端口,必须进行两种选择操作:首先要选出该存储芯片或I/O接口芯片,这成为片选;其次是选出该芯片的摸一个存储单元或I/O接口芯片的片内寄存器,这称为字选。
线选法:所谓线选法就是利用单片机的一根空闲高位地址线(通常采用P2的某根口线)选中一个外部扩展I/O端口芯片,若要选中某个芯片工作,将对应芯片的片选信号设为低电平,其他未被选中的芯片的片选信号端设为高电平,从而保证只选中指定的芯片工作。
如上图所示为采用线选法进行外部扩展的连接图。
图中8051外部扩展了一片8KB数据存储器6264、一片可编程接口芯片8255、一片D/A转换芯片0832,分别采用P2.5、P2.6和
P2.7作为他们的片选信号。
6264RAM芯片的容量为8KB,需要13根地址线作为字选,因此其片选信号只能用P2.5以上的高位地址线,
高8位地址变化范围:P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0
1 1 0 ×××××
低8位地址变化范围:P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
××××××××由此可得6264的地址范围为:C000H—DFFFH。
8255是一种具有3个I/O端口可编程接口芯片,他除了需要用CS端来作为片选外,还需要用A1、A0端来选择不同的端口。
8255的片选端CS接到8051的P2.6,A1、A0端分别接到最低两位地址线。
高8位地址变化范围:P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0
1 0 1 1 1 1 1 1
低8位地址变化范围:P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
1 1 1 1 1 1 ××
由此可得8255的地址范围是:BFFCH—BFFFH。
0832只有一片选端CS,当CS为低电平时选中0832工作。
高8位地址变化范围:P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0
0 1 1 1 1 1 1 1
低8位地址变化范围:P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
1 1 1 1 1 1 1 1
由此可得0832的地址为:7FFFH.
总线控制之P0口地址数据分时复用过程:比如#define aa PBYTE【0x7FFF】//定义0832地址
写:
aa=0x01;
这样单片机会去这样执行
它先在地址总线上发送地址0111 1111(P2口) 1111 1111(P0口)
即:P2=0x7f,P0=0xff;
然后数据线上发送数据0000 0001;
即:P0=0x01;
把这个数据写入DAC0832;
读:
i=aa;
这样单片机会去这样执行
它先在地址总线上发送地址0111 1111(P2口) 1111 1111(P0口)
然后在去读这个0111 1111(P2口) 1111 1111(P0口)地址的数据给P0口i=这个数据;
二、P1.0可编程时钟输出
利用P1.0口的可编程时钟输出,能输出61—4MHZ(晶振频率=16MHZ)频率占空比50%的方波,可用此脉冲作为ADC0809的时钟信号发生器。
注意:在Proteus中单片机都是89C51为基础的,不能仿真出P1.0口的可编程时钟输出。
三、ALE
地址锁存允许信号输出。
当访问片外存储器是,该引脚是地址锁存信号。
ALE地址锁存允许的输出用于锁存P0低字节地址信号,即使不访问外部存储器,由于ALE的输出是固定频率的脉冲信号(1/6振荡器频率),因此它可用作外部时钟或外部定时脉冲使用。
74LS74可把时钟信号进行分频,二分频或四分频
注意:在Proteus中如果要使用51单片机的ALE口,还得有一步设置:双击单片机;在Advanced Properties选项的第一个下拉框中选中Simulate
Program Fetches;在第二个下拉框中选中Yes;再点击右上方的OK键即完成设置!。