登录/注册

adc0809的使用

更多

好的,我们来详细讲解一下 ADC0809 这款经典的 8 位逐次逼近型模数转换器(ADC)的使用方法(基于中文说明)。

ADC0809 核心特点:

引脚功能 (关键引脚):

  1. IN0-IN7: 模拟信号输入通道 0 到 7。
  2. ADD A, ADD B, ADD C: 地址选择线。用于选择 8 路模拟输入中的哪一路进行转换。通过这三根线的二进制组合 (000 到 111) 对应选择 IN0 到 IN7。
    • CBA = 000 -> IN0
    • CBA = 001 -> IN1
    • ...
    • CBA = 111 -> IN7
  3. ALE (Address Latch Enable): 地址锁存允许信号 (输入,高电平有效)。在 ALE 的上升沿,将当前 ADD A/B/C 上的地址锁存到内部通道选择器中。
  4. START: 启动转换信号 (输入,高电平有效)。在 START 的上升沿,复位内部逐次逼近寄存器 (SAR);在 START 的下跳沿,开始 A/D 转换过程。START 信号宽度要求 > 100ns。
  5. EOC (End Of Conversion): 转换结束信号 (输出)。转换进行时为低电平,转换完成后变为高电平。这个信号非常重要,用于通知 CPU 数据已准备好可读取。
  6. OE (Output Enable): 输出允许信号 (输入,高电平有效)。当 OE 为高电平时,打开 ADC0809 内部的三态输出锁存器,将转换结果的 8 位数字量放到数据总线 (DB0-DB7) 上。OE = 0 时,DB0-DB7 呈高阻态。
  7. CLK: 时钟输入。提供 ADC 内部工作所需的时序。典型频率范围 10kHz - 1280kHz,常用 500kHz - 640kHz。可以通过单片机定时器、专用振荡器或单片机 ALE 引脚分频获得。
  8. Vref(+), Vref(-): 基准电压输入。决定了输入模拟电压的范围。通常 Vref(+) 接 +5V (或更精确的基准源),Vref(-) 接 GND (0V)。
  9. DB0-DB7: 8 位三态数据输出线。转换结果从这里输出。仅在 OE=1 时有效。
  10. Vcc: 电源 (+5V)。
  11. GND: 地。

基本工作流程 (与单片机接口为例):

  1. 硬件连接:

    • 将 ADC0809 的 Vcc 接 +5V,GND 接地。
    • 连接 Vref(+) 到 +5V (或更精确的基准电压源),Vref(-) 到 GND。
    • 将需要转换的模拟信号连接到 IN0-IN7 中的一个或多个通道。
    • 将 ADD A/B/C 连接到单片机的 I/O 口或地址总线 (用于选择通道)。
    • 将 START 和 ALE 连接在一起,接到一个单片机 I/O 口 (Px.y) 上 (简化时序控制)。
    • 将 EOC 连接到一个单片机 I/O 口 (用于查询转换状态) 或连接到外部中断引脚 (用于中断方式)。
    • 将 OE 连接到一个单片机 I/O 口。
    • 将 CLK 连接到时钟源 (如:单片机的 ALE 引脚通常输出 1/6 系统时钟频率,若单片机晶振 12MHz,则 ALE 为 2MHz,需经 D 触发器 2 分频得到 1MHz 给 ADC0809)。
    • 将 DB0-DB7 连接到单片机的数据总线 (若总线扩展) 或并行 I/O 口 (如 P0/P1/P2/P3)。
  2. 软件流程 (查询 EOC 方式):

    // 伪代码/示意代码 (假设单片机为 51 系列)
    sbit START_ALE = P1^0; // START 和 ALE 连在一起的控制引脚
    sbit EOC = P1^1;       // EOC 状态引脚
    sbit OE = P1^2;        // OE 控制引脚
    #define AD_DATA P0     // DB0-DB7 连接到 P0 口
    
    void ADC0809_Read(unsigned char channel, unsigned char *result) {
        // 1. 选择通道 & 锁存地址 (同时启动转换)
        ADDR_C = channel & 0x01; // 假设 ADD C/B/A 连接到 P2.0, P2.1, P2.2
        ADDR_B = (channel >> 1) & 0x01;
        ADDR_A = (channel >> 2) & 0x01; // 根据实际连接修改
        // 或者直接通过控制 START_ALE 引脚的方式(START_ALE 和 ADD C/B/A 都直接由 CPU 控制):
        // 先将 ADD C/Y/X 设置好对应的通道值(CBA)
        P2 = (P2 & 0xF8) | (channel & 0x07); // 假设 ADD CBA 在 P2 的低三位
        // 产生 ALE 上升沿 (锁存地址) 和 START 下降沿 (开始转换)
        START_ALE = 1; // ALE 有效 (上升沿锁存地址),同时 START 高 (尚未启动)
        START_ALE = 0; // START_ALE 变低,产生 START 下降沿 -> 开始转换! (此时 ALE 也无效了)
    
        // 2. 等待转换完成 (查询 EOC)
        while(EOC == 0);    // 等待 EOC 变低 (转换开始后为低)
        while(EOC == 1);    // 等待 EOC 变高 (转换完成) --- 注意时序图,START下降沿后EOC很快变低,转换完成变高
        // 更严谨的查询通常只需一次检测 EOC 变高:
        // while(EOC == 0); // 只等待 EOC 变高即可
    
        // 3. 允许数据输出
        OE = 1;             // 打开输出锁存器
    
        // 4. 读取转换结果
        *result = AD_DATA;  // 从数据端口读取值
    
        // 5. 关闭输出
        OE = 0;             // 关闭输出,数据总线高阻态 (可选,下次读取前再打开也行)
    }
  3. 软件流程 (中断方式 - 更高效):

    • 将 EOC 连接到单片机的外部中断引脚 (如 INT0)。
    • 在主程序中完成步骤 1 (启动转换)。
    • 编写外部中断服务程序 (ISR):
      void EXTI0_ISR(void) interrupt 0 { // 假设 EOC 接 INT0 (中断0)
          OE = 1;             // 打开输出
          adc_value = AD_DATA; // 读取转换结果
          OE = 0;             // 关闭输出 (可选)
          // 如果需要连续转换,可以在这里再次启动下一次转换 (注意时序间隔)
      }
    • 在启动转换后,CPU 可以去做其他任务。当 EOC 变高触发中断时,CPU 自动跳转到 ISR 读取数据。

重要注意事项:

  1. 时序严格性: 必须严格按照芯片手册的时序图操作,特别是 ALESTARTEOCOE 之间的时序关系。脉冲宽度要足够。
  2. 基准电压 Vref: 这是精度的关键!使用干净的、稳定的基准电压源(如专用的电压基准芯片 TL431、REF5050 等)比直接接 Vcc 能获得更高的精度和稳定性。
  3. 时钟 CLK: 必须在规定的频率范围内(10kHz - 1280kHz)。频率影响转换速度(转换时间 = 8 * 时钟周期 + 少量时间)。获取方式:
    • 单片机振荡器分频: 利用单片机的 ALE 信号(频率通常是晶振频率的 1/6 或 1/12)或定时器产生。
    • 专用振荡器电路: 如使用 555 定时器或晶体振荡器芯片搭建。
    • 独立时钟源。
  4. 通道选择: 在启动转换 (START 下降沿) 之前,必须通过 ADD A/B/C 设置好通道地址,并且 ALE 上升沿必须有效以锁存该地址。
  5. EOC 处理:
    • 查询法: 简单,但 CPU 在等待转换期间被占用。
    • 中断法: CPU 效率高,但需要单片机支持外部中断,并且中断服务程序需要快速读取数据。
    • 有些设计可以利用 EOC 信号作为 OE 的信号源(通过逻辑门),实现自动读取,但需注意时序是否满足。
  6. 模拟输入范围: 输入电压必须在 Vref(-) 和 Vref(+) 之间(通常是 0V 到 +5V)。超过此范围可能损坏芯片或导致结果错误。
  7. 输入阻抗: ADC0809 内部有开关电阻,动态输入阻抗中等。对于高输出阻抗的信号源,需要在外部加入电压跟随器(运算放大器)进行缓冲,避免信号失真。
  8. 电源去耦: 在 Vcc 和 GND 引脚附近一定要加 0.1µF 的陶瓷去耦电容,尽量靠近芯片引脚放置,以滤除电源噪声,这对 ADC 精度至关重要。可以考虑再加一个 10µF 的电解电容。
  9. 地线处理: 模拟地 (AGND) 和数字地 (DGND) 虽然在芯片内部是相连的,但在外部布线时,强烈建议将模拟部分(模拟输入、Vref)的地和数字部分(时钟、控制线、数据线)的地分开走线,最后在靠近 ADC0809 的电源引脚处用一点相连(星型接地)。避免数字噪声通过地线串扰到敏感的模拟部分。如果只有一个 GND 引脚,也要注意布线。
  10. 数字输入控制信号: START, ALE, OE, ADD A/B/C 是数字输入信号,可以直接由单片机 TTL/CMOS 电平的 I/O 口驱动。
  11. 模拟输入滤波: 在模拟输入端加入一个简单的 RC 低通滤波器 (例如 10kΩ + 0.01µF - 0.1µF),可以滤除高频噪声,提高信噪比(SNR)。
  12. 转换结果读取时机: 一定要在 EOC 变高 之后 才能将 OE 置高读取数据。读取完成后最好将 OE 置低(除非马上要再次读取)。

总结使用步骤:

  1. 连线: 连接电源、地、基准电压、时钟、模拟输入通道、通道地址线、控制线 (START/ALE/EOC/OE)、数据线。
  2. 初始化: 确保所有控制信号 (START/ALE/OE) 初始为低电平。
  3. 选择通道: 在 ADD A/B/C 上设置所需通道的二进制地址 (CBA)。
  4. 锁存地址 & 启动转换: 产生一个 ALE 的上升沿(锁存地址),紧接着(通常是同一个信号)产生 START 的下跳沿(开始转换)。
  5. 等待转换完成: 查询 EOC 引脚直到它变高(或者在中断方式下等待中断发生)。
  6. 读取数据:OE 置高,从数据线 (DB0-DB7) 上读取 8 位转换结果。
  7. 关闭输出 (可选):OE 置低。
  8. (如需再次转换): 重复步骤 3-7。

通过遵循上述步骤和注意事项,你应该能够成功地设计和实现基于 ADC0809 的模拟量采集系统。务必参考 ADC0809 的官方数据手册 (Datasheet) 以获取最精确的参数、时序图和电气特性。祝你项目顺利!

PROTUES仿真no model specified for adc0809,谁有ADC0809的model?

PROTUES仿真no model specified for adc0809,谁有ADC0809的model?

2025-05-09 13:24:13

adc0809是几位转换器 adc0809工作原理简述

ADC0809是一款8位逐次逼近型模数转换器(ADC),广泛应用于需要将模拟信号转换为数字信号的场合。它能够将0到5伏的模拟电压信号转换为8位二进制数字信号。

2024-10-21 09:32:19

adc0809输入电压范围 adc0809adc0808区别

ADC0809和ADC0808都是8位模数转换器(ADC),它们可以将模拟信号转换为数字信号。这两种芯片广泛应用于各种电子项目中,如数据采集、传

2024-10-21 09:30:58

ADC0809资料

ADC0808/ADC0809 8-Bit µP Compatible A/D Converters with 8-Channel Multiplexer

资料下载 安生且安心 2022-06-28 11:03:32

ADC0809的使用

一、前言介绍使用ADC0809对一个模拟电压进行转换转换后的电压使用数码管显示出来二、ADC0809的介绍1、ADC0809简介

资料下载 佚名 2021-11-10 13:06:00

利用FPGA控制ADC0809采样电压

利用FPGA控制ADC0809采样电压(长城电源技术(山西有限公司)-利用FPGA控制ADC0809采样电压,并通过数码管显示电压数值

资料下载 48674 2021-09-28 11:05:04

基于ADC0809芯片的简单采集系统设计

基于ADC0809芯片的简单采集系统设计(开关电源技术论文)-文档为基于ADC0809芯片的简单采集系统设计总结文档,是一份不错的参考资料,感兴趣的可以下载看看,,,,,,,,,,,,,

资料下载 佚名 2021-09-17 14:16:25

ADC0809驱动FPGA实现的verilog程序

ADC0809驱动FPGA实现的verilog程序(通讯电源技术杂志封面)-该文档为ADC0809驱动FPGA实现的verilog程序总结文档,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看……………

资料下载 李军 2021-08-31 18:33:38

ADC0809 的逻辑结构及引脚定义

ADC0809 的逻辑结构 ADC0809 是带有 8 位 A / D 转换器、 8 路模拟开关以及微处理机兼容的控制逻辑的 CMOS 组件。它是逐次逼近式 A / D 转换器,是目前应用比较

2023-09-11 14:44:06

ADC0809

ADC0809 - 8-Bit uP Compatible A/D Converters with 8-Channel Multiplexer - National Semiconductor

2022-11-04 17:22:44

ADC0809是什么?ADC0809是如何工作的

ADC0809是什么?ADC0809是如何工作的?如何去实现ADC0809的模数转换与显示呢?

2022-01-25 06:35:04

ADC0809模数转换器主要特性

ADC0809更详细的参数说明可以查看它的芯片手册(英文原版)链接:文章目录1、ADC0809模数转换器主要特性:2、ADC0809外部特征1、

2021-12-02 08:24:57

怎样去使用ADC0809

一、前言介绍使用ADC0809对一个模拟电压进行转换转换后的电压使用数码管显示出来二、ADC0809的介绍1、ADC0809简介

2021-11-17 07:12:38

ADC0809是什么?有何功能

项目中由于单片机开发板自带的ADC模块不够用,单片机自带的ADC模块是XPT2046,只有一个外部模拟输入信号通道,不能够满足我的需求,所以我打算采用ADC0

2021-07-20 06:30:02

adc0832是什么_adc0832和adc0809区别

本文首先阐述了adc0832的概念,其次阐述了adc0832的特点,最后介绍了adc0832和

2020-04-26 08:42:20

7天热门专题 换一换
相关标签