模数转换器ADC0809应用原理

合集下载

ADC0809 AD转换器基本应用技术

ADC0809 AD转换器基本应用技术

ADC0809 A/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上的一路模拟量输入。

通道选择表如下表所示。

数字量输出及控制线:11条ST为转换启动信号。

当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。

EOC为转换结束信号。

当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。

OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。

OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。

D7-D0为数字量输出线。

CLK为时钟输入信号线。

因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(+),VREF(-)为参考电压输入。

2.ADC0809应用说明(1).ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。

模数转换器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芯片的应用
元器件选择 逐次比较式 A / D 转换器通常均为二进制码输 出 , 其数据输出符合微处理器数据总线要求 , 与位处 理器接口的兼容性好 , 因此逐次比较式 A / D 转换接 口具有简单 、清晰 , 软件配置简单的优点 。ADC0809 可输入 8 路模拟信号 , 是单片机应用系统中最广泛应 用的 A / D 转换芯片之一 。ADC0809 典型时钟频率为 640k Hz ,它内部没有时钟电路 ,f CL K 需由外部提供 ,而 串口与主控机通信速率为 9600b/ s , 此速率要求用 11. 059M Hz 晶振 。8031 的 AL E 频率太高 ,需经分频 器后再送入 ADC0809 。这里选用 4024 芯片 ,它是 7 位 二进制串行分频器 ,由 7 个主从触发器构成 。 由于要对 96 个模拟通道作 A / D 转换 ,需用模拟 开关配合实现 。4067 芯片是单 16 通道模拟开关 ,选用 6 个 4067 ,可以满足要求 。 为提高采样的精确性 ,ADC0809 的采样通入口和 6 个 4067 的公共 O / I 之间增加 A C/ DC 转换电路
开关的 16 个通道 , 逐个采集每个通道 , 完成 96 个通 道的 A / D 转换 。
为提高彩样数据的精确性 , 在 AD0809 的采样通 道入口与 4067 公共 O / I 之间加 A C/ DC 的转换电 路 ,将交流信号转换为直流信号之后再去采样 。
采样得到的数据 , 经串行口送给主控机分析处 理 ,串行口采用 RS - 232 标准接口 。
性能特点 (1 )ADC0809 芯片性能特点 :外部供给基准电压 ; 微处理器兼容 (三态输出 ) ; 含单路 8 信道多路转换 器 ; 不要调零及满标度 ; 典型时钟频率为 640k Hz ; 单 通道转换时间 116μs 。 (2 )4067芯片性能特点 :数字信号控制的16选1模 拟开关 ;禁止端 IN H =“H ”时 ,全部开关为关状态 。

adc0809原理

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的转换精度和转换速率在一定程度上有一定的权衡。

为了提高转换精度,需要减小转换速率。

当转换速率较高时,转换精度可能会下降。

因此,在具体应用中需要根据需求选择合适的转换速率和精度。

ADC0809A-D转换器基本应用技术

ADC0809A-D转换器基本应用技术

ADC0809A-D转换器基本应用技术D(6).当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。

3.实验任务如下图所示,从ADC0809的通道IN3输入0-5V之间的模拟量,通过ADC0809转换成数字量在数码管上以十进制形成显示出来。

ADC0809的VREF接+5V 电压。

4.电路原理图图1.27.15.系统板上硬件连线(1).把“单片机系统板”区域中的P1端口的P1.0-P1.7用8芯排线连接到“动态数码显示”区域中的A B C D E F G H端口上,作为数码管的笔段驱动。

(2).把“单片机系统板”区域中的P2端口的P2.0-P2.7用8芯排线连接到“动态数码显示”区域中的S1 S2 S3 S4 S5 S6 S7 S8端口上,作为数码管的位段选择。

(3).把“单片机系统板”区域中的P0端口的P0.0-P0.7用8芯排线连接到“模数转换模块”区域中的D0D1D2D3D4D5D6D7端口上,A/D转换完毕的数据输入到单片机的P0端口(4).把“模数转换模块”区域中的VREF端子用导线连接到“电源模块”区域中的VCC端子上;(5).把“模数转换模块”区域中的A2A1A0端子用导线连接到“单片机系统”区域中的P3.4 P3.5 P3.6端子上;(6).把“模数转换模块”区域中的ST端子用导线连接到“单片机系统”区域中的P3.0端子上;(7).把“模数转换模块”区域中的OE端子用导线连接到“单片机系统”区域中的P3.1端子上;(8).把“模数转换模块”区域中的EOC端子用导线连接到“单片机系统”区域中的P3.2端子上;(9).把“模数转换模块”区域中的CLK端子用导线连接到“分频模块”区域中的/4 端子上;(10).把“分频模块”区域中的CK IN端子用导线连接到“单片机系统”区域中的ALE 端子上;(11).把“模数转换模块”区域中的IN3端子用导线连接到“三路可调压模块”区域中的VR1 端子上;6.程序设计内容(1).进行A/D转换时,采用查询EOC的标志信号来检测A/D转换是否完毕,若完毕则把数据通过P0端口读入,经过数据处理之后在数码管上显示。

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可以将模拟信号转换为数字信号,实现模拟到数字的转换功能。

ADC0809工作原理及C编程

ADC0809工作原理及C编程

3.C 语言源代码编辑
C51 程序设计是单片机应用的必要组成部分。常见的 C 程序包括注释、头文件、全局变
量定义、自定义函数声明、宏定义、主函数和子函数等内容,对于一个优秀的 C 程序案例,
注释必不可少。本任务作为电压模拟信号采集实验。参考程序如下所示:
/********************************************************************************** * 平台:THMEMU-1 + Keil U4 + STC89C52 * 晶振:12MHZ
**********************************************************************************/
#include<reg51.h>
//调用库文件
unsigned char weima[10]={0xfc,0x60,0xda,0xf2, 0x66,0xb6,0xbe,0xe0,0xfe,0xf6};
ADC0809 是 8 通道 8 位 CMOS 逐次逼近式 A/D 转换芯片,片内有模拟量通道选择开关 及相应的通道锁存、译码电路,A/D 转换后的数据由三态锁存器输出,由于片内没有时钟需 外接时钟信号,利用它可直接输入 8 个单端的模拟信号分时进行 A/D 转换,在多点巡回检测 和过程控制、运动控制中应用十分广泛。。芯片的引脚及内部结构如图 2。
//时钟信号 //延时函数
//T1 初始化 //串口初始化 //T1 定时开始
//先上升沿,后下降沿,延时给转换时间
//T1 定时器,方式 2 //初值,10us,时钟频率 50KHz // // // //

ADC0809 Microsoft Word 文档

ADC0809 Microsoft Word 文档

ad08091、AD0809 的逻辑结构ADC0809 是8 位逐次逼近型A/D转换器。

它由一个8路模拟开关、一个地址锁存译码器、一个A/D 转换器和一个三态输出锁存器组成(见图1)。

多路开关可选通8个模拟通道,允许8 路模拟量分时输入,共用A/D 转换器进行转换。

三态输出锁器用于锁存A/D 转换完的数字量,当OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。

2、AD0809 的工作原理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模数转换器的使用详解与程序

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]; } } void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=1;y>0;y--); } void cl() interrupt 3 { clock=!clock; }
模数转换器
模数转换器即 A/D 转换器,或简称 ADC ,通常是指一个将模拟信号转变为数字信号 的电子元件。 通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字 信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一 个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输 出的数字量则表示输入信号相对于参考信号的大小。 模数转换器最重要的参数是转换的精度,通常用输出的数字信号的位数的多少表 示。转换器能够准确输出的数字信号的位数越多,表示转换器能够分辨输入信号的能 力越强,转换器的性能也就越好。 A/D 转换一般要经过采样、保持、量化及编码 4 个过程。在实际电路中,有些过 程是合并进行的,如采样和保持,量化和编码在转换过程中是同时实现的。 一般来说,AD 比 DA 贵,尤其是高速的 AD,因为在某些特殊场合,如导弹的摄 像头部分要求有高速的转换能力。一般那样 AD 要上千美元。还有通过 AD 的并联可 以提高 AD 的转换效率,多个 AD 同时处理数据,能满足处理器的数字信号需求了。
A/D 转换器的选型技巧及注意事项(转)

ADC0809程序原理及逻辑结构

ADC0809程序原理及逻辑结构
2)具有转换起停控制端。
3)转换时间为100&mu;s(时钟为640KHz时),130&mu;s(时钟为
500KHz时)。
4)单个+5V电源供电。
5)模拟输入电压范围0~+5V,不需零点和满刻度校准。
6)工作温度范围为-40~+85摄氏度。7)低功耗,约15mW。
ADC0809逻辑结构:
ADC0809是带有8位A/D转换器、8路模拟开关以及微处理机兼容
ADC0809信号引脚:
对ADC0809主要信号引脚的功能说明如下:
IN~ IN一一模拟量输入通道
ALE一一地址锁存允许信号。对应ALE上跳沿,A、B、C地址
状态送入地址锁存器中。
START一一转换启动信号。START上升沿时,复位ADC0809;
START下降沿时启动
芯片,开始进行A/D转换;在A/D转换期间,START应保持低
的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,是目前应用比较
广泛的A/D转换芯片之一,主要适用于对精度和采样速率要求不高的场合或
一般的工业控制领域,可以和单片机直接相连。它具有8个通道的模拟量输
入线,可在程序控制下对任意通道进行A/D转换得到8[1]位二进制数字
量。
ADC0809内部结构图:
图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共
用一个A/D转换器进行转换,这是一种经济的多路数据采集方法。地址锁存
与译码电路完成对A、B.C3个地址位进行锁存和译码,其译码输出用于通
道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统
数据总线相连。
ADC0809应用电路原理图:
Vcc-- +5V电源。

模数转换器ADC0809应用原理

模数转换器ADC0809应用原理

精品文档AD0809应用原理--很全面的资料1.0809 的芯片说明: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 选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7数字量输出及控制线: 11 条ST 为转换启动信号。

当 ST 上跳沿时,所有内部寄存器清零;下跳沿时,开始进行 A/ D 转换;在转换期间, ST应保持低电平。

EOC为转换结束信号。

当 EOC为高电平时,表明转换结束;否则,表明正在进行 A/D 转换。

OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。

OE= 1,输出转换得到的数据; OE=0,输出数据线呈高阻状态。

D7- D0为数字量输出线。

使用ADC0809的AD转换实验

使用ADC0809的AD转换实验

实验二 使用ADC0809的A/D 转换实验一、实验目的加深理解逐次逼近法模数转换器的特征和工作原理,掌握ADC0809的接口方法以及A/D 输入程序的设计和调试方法。

二、预备知识逐次逼近法A/D 也称逐次比较法A/D 。

它由结果寄存器、D/A 、比较器和置位控制逻辑等部件组成,如图5-1所示。

图5-1三、实验内容1 、实验原理本实验采用 ADC0809 做 A/D 转换实验。

ADC0809 是一种8路模拟输入、8位数字输出的逐次逼近法A/D 器件,转换时间约100us ,转换精度为±1/512,适用于多路数据采集系统。

ADC0809片内有三态输出的数据锁存器,故可以与8088微机总线直接接口。

IN-026msb2-1212-220IN-1272-3192-418IN-2282-582-615IN-312-714lsb2-817IN-42E OC7IN-53ADD-A 25IN-64ADD-B 24ADD-C 23IN-75ALE22ref(-)16E NABL E 9ST ART 6ref(+)12CLOCK 10UB43ADC0809123UB42A 74L S02456UB42B 74L S02E B4122U/16VCB41103RB41510IORIOWVCCADD0ADD1ADD2GNDGNDGNDVre f+5VIN6IN7IN1IN2IN3IN4IN5D7D0D1D2D3D4D5D6E OC/EOCIN0CS_0809CLK_080912UA32A 74L S04WA5110K VCCGNDRA51100V1Y61MHZ图中ADC0809的CLK 信号接CLK=,基准电压Vref(+)接Vcc 。

一般在实际应用系统中应该接精确+5V ,以提高转换精度,ADC0809片选信号0809CS 和/IOW 、/IOR 经逻辑组合后,去控制ADC0809的ALE 、START 、ENABLE 信号。

ADC0809芯片的原理及应用

ADC0809芯片的原理及应用

目录引言 (1)1 ADC0809的逻辑结构 (1)1.1 ADC0809引脚结构 (1)1.2 ADC0809的主要性能指标 (3)1.3 ADC0809的内部逻辑结构 (3)1.4 ADC0809的时序 (4)2 ADC0809与MCS-51单片机的接口电路 (5)2.1 0809与51单片机的第一种连接方式 (7)2.2 0809与51单片机的第二种连接方式 (9)2.3 0809与51单片机的第三种连接方式 (10)3 ADC0809与单片机制作的数字电压表 (11)总结 (16)参考文献 (16)英文翻译 (17)ADC0809芯片的原理及应用摘要:ADC0809是8位逐次逼近型A/D转换器,是目前应用比较广泛、典型的A/D转换芯片之一。

本文主要介绍ADC0809芯片的内部逻辑结构、引脚分布,并详细阐述了其工作原理。

在此基础上设计了两种相关应用电路——ADC0809与单片机的接口电路及数字电压表,并对这两种应用电路的可行性进行了讨论。

通过对ADC0809应用电路的探究,能更全面的提高对应用系统的分析、设计能力,对实践具有重要的指导意义。

关键词:ADC0809;模数转换;单片机引言A/D转换器是模拟信号源与计算机或其它数字系统之间联系的桥梁,它的任务是将连续变化的模拟信号转换为数字信号,以便计算机等数字系统进行处理、存储、控制和显示。

在工业控制和数据采集及许多其它领域中,A/D转换器是不可缺少的重要组成部分,它的应用已经相当普遍。

目前用软件的方法虽然可以实现高精度的A/D转换,但占用CPU时间长,限制了应用。

8位A/D转换器ADC0809作为典型的A/D转换芯片,具有转换速度快、价格低廉及与微型计算机接口简便等一系列优点,目前在8位单片机系统中得到了广泛的应用。

1 ADC0809的逻辑结构ADC0809是带有8位A/D转换器、8路模拟开关以及微处理机兼容的控制逻辑的CMOS组件。

它是逐次逼近式A/D转换器,是目前应用比较广泛的A/D转换芯片之一,主要适用于对精度和采样速率要求不高的场合或一般的工业控制领域,可以和单片机直接相连。

AD0809的工作原理

AD0809的工作原理

AD0809的工作原理1. AD0809的芯片说明: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 选择的通道000IN0数字量输出及控制线:11条ST为转换启动信号。

当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。

EOC为转换结束信号。

当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。

OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。

OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。

D7-D0为数字量输出线。

CLK为时钟输入信号线。

因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(+),VREF(-)为参考电压输入。

2.ADC0809应用说明(1).ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。

ADC0809模数转换

ADC0809模数转换

ADC0809模数转换1. 实验目的与效果:模数转换在信号采集中占有很重要的地位。

本实验采用经典8位AD ――ADC080做一个0~5V 的电压表,并用数码管显示出来。

(说明:本实验板上的读AD 值端口跟数码管位选端口是分时复用的,呵呵,可以学习一下单片机端口分时复用)ADC0809简介:ADC0809是带有8位A/D 转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS 组件。

它是逐次逼近式A/D 转换器,可以和单片机直接接口。

(1). (1). ADC0809的内部逻辑结构由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D 转换器和一个三态输出锁存器组成。

多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D 转换器进行转换。

三态输出锁器用于锁存A/D 转换完的数字量,当OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。

(2). (2). 引脚结构IN0-IN7:8条模拟量输入通道ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V ,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。

地址输入和控制线:4条ALE 为地址锁存允许输入线,高电平有效。

当ALE 线为高电平时,地址锁存与译码器将A ,B ,C 三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。

A ,B 和C 为地址输入线,用于选通IN0-IN7上的一路模拟量输入。

IN0 I N1 I N2 I N3 I N4 I N5 I N6 I N7 A B C A LEEOC1 2 3 4 5 6 7通道选择表如下表所示。

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条START为转换启动信号。

ADC0809芯片的原理及应用

ADC0809芯片的原理及应用

ADC0809芯片的原理及应用1. 原理介绍:ADC0809芯片是一种8位串行输出模数转换器(ADC),用于将模拟信号转换为数字信号。

它采用了逐次逼近型转换技术,具有高精度和稳定性。

其工作原理如下:a. 输入信号采样:ADC0809芯片具有一个多路复用器,可以选择8个不同的模拟输入通道。

输入信号经过采样保持电路进行采样,并转换为对应的模拟电压。

b. 逐次逼近型转换:ADC0809芯片采用逐次逼近型转换技术,即从最高位开始逐位逼近,通过比较DAC输出与输入信号的大小来确定每一位的数字值。

c. 数字输出:转换完成后,ADC0809芯片将结果以串行方式输出,可以通过微处理器或其他数字设备进行接收和处理。

2. 主要特点:a. 8位分辨率:ADC0809芯片可以将模拟信号转换为8位的数字信号,提供256个离散的输出值。

b. 内部参考电压:芯片内部集成了一个参考电压源,可以提供稳定的参考电压,减少外部元器件的需求。

c. 串行输出:转换结果以串行方式输出,可以方便地与其他数字设备进行通信和数据传输。

d. 多路复用输入:芯片具有8个模拟输入通道,可以选择不同的输入信号进行转换。

e. 快速转换速率:ADC0809芯片的转换速率可达到100,000次/秒,适用于高速数据采集和实时控制应用。

3. 应用领域:a. 数据采集系统:ADC0809芯片广泛应用于各种数据采集系统,如温度采集、压力采集、光强度采集等。

它可以将模拟传感器信号转换为数字信号,方便存储、处理和分析。

b. 仪器仪表:ADC0809芯片可用于各种仪器仪表,如多功能测试仪、示波器等,用于测量和分析模拟信号。

c. 自动控制系统:ADC0809芯片可以将模拟控制信号转换为数字信号,用于自动控制系统的输入和输出接口,实现对各种设备和过程的控制。

d. 通信系统:ADC0809芯片可用于通信系统中的信号处理和调制解调等功能,将模拟信号转换为数字信号进行传输和处理。

e. 电力系统:ADC0809芯片可用于电力系统中的电流、电压等参数的测量和监控,实现对电力系统的智能化管理和控制。

ADC0809芯片的原理及应用

ADC0809芯片的原理及应用

目录引言 (1)1 ADC0809的逻辑结构 (1)1.1 ADC0809引脚结构 (1)1.2 ADC0809的主要性能指标 (3)1.3 ADC0809的内部逻辑结构 (3)1.4 ADC0809的时序 (4)2 ADC0809与MCS-51单片机的接口电路 (5)2.1 0809与51单片机的第一种连接方式 (7)2.2 0809与51单片机的第二种连接方式 (9)2.3 0809与51单片机的第三种连接方式 (10)3 ADC0809与单片机制作的数字电压表 (11)总结 (16)参考文献 (16)英文翻译 (17)ADC0809芯片的原理及应用摘要:ADC0809是8位逐次逼近型A/D转换器,是目前应用比较广泛、典型的A/D转换芯片之一。

本文主要介绍ADC0809芯片的内部逻辑结构、引脚分布,并详细阐述了其工作原理。

在此基础上设计了两种相关应用电路——ADC0809与单片机的接口电路及数字电压表,并对这两种应用电路的可行性进行了讨论。

通过对ADC0809应用电路的探究,能更全面的提高对应用系统的分析、设计能力,对实践具有重要的指导意义。

关键词:ADC0809;模数转换;单片机引言A/D转换器是模拟信号源与计算机或其它数字系统之间联系的桥梁,它的任务是将连续变化的模拟信号转换为数字信号,以便计算机等数字系统进行处理、存储、控制和显示。

在工业控制和数据采集及许多其它领域中,A/D转换器是不可缺少的重要组成部分,它的应用已经相当普遍。

目前用软件的方法虽然可以实现高精度的A/D转换,但占用CPU时间长,限制了应用。

8位A/D转换器ADC0809作为典型的A/D转换芯片,具有转换速度快、价格低廉及与微型计算机接口简便等一系列优点,目前在8位单片机系统中得到了广泛的应用。

1 ADC0809的逻辑结构ADC0809是带有8位A/D转换器、8路模拟开关以及微处理机兼容的控制逻辑的CMOS组件。

它是逐次逼近式A/D转换器,是目前应用比较广泛的A/D转换芯片之一,主要适用于对精度和采样速率要求不高的场合或一般的工业控制领域,可以和单片机直接相连。

adc0809工作原理

adc0809工作原理

adc0809工作原理
ADC0809是一种8位数模转换器,用于将模拟电压信号转换
为相应的数字数据。

它是一种逐次逼近型模数转换器,工作原理如下:
1.输入电压采样:输入电压信号通过输入引脚IN来采样,通
常使用一个电阻分压器将输入电压范围缩放到ADC0809的工
作范围内。

2.开始转换:当启动输入引脚(START)从低电平切换到高电平时,模数转换开始。

同时,ADC0809开始采样输入信号并
将其转换为相应的数字数据。

3.逐次逼近转换:ADC0809采用逐次逼近型转换方法,即根
据转换结果的高低判断输入信号的数值,并逐步缩小转换范围直到最终达到精确的转换值。

4.转换完成:转换完成后,数值数据可以通过8个输出引脚来
获取。

这些引脚分别对应于转换结果的每一位,从最高位(MSB)到最低位(LSB)。

5.结束转换:当转换完成后,ADC0809会自动将结束信号(EOC)引脚从低电平切换到高电平,表示转换过程已经结束,可以获取结果数据。

总结:ADC0809通过逐次逼近型转换方法将输入电压信号转
换为对应的8位数字数据。

通过合适的输入电路、控制信号和数据处理,可以实现模拟信号的准确数字化处理。

ADC0809功能简介

ADC0809功能简介

ADC0809 功能简介
ADC0809 是8 路8 位逐次逼近型A/D 转换CMOS 器件,在过程控制和
机床控制等应用中,能对多路模拟信号进行分时采集和A/D 转换,输出数字信号通过三态缓冲器,可直接与微处理器的数据总线相连接。

一:ADC0809 的内部结构和引脚共能
ADC0809 的内部结构原理如图10.3.1 所示,芯片的主要组成部分是一个8
位逐次比较型A/D 转换器。

为了实现8 路模拟信号的分时采集,片内设置了带有锁存功能的8 路模拟选通开关,以及相应的通道地址锁存和译码电路,可对8 路0~5V 的输入模拟电压进行分时转换,转换后的数据送入三态输出数据锁存器。

ADC0809 的主要特性如下:
(1) 辨率为8 位
(2) 最大不可调误差小于正负ULSB
(3) 可锁存三态输出,能与8 位微处理器接口
(4) 输出与TTL 兼容。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

AD0809应用原理--很全面的资料1. 0809的芯片说明: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.电路原理图5.程序设计:(1).进行A/D转换时,采用查询EOC的标志信号来检测A/D转换是否完毕,若完毕则把数据通过P0端口读入,经过数据处理之后在数码管上显示。

(2).进行A/D转换之前,要启动转换的方法:ABC=110选择第三通道ST=0,ST=1,ST=0产生启动转换的正脉冲信号.(3). 关于0809的计算:ad0809是根据逐位逼近的方法产生数据的。

参考电压为0-5V的话。

以0809八位255的转换精度每一位的电压值为(5-0)/2 55≈0.0196V设输入电压为X则:X-27*0.0196>=0则AD7=1否则AD7=0。

X-26*0.0196>=0则AD6=1否则AD6=0。

X-20*0.0196>=0则AD0=1否则AD0=0。

(27指2的7次方。

26-------20同理)若参考电压为0-1V(1-0)/255≈0.0039V精度自然高了。

可测量范围小了。

1)汇编源程序:CH EQU 30HDPCNT EQU 31HDPBUF EQU 33HGDATA EQU 32HST BIT P3.0OE BIT P3.1EOC BIT P3.2ORG 00HLJMP STARTORG 0BHLJMP T0XORG 30HSTART: MOV CH,#0BCHMOV DPCNT,#00HMOV R1,#DPCNTMOV R7,#5MOV A,#10MOV R0,#DPBUFLOP: MOV @R0,AINC R0DJNZ R7,LOPMOV @R0,#00HINC R0MOV @R0,#00HINC R0MOV @R0,#00HMOV TMOD,#01HMOV TH0,#(65536-4000)/256MOV TL0,#(65536-4000) MOD 256 SETB TR0SETB ET0SETB EAWT: CLR STSETB STCLR STWAIT: JNB EOC,WAITSETB OEMOV GDATA,P0CLR OEMOV A,GDATAMOV B,#100DIV ABMOV 33H,AMOV A,BMOV B,#10DIV ABMOV 34H,AMOV 35H,BSJMP WTT0X: NOPMOV TH0,#(65536-4000)/256MOV TL0,#(65536-4000) MOD 256MOV DPTR,#DPCDMOV A,DPCNTADD A,#DPBUFMOV R0,AMOV A,@R0MOVC A,@A+DPTRMOV P1,AMOV DPTR,#DPBTMOV A,DPCNTMOVC A,@A+DPTRMOV P2,AINC DPCNTMOV A,DPCNTCJNE A,#8,NEXTMOV DPCNT,#00HNEXT: RETIDPCD: DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FH,00HDPBT: DB 0FEH,0FDH,0FBH,0F7HDB 0EFH,0DFH,0BFH,07FHEND2)C语言源程序#includeunsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f};unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00};unsigned char dispbuf[8]={10,10,10,10,10,0,0,0}; unsigned char dispcount;sbit ST="P3"^0;sbit OE="P3"^1;sbit EOC="P3"^2;unsigned char channel="0xbc";//IN3unsigned char getdata;void main(void){TMOD=0x01;TH0=(65536-4000)/256;TL0=(65536-4000)%256;TR0=1;ET0=1;EA=1;P3=channel;while(1){ST=0;ST=1;ST=0;while(EOC==0);OE=1;getdata=P0;OE=0;dispbuf[2]=getdata/100;getdata=getdata%10;dispbuf[1]=getdata/10;dispbuf[0]=getdata%10;}}void t0(void) interrupt 1 using 0{TH0=(65536-4000)/256;TL0=(65536-4000)%256;P1=dispcode[dispbuf[dispcount]];P2=dispbitcode[dispcount];dispcount++;if(dispcount==8){dispcount=0;}}3)FPGA实现的程序:(verilog)module AD0809(clk, //脉宽(至少100ns)rst_n,EOC, //约100us后EOC变为高电平转换结束START, //启动信号,上升沿有效(至少100ns)OE, //高电平打开三态缓冲器输出转换数据ALE, //高电平有效,选择信道口ADDA,//因为ADDB,ADDC都接地了,这里只有ADDA为变量DATA,// //转换数据DATA_R);output START,OE,ALE,ADDA;input EOC,clk,rst_n;input[7:0] DATA;output[7:0] DATA_R;reg START,OE,ALE,ADDA;reg[7:0] DATA_R;reg[4:0] CS,NS;parameter IDLE=5''b00001,START_H=5''b00010,START_L=5''b00100,CHECK_END=5''b01000,GET_DATA=5''b10000;always @(*)case(CS)IDLE:NS=START_H;START_H:NS=START_L;START_L:NS=CHECK_END;CHECK_END:if(EOC)NS=GET_DATA;elseNS=CHECK_END;GET_DATA:NS=IDLE;default:NS=IDLE;endcasealways @(posedge clk)if(!rst_n)CS<=IDLE;elseCS<=NS;always @(posedge clk)case(NS)IDLE:beginOE<=0;START<=0;ALE<=0;ADDA<=1;endSTART_H:beginOE<=0;START<=1; //产生启动信号ALE<=1;ADDA<=1;//选择信道口IN0 endSTART_L:beginOE<=0;START<=0;ALE<=1;//启动信号脉宽要足够长,在启动的时候ALE要一直有效endCHECK_END:beginOE<=0;START<=0;ALE<=0;endGET_DATA:beginOE<=1; //高电平打开三态缓冲器输出转换数据DATA_R<=DATA;//提取转换数据START<=0;ALE<=0;enddefault:beginOE<=0;START<=0;ALE<=0;ADDA<=0;endendcaseendmodule4)FPGA实现的程序:(VHDL)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY AD0809 ISPORT( D: IN STD_LOGIC_VECTOR(7 DOWNTO 0); CLK,EOC: IN ST D_LOGIC;CLOCK:IN STD_LOGIC;ALE,START,OE,LOCK0: OUT STD_LOGIC;DOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END AD0809;ARCHITECTURE behav OF AD0809 ISTYPE states IS (st0,st1,st2,st3,st4);SIGNAL current_state,next_state:states:=st0;SIGNAL REGL :STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL LOCK :STD_LOGIC;SIGNAL CNT1:STD_LOGIC_VECTOR(0 DOWNTO 0); SIGNAL A :INTEGER RANGE 0 TO 1;SIGNAL LOWDATA:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL HIGHDATA:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL LOWLED7S:STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL HIGHLED7S:STD_LOGIC_VECTOR(6 DOWNTO 0); BEGINLOCK0<=LOCK;PROCESS(REGL)BEGINLOWDATA<=REGL(3 DOWNTO 0);HIGHDATA<=REGL(7 DOWNTO 4);CASE LOWDATA ISWHEN "0000" => LOWLED7S<="0111111";WHEN "0001" => LOWLED7S<="0000110";WHEN "0010" => LOWLED7S<="1011011";WHEN "0011" => LOWLED7S<="1001111";WHEN "0100" => LOWLED7S<="1100110";WHEN "0101" => LOWLED7S<="1101101";WHEN "0110" => LOWLED7S<="1111101";WHEN "0111" => LOWLED7S<="0000111";WHEN "1000" => LOWLED7S<="1111111";WHEN "1001" => LOWLED7S<="1101111";WHEN "1010" => LOWLED7S<="1110111";WHEN "1011" => LOWLED7S<="1111100";WHEN "1100" => LOWLED7S<="0111001";WHEN "1101" => LOWLED7S<="1011110";WHEN "1110" => LOWLED7S<="1111001";WHEN "1111" => LOWLED7S<="1110001";WHEN OTHERS => Null;END CASE;CASE HIGHDATA ISWHEN "0000" => HIGHLED7S<="0111111";WHEN "0001" => HIGHLED7S<="0000110";WHEN "0010" => HIGHLED7S<="1011011";WHEN "0011" => HIGHLED7S<="1001111";WHEN "0100" => HIGHLED7S<="1100110";WHEN "0101" => HIGHLED7S<="1101101";WHEN "0110" => HIGHLED7S<="1111101";WHEN "0111" => HIGHLED7S<="0000111";WHEN "1000" => HIGHLED7S<="1111111";WHEN "1001" => HIGHLED7S<="1101111";WHEN "1010" => HIGHLED7S<="1110111";WHEN "1011" => HIGHLED7S<="1111100";WHEN "1100" => HIGHLED7S<="0111001";WHEN "1101" => HIGHLED7S<="1011110";WHEN "1110" => HIGHLED7S<="1111001";WHEN "1111" => HIGHLED7S<="1110001";WHEN OTHERS => Null;END CASE;END PROCESS;PROCESS(CLOCK)BEGINIF CLOCK'EVENT AND CLOCK='1' THEN CNT1<=CNT1+1; END IF;END PROCESS;PROCESS(CNT1)BEGINCASE CNT1 ISWHEN "0" =>SEL<="111"; A<=0;WHEN "1" =>SEL<="110"; A<=1;WHEN OTHERS =>NULL;END CASE;END PROCESS;PROCESS(A)BEGINCASE A ISWHEN 0 =>DOUT<=LOWLED7S;WHEN 1 =>DOUT<=HIGHLED7S;WHEN OTHERS =>NULL;END CASE;END PROCESS;COM: PROCESS(current_state,EOC)BEGINCASE current_state ISWHEN st0=>ALE<='0';START<='0';LOCK<='1';OE<='0';next_state< =st1;WHEN st1=>ALE<='1';START<='0';LOCK<='1';OE<='0';next_state< =st2;WHEN st2=>ALE<='0';START<='1';LOCK<='0';OE<='0';IF (EOC='1') THEN next_state<=st3;ELSE next_state<=st2;END IF;WHEN st3=>ALE<='0';START<='0';LOCK<='0';OE<='1';next_state< =st4;WHEN st4=>ALE<='0';START<='0';LOCK<='1';OE<='1';next_state< =st0;WHEN OTHERS=>next_state<=st0;END CASE;END PROCESS COM;REG: PROCESS(CLK)BEGINIF(CLK'EVENT AND CLK='1') THEN current_state<=next_state; END IF;END PROCESS REG;LATCH1: PROCESS(LOCK)BEGINIF LOCK='1' AND LOCK'EVENT THEN REGL<=D;END IF;END PROCESS LATCH1;END behav;。

相关文档
最新文档