第8章

A/D转换与D/A转换

深入学习模拟信号与数字信号之间的转换原理,掌握ADC0809和DAC0832的应用技术

01

8.1 A/D转换概述

8.1.1 A/D转换的基本概念

A/D转换,即模拟-数字转换,是将连续变化的模拟信号转换为离散的数字信号的过程。在单片机应用系统中,A/D转换是连接模拟世界和数字世界的桥梁。

A/D转换过程

  1. 采样:按一定的时间间隔对模拟信号进行取值
  2. 保持:将采样得到的模拟信号值保持一段时间,以便进行量化
  3. 量化:将采样保持后的模拟信号转换为数字量的过程
  4. 编码:将量化后的数值用二进制代码表示

8.1.2 A/D转换器的性能指标

1. 分辨率

指A/D转换器能够分辨的最小模拟输入量变化,通常用位数表示。分辨率 = 满量程电压 / 2n(n为位数)

2. 转换精度

指A/D转换器输出的数字量与实际模拟输入量之间的接近程度,通常用绝对精度和相对精度表示。

3. 转换时间

指A/D转换器完成一次转换所需的时间,包括采样时间和转换时间。

4. 量程

指A/D转换器能够转换的模拟输入电压范围,通常分为单极性和双极性两种。

5. 线性度

指A/D转换器的输出与输入之间的线性关系程度,通常用非线性误差表示。

6. 输入阻抗

指A/D转换器输入端的等效阻抗,输入阻抗越高,对信号源的影响越小。

8.1.3 A/D转换器的分类

逐次逼近型

转换速度较快,精度较高,应用广泛

双积分型

抗干扰能力强,精度高,但转换速度较慢

并行比较型

转换速度最快,但成本高,功耗大

Σ-Δ型

分辨率高,抗干扰能力强,适用于高精度测量

8.1.4 A/D转换器的应用场景

  • 数据采集系统:将各种传感器信号转换为数字信号
  • 工业自动化控制系统:实时采集温度、压力等参数
  • 智能仪器仪表:实现高精度测量和显示
  • 医疗电子设备:采集生理信号
  • 通信设备:信号处理和调制解调
  • 多媒体设备:音频和视频信号处理
02

8.2 ADC0809结构与引脚

8.2.1 ADC0809概述

ADC0809是美国国家半导体公司生产的8位逐次逼近型A/D转换器,具有8个模拟量输入通道,可在程序控制下对任意通道进行A/D转换。

主要特点

  • 8路模拟输入通道,通道地址由3位地址输入信号决定
  • 分辨率为8位
  • 转换时间约为100μs(时钟频率为640kHz时)
  • 模拟输入电压范围为0~5V
  • 无需外部零点和满量程调整
  • 功耗低,约15mW
  • 可与大多数微处理器直接接口

8.2.2 ADC0809内部结构

1. 8通道多路模拟开关

可从8路模拟输入信号中选择一路进行A/D转换,由地址锁存与译码电路控制。

2. 地址锁存与译码电路

锁存3位地址信号,并译码产生通道选择信号,选中相应的模拟输入通道。

3. 比较器

将输入的模拟信号与D/A转换器输出的反馈信号进行比较,输出比较结果。

4. 逐次逼近寄存器(SAR)

在控制电路的作用下,逐次逼近地产生比较所需的数字量。

5. D/A转换器

将SAR中的数字量转换为模拟电压,作为比较器的参考电压。

6. 三态输出锁存器

锁存A/D转换的结果,可直接与微处理器的数据总线相连。

8.2.3 ADC0809引脚功能

引脚名称 功能描述
IN0~IN78路模拟量输入端,输入电压范围为0~5V
ADDA、ADDB、ADDC通道地址选择输入端,用于选择8路模拟输入中的一路
ALE地址锁存允许信号,上升沿将地址信号锁存
START转换启动信号,上升沿复位,下降沿启动转换
EOC转换结束信号,高电平表示转换结束
OE输出允许信号,高电平有效,打开三态门输出
CLOCK时钟输入端,典型频率为640kHz
D0~D78位数字量输出端,D0为最低位,D7为最高位
VREF(+)、VREF(-)参考电压输入端,VREF(+)接+5V,VREF(-)接地
VCC电源输入端,接+5V
GND接地端

8.2.4 ADC0809工作时序

  1. 通道选择:通过ADDA~ADDC输入通道地址,在ALE信号的上升沿将地址锁存
  2. 启动转换:在START信号的下降沿启动A/D转换
  3. 转换过程:A/D转换器进行逐次逼近转换,期间EOC信号为低电平
  4. 转换结束:转换完成后,EOC信号变为高电平
  5. 读取数据:CPU检测到EOC变高后,输出OE信号读取转换结果
03

8.3 D/A转换概述

8.3.1 D/A转换的基本概念

D/A转换,即数字-模拟转换,是将离散的数字信号转换为连续变化的模拟信号的过程。在单片机应用系统中,D/A转换器常用于将数字控制系统的输出转换为模拟信号,驱动执行机构。

工作原理

基于权电阻网络或T型电阻网络,将数字量的每一位按照其权值转换为相应的模拟电流或电压,然后通过运算放大器求和并转换为电压输出。

8.3.2 D/A转换器的性能指标

1. 分辨率

指D/A转换器能够分辨的最小输出模拟量变化,分辨率 = 满量程输出 / 2n(n为位数)

2. 转换精度

指D/A转换器输出的模拟量与理论值之间的接近程度,取决于参考电压和电阻网络的精度。

3. 建立时间

指D/A转换器从输入数字量变化到输出模拟量达到稳定值所需的时间。

4. 线性度

指D/A转换器的输出与输入之间的线性关系程度,非线性误差越小,线性度越好。

5. 温度系数

指D/A转换器的性能随温度变化的特性。

6. 输出范围

常见的有0~5V、0~10V、-5V~+5V、-10V~+10V等。

8.3.3 D/A转换器的分类

  • 权电阻网络D/A转换器:结构简单,但精度较低
  • T型电阻网络D/A转换器:使用的电阻种类少,精度较高
  • 倒T型电阻网络D/A转换器:转换速度快,动态性能好,应用最广泛
  • 权电流型D/A转换器:采用恒流源,转换精度高,温度稳定性好

8.3.4 D/A转换器的应用场景

  • 波形发生器:产生正弦波、方波、三角波等
  • 数控电源:输出可编程的电压或电流
  • 数字音频系统:将数字音频信号转换为模拟音频信号
  • 自动控制系统:驱动执行机构
  • 仪器仪表:产生标准信号源
  • 通信设备:调制解调信号
04

8.4 DAC0832结构与引脚

8.4.1 DAC0832概述

DAC0832是美国国家半导体公司生产的8位D/A转换器,具有双缓冲输入寄存器,可以方便地实现多通道D/A转换的同步输出。

主要特点

  • 8位分辨率,电流输出型
  • 具有双缓冲、单缓冲和直通三种工作方式
  • 转换时间约为1μs
  • 线性误差为±0.2%FSR(满量程)
  • 功耗低,约20mW
  • 可与大多数微处理器直接接口
  • 逻辑电平输入与TTL兼容

8.4.2 DAC0832内部结构

1. 8位输入寄存器

用于暂存微处理器送来的数字量,由ILE、/CS、/WR1控制。

2. 8位DAC寄存器

用于暂存输入寄存器中的数据,由/XFER、/WR2控制。

3. 8位D/A转换电路

由倒T型电阻网络和电子开关组成,将数字量转换为模拟电流输出。

4. 控制逻辑电路

控制两个寄存器的锁存和数据传输,实现三种工作方式。

8.4.3 DAC0832引脚功能

引脚名称 功能描述
D0~D78位数字量输入端
ILE输入锁存允许信号,高电平有效
/CS片选信号,低电平有效
/WR1写信号1,低电平有效,写入输入寄存器
/XFER数据传输控制信号,低电平有效
/WR2写信号2,低电平有效,写入DAC寄存器
Iout1模拟电流输出端1,全1时最大,全0时最小
Iout2模拟电流输出端2,Iout1 + Iout2 = 常数
Rfb反馈电阻引出端,内部已接有反馈电阻
Vref参考电压输入端,范围为-10V~+10V
Vcc电源输入端,范围为+5V~+15V
AGND/DGND模拟地/数字地

8.4.4 DAC0832工作方式

1. 双缓冲方式

两个寄存器都处于受控锁存状态,需要两步操作完成一次转换。适用于多路D/A转换同步输出。

2. 单缓冲方式

一个寄存器直通,另一个受控锁存,一步操作完成转换。适用于一般D/A转换应用。

3. 直通方式

两个寄存器都直通,数字量直接进入转换器。适用于连续反馈控制回路。

8.4.5 DAC0832应用电路

  • 单极性输出电路:输出电压范围为0~Vref或-Vref~0
  • 双极性输出电路:输出电压范围为-Vref~+Vref
  • 多路D/A转换同步输出电路:使用多个DAC0832实现多路模拟信号的同步输出
05

8.5 应用案例

8.5.1 基于ADC0809的温度采集系统

系统组成

  • 温度传感器:将温度转换为电压信号
  • A/D转换器:ADC0809,将模拟信号转换为数字信号
  • 单片机:AT89C51,控制ADC0809并处理数据
  • 显示模块:LCD1602,显示温度值

程序设计

; ADC0809温度采集程序 ADC_DATA EQU P1 ; 数据口 ADC_ADDR EQU P2.0 ; 通道选择 ADC_ALE EQU P3.0 ; 地址锁存允许 ADC_START EQU P3.1 ; 启动转换 ADC_EOC EQU P3.2 ; 转换结束信号 ADC_OE EQU P3.3 ; 输出允许 READ_ADC: MOV ADC_ADDR, #0 ; 选择通道0 SETB ADC_ALE ; 锁存地址 CLR ADC_ALE SETB ADC_START ; 启动转换 CLR ADC_START WAIT_EOC: JB ADC_EOC, WAIT_EOC ; 等待转换完成 SETB ADC_OE ; 允许输出 MOV A, ADC_DATA ; 读取转换结果 CLR ADC_OE ; 禁止输出 RET

8.5.2 基于DAC0832的波形发生器

系统组成

  • D/A转换器:DAC0832,将数字信号转换为模拟信号
  • 单片机:AT89C51,产生波形数据
  • 运算放大器:将电流输出转换为电压输出
  • 按键模块:选择波形类型和频率

程序设计

; DAC0832波形输出程序 DAC_DATA EQU P1 ; 数据口 DAC_CS EQU P2.0 ; 片选信号 DAC_WR1 EQU P2.1 ; 写信号1 DAC_XFER EQU P2.2 ; 数据传输控制 DAC_WR2 EQU P2.3 ; 写信号2 OUT_DAC: MOV DAC_DATA, A ; 输出数据到DAC CLR DAC_CS ; 选中DAC0832 CLR DAC_WR1 ; 写入输入寄存器 SETB DAC_WR1 SETB DAC_CS CLR DAC_XFER ; 传输到DAC寄存器 CLR DAC_WR2 SETB DAC_WR2 SETB DAC_XFER RET

8.5.3 基于ADC0809和DAC0832的数据采集与控制系统

系统组成

  • 传感器模块:温度、压力、流量等多种传感器
  • A/D转换器:ADC0809,将模拟信号转换为数字信号
  • 单片机:AT89C51,控制ADC0809和DAC0832并处理数据
  • D/A转换器:DAC0832,将控制信号转换为模拟信号
  • 执行机构:根据DAC0832输出执行控制动作
  • 显示模块:LCD1602,显示数据和系统状态

程序设计

; 数据采集与控制系统程序 ; 使用ADC0809采集多路模拟信号,使用DAC0832输出控制信号 ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV SP, #60H LOOP: ACALL READ_ADC0 ; 采集通道0 MOV DATA0, A ACALL READ_ADC1 ; 采集通道1 MOV DATA1, A ACALL PROCESS ; 处理数据 ACALL OUT_DAC ; 输出控制信号 SJMP LOOP READ_ADC0: MOV P2, #00H SETB P3.0 CLR P3.0 SETB P3.1 CLR P3.1 WAIT0: JB P3.2, WAIT0 SETB P3.3 MOV A, P1 CLR P3.3 RET
06

8.6 本章总结

核心要点

  • 掌握A/D转换的基本概念和性能指标
  • 理解ADC0809的内部结构和引脚功能
  • 掌握D/A转换的基本概念和性能指标
  • 理解DAC0832的内部结构和工作方式
  • 能够编写ADC0809和DAC0832的应用程序

学习建议

  • 通过实验加深对A/D和D/A转换原理的理解
  • 多练习ADC0809和DAC0832的接口电路设计
  • 结合Proteus仿真验证程序功能
  • 尝试实现温度采集、波形发生器等实际项目
  • 注意模拟地和数字地的区分,减少干扰

ADC0809与DAC0832对比

比较项目 ADC0809 DAC0832
功能模拟-数字转换数字-模拟转换
位数8位8位
分辨率1/2561/256
输入/输出8路模拟输入,8位数字输出8位数字输入,电流输出
转换时间约100μs约1μs
工作方式逐次逼近型倒T型电阻网络
输出形式并行输出电流输出,需外接运放转换为电压
典型应用数据采集系统波形发生器、控制系统

实际应用中的注意事项

ADC0809使用注意事项
  • 参考电压的稳定性直接影响转换精度
  • 注意地址信号与ALE信号的配合
  • 转换启动信号START的上升沿复位,下降沿启动转换
  • 转换结束信号EOC可作为中断请求信号
  • 输入信号的范围应在0~5V之间
DAC0832使用注意事项
  • 输出是电流信号,需外接运算放大器转换为电压
  • 双缓冲方式可实现多路同步输出
  • 注意控制信号的时序配合
  • 参考电压的精度影响输出精度
  • 数字地和模拟地应正确连接
07

8.7 课后练习题

1 填空题

1. A/D转换的四个步骤是____、____、____和____。

2. ADC0809是____位逐次逼近型A/D转换器,具有____路模拟输入通道。

3. ADC0809的分辨率计算公式为____,当参考电压为5V时,分辨率约为____mV。

4. ADC0809的START信号____沿复位,____沿启动转换。

5. D/A转换的基本原理是基于____网络或____网络。

6. DAC0832是____位电流输出型D/A转换器,具有____、____和____三种工作方式。

7. DAC0832的参考电压输入范围为____V到____V。

8. DAC0832的双缓冲方式适用于____场合。

9. ADC0809的EOC引脚为____电平时表示转换结束。

10. DAC0832的输出是____信号,需外接____转换为电压信号。

2 单选题

1. ADC0809的分辨率是多少位?

A. 4位   B. 8位   C. 10位   D. 12位

2. 以下哪个不是A/D转换的步骤?

A. 采样   B. 保持   C. 放大   D. 量化

3. ADC0809的模拟输入电压范围是多少?

A. 0~3V   B. 0~5V   C. 0~10V   D. -5V~+5V

4. ADC0809的EOC引脚的作用是什么?

A. 地址锁存允许   B. 转换启动   C. 转换结束   D. 输出允许

5. DAC0832的输出是什么类型的信号?

A. 电压信号   B. 电流信号   C. 数字信号   D. 脉冲信号

6. DAC0832的双缓冲工作方式适用于什么场合?

A. 单通道D/A转换   B. 多路D/A转换同步输出   C. 高速D/A转换   D. 低功耗D/A转换

7. 以下哪种A/D转换器转换速度最快?

A. 逐次逼近型   B. 双积分型   C. 并行比较型   D. Σ-Δ型

8. DAC0832的参考电压输入范围是?

A. 0~5V   B. 0~10V   C. -10V~+10V   D. -5V~+5V

9. ADC0809的转换时间约为?

A. 1μs   B. 10μs   C. 100μs   D. 1ms

10. 以下哪种D/A转换器应用最广泛?

A. 权电阻网络   B. T型电阻网络   C. 倒T型电阻网络   D. 权电流型

3 编程题

1. 编写程序,使用ADC0809采集通道0的模拟信号,将转换结果存入内部RAM的30H单元。

2. 编写程序,使用DAC0832以单缓冲方式输出数据,将累加器A中的数据转换为模拟信号输出。

3. 编写程序,使用DAC0832产生锯齿波信号,输出到示波器观察波形。

4. 编写程序,依次采集ADC0809的8路模拟输入信号,将结果存入30H~37H单元。

5. 编写程序,使用DAC0832产生方波信号,方波高电平对应数据FFH,低电平对应数据00H。