第10章 单片机AD及DA转换接口
第十章 单片机与AD、DA转换器的接口

§10-1 A/D转换器及其接口 转换器及其接口 §10-2 D/A转换器及其接口 转换器及其接口
§10-1 A/D转换器及其接口 转换器及其接口
一、A/D转换器的分类与性能指标 转换器的分类与性能指标
A/D转换器种类很多,按工作原理分为: A/D转换器种类很多,按工作原理分为: 转换器种类很多 逐位比较型:转换速度适中,转换精度从高到低都有,是集成A/D转换器中最普通的形式; 逐位比较型:转换速度适中,转换精度从高到低都有,是集成A/D转换器中最普通的形式; A/D转换器中最普通的形式 并行比较型:转换速度快,但精度不高; 并行比较型:转换速度快,但精度不高; 双积分型:抗干扰能力强, 精度较高,但转换速度慢; 双积分型:抗干扰能力强,精度较高,但转换速度慢; 电压频率型(V/F) 用于将模拟量转换为脉冲进行测量,精度高,成本低; 电压频率型(V/F):用于将模拟量转换为脉冲进行测量,精度高,成本低; (V/F): 计数比较型:有中高精度芯片,但转换速度慢。 计数比较型:有中高精度芯片,但转换速度慢。
第十章 单片机与A/D、D/A转换器的接口 单片机与A/D D/A转换器的接口 A/D、
教学目的:本章主要学习MCS-51单片机与 单片机与A/D、D/A转换器的接口。其中 转换器的接口。 ●教学目的:本章主要学习 单片机与 、 转换器的接口 A/D转换器选用了具有多通道的 位AD转换器 转换器选用了具有多通道的8位 转换器 转换器ADC0809,D/A转换器选用了典 转换器选用了具有多通道的 , 转换器选用了典 型的DAC0832。通过本章的学习,同学们应能掌握单片机与这些接口芯片的 型的 。通过本章的学习, 连线方法,编程技巧,以及这两种典型芯片的特点和初步应用。 连线方法,编程技巧,以及这两种典型芯片的特点和初步应用。
单片机第10章 AD-DA转换与单片机接口技术

10 11 30 29
U4
D0 D1 D2
3 4 7 8 13 14 17 18
D0 D1 D2 D3 D4 D5 D6 D7
第十章 A/D、D/A转换与单片机接口技术
10.0 你知道吗 10.1 A/D转换器及其与单片机的接口 10.2 D/A转换器及与单片机的接口
你知道吗 在自动控制领域中,通常用单片机进行实时控制和数据处理,我们知道,被 测和被控参数常常是一些连续变化的物理量即模拟量,如温度、速度、电压、 电流、压力等,而单片机只能加工和处理数字量,因此在单片机应用系统中处 理模拟量信号时,就需要进行模拟量与数字量之间的转换,即A/D和D/A转换。
二、双积分式A/D转换原理
双积分A/D转换采用间接测量原理,即将被测电压值VX转换成时间常数,通过测量 时间常数得到未知电压值。其原理如下图所示。它由电子开关、积分器、比较 器、计数器、逻辑控制门等部件组成。
积分器
由于双积分的二次积分时间比较长,因此
Vx VR
比较器
A/D转换速度慢,但精度高。
计数器 输出
五、ADC0809与单片机的接口电路
R1
D1
R2
D2
R3
D3
R4
D4
D5
R5
R6
D6
R7
D7
R8
D8
U1
P10 P11
P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8
P10 P11 P12 P13 P14 P15 P16 P17
P12
13 12
INT1 INT0
ADD-A﹑ADD-B﹑ADD-C:3根地址线。ADD-A为低位地址,ADD-C为高位地址, 用于选择8路模拟量,其地址状态与所选模拟量的对应关系见表10.1。 D0~D7:8位数字量输出端。 ALE:地址锁存允许信号,ALE为高电平时,将ADD-A﹑ADD-B﹑ADD-C的地址 状态送入地址锁存器中。
ADC及DAC接口剖析

8路模拟 开关
C
地址
B A
锁存
AD转换网络
三 D7
态 D6
输
D5
出
D4
缓
D3
冲
D2
器
D1
D0
OE
GND
VCC
REF+ REF-
ALE
接电源 接地
✓启动信号START与转换结束信号EOC的时序关系?
✓单片机如何判断是否转换完毕?
10.1 单片机的ADC接口设计
电路连接
口地址 0x7ff8
10.1 单片机的ADC接口设计
void DAC0832( void ) { for(i=0;i<255;i++)
{XBYTE[0xfeff] = i; delay1ms( );} for(i=255;i>0;i--) {XBYTE[0xfeff] = i; delay1ms( );} }
10.2 单片机的DAC接口设计
➢DAC0832的双缓冲工作方式
✓ILE为高,/CS和WR1为低,使得第一个锁存器直通;
✓/Xfer和/WR2为低,使得第二个锁存器直通;P1=0x00;Vout=?
P1 = 0x01
;Vout=?
P1 = 0x02
;Vout=?
P1 = 0x7F
;Vout=?
P1 = 0xFF
;Vout=?
10.2 单片机的DAC接口设计
➢DAC0832的单缓冲工作方式
delay1ms( );
//软件延时
return XBYTE[0x7ff8]; //读取转换结果
}
✓查询法: uchar adc0809( void )
第10章单片机AD和DA转换接口

;X、Y转换数据同步输出
P0 ALE
8031 INT1 WR P2.0 RD
÷2
1 ≥1
1 ≥1
1
74LS373 G
A0~A7 A0 A1 A2
CLK D0~D7
EOC
A
B
C Vref(+ ) Vref(- )
ADC0809
ST
ALE
OE
+5 V GND
IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7
课程:单片机技术 教材:单片机基础
CS WR1 AG ND
DI3 DI2 DI1 DI0 Vref Rfb DG ND
1
20
2
19
3
18
4
17
5 DAC 16 6 0832 15
7
14
8
13
9
12
10
11
VCC IL E WR2 XFE R DI4 DI5 DI6 DI7 Io ut 2 Io ut 1
Iout2 + Iout1 -
地 址 译 码 输 出 ILE CS
P 0.7 ~P 0.0 DI0 DI1 DI2 DI3 DI4 DI5 DI6 DI7
VCC Vref Rfb
Io ut 1 Io ut 2
WR
DA C083 2
WR1
WR2 XFER
10 k
- +
10 k
+ 10 V - +
- 10 V 10 k
课程:单片机技术 教材:单片机基础
课程:单片机技术 教材:单片机基础
2)、 DAC0832内部结构:
DI0
DI7 IL E
CS WR1 WR2 XFE R
单片机: AD、DA转换接口技术

Single-Chip microcomputer
A/D、D/A转换接口技术
// 外部中断服务程序,设置输出信号状态标识,每按下一次键,状态标志加1 void Int0 () interrupt 1 { k++; t= 0; if(k = = 4) k=0; return; }
Single-Chip microcomputer
Single-Chip microcomputer
A/D、D/A转换接口技术
else if(k = = 3) // 发送三角波信号 { P1 = 0x08; // 三角波指示灯亮 if( t = = 0) i=0; // 设置上升标志 else if ( t = = 0xff) i =1; if ( i= =0) // 数据递增 { P3_6 = 1; P0 = t++; P3_6 = 0; Delay(1); } if(i= =1) { P3_6 = 1; P0 = t--; P3_6 = 0; Delay(1); } } } } // 数据递减
A/D、D/A转换接口技术
1 A/D、D/A转换
单片机应用系统有很多场合是用于信号的检测和对外部设计进 行控制,在很多时候是需要对模拟量进行采集,或者处理,这 些模拟量涉及温度、速度、压力、电流、电压等量。由于单片 机以及计算机的强大计算处理能力,可以将这些模拟量采集到 单片机或者计算机中进行处理。
任务分析及方案的制定
信号的产生可以通过D/A转换器DAC0832来实现,通过单片机向DAC0832 发送不同的数据,就可以使DAC0832输出相对应的模拟量信号,从而得到 期望得到的波形。 方波信号的产生 锯齿波的产生 三角波的产生
Single-Chip microcomputer
第10章单片机AD及DA转换接口

2. 放大器
传感器得到的电压或电流信号往往幅度较小,难以直 接进行A/D转换,需要使用放大器对模拟信号进行放大处 理。
放大器的种类很多,但在模拟输入通道中使用的是一 种具有高放大倍数并带深度负反馈的直接耦合放大器,由 于它可以对输入信号进行多种数学运算(例如比例、加、 减、积分和微分等),所以称为运算放大器。运算放大器 具有输入阻抗高,增益大,可靠性高,价格低和使用方便 等特点。现在已有各种专用或通用的运算放大器可供选择。
模拟输入通道的工作从采集信号开始。由于传感器采集 到的模拟信号幅值通常很小,而且连续变化的信号容易受到 干扰,因此,要对传感器采集到的原始信号进行放大、采样、 保持、滤波等处理后,才能送给A/D转换器。这一系列的处 理过程构成了模拟输入通道,如下图。
第10章单片机AD及DA转换接口
1. 传感器
传感器的主要功能是采集信号,也兼有信号转换功能,即把采集到的 非电信号转换为电信号(电压或电流),以便于后续处理。传感器的种类繁 多,常用的传感器有如下几种: ① 温度传感器: 用于将温度转换为电信号。 ② 光电传感器:利用光电效应将光信号转换为电信号。 ③ 湿度传感器: 常用的湿度传感器有毛发湿度计、干湿球湿度计、金属氧化 物湿敏元件等。 ④ 流量传感器: 用于测量液体和气体的流量。常用的流量传感器有速度式流 量计和容积式流量计等。 ⑤ 压力传感器: 用于大气压力(气压)测量和容器壁压力测量等。 ⑥ 机械量传感器: 常用的机械量有拉力、压力、位移、速度、加速度、扭矩 及荷重等。常见的机械量传感器有电阻应变片、力传感器、荷重传感器、 位移传感器和转速传感器等。 ⑦ 成分分析传感器: 用于对混合气体或混合物的成分进行自动分析。 ⑧ pH值传感器: 用于测量水溶液的酸碱度。
单片机 DA&AD接口设计

20 PIN
DIP封装 DIP封装
DAC0832 内部结构框图
D0—D7: D0 D7:8位数字量输入端 D7 /CS: 片选端, /CS: 片选端,低有效 ILE: 数据锁存允许, ILE: 数据锁存允许,高有效 /WR1: 写控制信号1, 1,低有效 /WR1: 写控制信号1,低有效 /WR2: 写控制信号2, 2,低有效 /WR2: 写控制信号2,低有效 /XFER: /XFER:数据传送控制信号 Iout1:电流输出端1 Iout1:电流输出端1 Iout2:电流输出端2 Iout2:电流输出端2 Rfb: Rfb: 内置反馈电阻端 Vref: 参考电压源, 10~ Vref: 参考电压源,-10~+10V DGND: DGND: 数字量地 AGND: AGND: 模拟量地 +5~+15V单电源供电端 Vcc: +5~+15V单电源供电端
双积分式A/D转换器结构与工作原理 双积分式A/D转换器结构与工作原理 A/D 电路对未知输入电压先进行固定时间T的积分( 电路对未知输入电压先进行固定时间T的积分(充 ),然后对已知标准电压进行反向积分 放电) 然后对已知标准电压进行反向积分( 电),然后对已知标准电压进行反向积分(放电), 直至放电为0 放电所花时间T 正比于输入电压) 直至放电为0,放电所花时间T′(正比于输入电压)
12MHz
GND
AGND
DGND
接 示 波 器
DAC 0832 常 见 的 几 种 用 法
DAC 0832 常 见 的 几 种 用 法
《单片机原理与应用》AD和DA转换实验

《单片机原理与应用》AD和DA转换实验一、实验目的1、学习AD转换芯片PCF8591的基本共组原理。
2、掌握PCF8591的编程方法二、实验说明PCF8591是一个单片集成、单独供电、低功耗、8-bit CMOS数据获取器件。
PCF8591具有4个模拟输入、1个模拟输出和1个串行I2C总线接口。
PCF8591的3个地址引脚A0, A1和A2可用于硬件地址编程,允许在同个I2C总线上接入8个PCF8591器件,而无需额外的硬件。
在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输。
1、地址寄存器I2C总线系统中的每一片PCF8591通过发送有效地址到该器件来激活,该地址包括固定部分和可编程部分。
可编程部分必须根据地址引脚A0. A1和A2来设置。
在I2C总线协议中地址必须是起始条件作为第一个字节发送。
地址字节的最后一位是用于设置以后数据传输方向的读写位。
如图8-1所示。
图8-1 地址寄存器2 控制字寄存器发送到PCF8591的第二个字节将被存储在控制寄存器,用于控制器件功能,控制寄存器的高半字节用于容许模拟输出,和将模拟输入编程为单端或差分输入。
低半字节选择一个由高半字节定义的模拟输入通道。
如果自动增量(auto-increment)标志置1,每次AD转换后通道号将自动增加。
如果自动增量(auto-increment)模式是使用内部振荡器的应用中所需要的,那么控制字节中模拟输出容许标志应置1.这要求内部振荡器持续运行,因此要防止振荡器启动延时的转换错误结果。
模拟输出容许标志可以在其他时候复位以减少静态功耗。
选择一个不存在的输入通道将导致分配最高可用的通道号。
所以,如果自动增量(auto-increment)被置1,下一个被选择的通道将总是通道0.两个半字节的最高有效位(即第7位和第3位)是留给未来的功能,必须设置为逻辑0.控制寄存器的所有位在上电复位后被复位为逻辑0.DA转换器和振荡器在节能时被禁止。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程:单片机技术
教材:单片机基础
10.3
10.3.1
D/A转换器接口
D/A转换芯片
1、概述
D/A转换器输入的是数字量,经转换后输出的是模拟量。 D/A转换器按输出形式可分为: (1)、电压输出形式 输入:二进制数或BCD码数
输出:电压
(2)、电流输出形式 输入:二进制数或BCD码数
输出:电流
课程:单片机技术
DAC 0 83 2
Iout2 Iout1 Rfb
+ -
电平输出
课程:单片机技术
教材:单片机基础
1)、各引脚信号说明如下:
(1)、DI7~DI0:转换数据输入; (2)、/CS:片选信号(输入),低电平有效; (3)、ILE:数据锁存允许信号(输入),高电平有效; (4)、/WR1:第1写信号(输入),低电平有效; (5)、/XFER:数据传送控制信号(输入),低电平有效; (6)、/WR2:第2写信号(输入),低电平有效; (7)、 Iout1:电流输出1; (8)、 Iout2:电流输出2; (9)、 Rfb:反馈电阻端; (10)、Vref:基准电压,其电压范围是-10 V~+10 V;
课程:单片机技术
教材:单片机基础
10.2.1
8位A/D转换器芯片与80C51接口
ADC 0809是典型的8位8通道逐次逼近式A/D转换器,CMOS工艺, 其转换时间为100μ S左右。 1、ADC 0809的内部逻辑结构
ST CLK EOC IN0 8路 模拟量 开关 3 地址 锁存 与译码 8位 A/D 转换器 8 三态 输出 锁存器 D0
课程:单片机技术
教材:单片机基础
课程:单片机技术
教材:单片机基础
for ( i=0 ; i<8 ;i++ ) /* 处理8通道 */ { *ad_adr=0 ; /* 启动转换 */ i=i ; /* 延时等待EOC变低 */ i=i ; while (ad_busy = =0 ) ; /* 查询等待转换结束 */ x[i ]= * ad_adr ; /* 存转换结果 */ ad_adr ++ ; /* 下一通道 */ } } void main ( void ) { static uchar idata ad [ 10 ] ; while(1) { ad0809 ( ad ) ; /* 采样AD0809通道的值 */ } }
/* 设置AD0809的通道0地址 */
sbit ad_busy =P3^3 ; /* 即EOC状态 */ void ad0809 ( uchar idata *x ) /* 采样结果放指针中的A/D采集函数 */ { uchar i ;
uchar xdata *ad_adr ;
ad_adr= & IN0 ;
课程:单片机技术
教材:单片机基础
3、MCS-51单片机与ADC 0809接口
P0 74LS373 ALE ÷ 2 8031 INT1 WR P2.0 ≥1 RD 1 ≥1 1 CLK D0~D7 EOC A B C Vref(+) Vref(-) G A0 A1 A2 A0~A7
+5 V GND IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7
课程:单片机技术
教材:单片机基础
第10章 单片机A/D及D/A转换器接口
教学基本要求: (1)、熟悉DAC0832的内部结构及工作方式; (2)、掌握单片机与DAC0832的接口原理; (3)、熟悉ADC0809的内部结构及功能; (4)、掌握单片机与ADC0809的接口原理; 教学重点: (1)、单片机与DAC0832的接口原理; (2)、单片机与ADC0809的接口原理; 教学难点: (1)、单片机与DAC0832接口的程序设计; (2)、单片机与ADC0809接口的程序设计;
EOC=0,正在进行转换;EOC=1,转换结束。该状态信号既可
作为查询的状态标志,又可以作为中断请求信号使用;
课程:单片机技术
教材:单片机基础
(9)、VCC:+5 V电源;
(10)、Vref:参考电源。 参考电压用来与输入的模拟信号进行比较,作为逐次逼近的 基准。其典型值为+5 V(Vref (+) =+5 V,Vref(-) =0 V) 。
课程:单片机技术
教材:单片机基础
课程:单片机技术
教材:单片机基础
void {
INTT1( )
interrupt 2
ad[k]= * ad_adr ; ad_adr ++ ; k ++; }
/* 下一通道 */
课程:单片机技术
教材:单片机基础
用查询法实现:
ORG LJMP ORG MAIN: MOV MOV MOV LOOP: MOVX LOOPP: JB MOVX MOVX INC INC DJNZ LJMP END 0000H MAIN 0100H R0, R2, DPTR, @DPTR, P3.3, A, @R0, DPTR R0 R2, MAIN
(3)、中断方式
4、应用举例 课程:单片机技术 教材:单片机基础 设计一个8路模拟量输入的巡回检测系统,采样数据依次存放在片外RAM 0A0H 0A7H单元中,ADC 0809的8路通道IN0~IN7的地址分别为FEF8H~FEFFH,其数据 样的初始化程序和中断服务程序如下: 初始化程序 ORG 0000H LJMP MAIN ORG 0013H LJMP ADC ORG 0100H MAIN:MOV R0, #0A0H; MOV R2, #08H; SETB IT1; 边沿触发方式 SETB EA; SETB EX1; MOV DPTR,#0FEF8H; LOOP: MOVX @DPTR,A; LCALL DELY1MS DJNZ R2, LOOP LJMP MAIN
课程:单片机技术
教材:单片机基础
使用时,应根据分辨率的需要来选定转换器的位数。DAC常可
分为8位、10位、12位三种。 (2)、建立时间 建立时间是描述D/A转换速度快慢的一个参数,指从输入数字 量变化到输出达到终值误差±(1/2)LSB(最低有效位)时所需
的时间。通常以建立时间来表示转换速度。
课程:单片机技术
教材:单片机基础
3、典型D/A转换器芯片DAC 0832
DAC0832是一个8位D/A转换器。单电源供电,从+5 V~+15 V均 可正常工作。基准电压的范围为±10 V;电流建立时间为1 μ s; CMOS工艺,低功耗20 mW。 DAC0832转换器芯片为20引脚,双列直插式(DIP)封装。
CS WR1 AGND DI3 DI2 DI1 DI0 Vref Rfb DGND 1 2 3 4 5 6 7 8 9 10 20 19 18 17 16 15 14 13 12 11 VCC ILE WR2 XFER DI4 DI5 DI6 DI7 Iou t2 Iou t1
C B A 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 选择的通道 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7
课程:单片机技术
教材:单片机基础
(3)、ALE:地址锁存允许信号;
在对应ALE上跳沿,A、B、C地址状态送入地址锁存器中; (4)、START:转换启动信号; START上跳沿时,所有内部寄存器清0;START下跳沿时,开 始进行A/D转换;在A/D转换期间,START应保持低电平; (5)、D7~D0:数据输出线; (6)、OE:输出允许信号; 用于控制三态输出锁存器向单片机输出转换得到的数据。 OE=0,输出数据线呈高电阻;OE=1,输出转换得到的数据; (7)、CLK:时钟信号,通常使用频率为500kHz的时钟信号; (8)、EOC:转换结束状态信号。
ADC0809 1 ST ALE OE
课程:单片机技术
教材:单片机基础
1)、8路模拟通道选择
假设没有用到的地址线为“1”,则8路通道IN0~IN7的地址分 别为FEF8H~FEFFH。 2)、转换数据的传送 数据传送的关键问题是如何确认A/D转换完成,因为只有确认 数据转换完成后,才能进行传送。 (1)、定时传送方式 (2)、查询方式
课程:单片机技术
教材:单片机基础
(1)、IN7~IN0:模拟量输入通道;
ADC0809对输入模拟量的要求主要有:信号单极性,电压范围 0~5 V,若信号过小还需进行放大。另外,在A/D转换过程中,
模拟量输入的值不应变化太快,因此,对变化速度快的模拟量,
在输入前应增加采样保持电路。 (2)、A、B、C:地址线; A为低位地址,C为高位地址,用于对模拟通道进行选择;
课程:单片机技术
教材:单片机基础
10.2
A/D 转换器接口
A/D转换器:实现模拟量→数字量的转换。
A/D转换器的一般分类:
(1)、计数式A/D转换器; (2)、双积分式A/D转换器; (3)、逐次逼近式A/D转换器; (4)、并行式A/D转换器。
目前最常用的是双积分式A/D转换器和逐次逼近式A/D转换器。
…
IN7 A B C ALE
D7 VC C GND
VR (-) VR (+)
OE
…
课程:单片机技术
教材:单片机基础
2、信号引脚
ADC 0809转换器芯片为28引脚,双列直插式(DIP)封装。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 IN3 IN4 ADC0809 IN5 IN6 IN7 START EOC D3 OE CLOCK VCC Vref(+) GND D1 IN2 IN1 IN0 ADDA ADDB ADDC ALE D7 D6 D5 D4 D0 Vref(-) D2 28 27 26 25 24 23 22 21 20 19 18 17 16 15