第 9 章 数/模及模/数转换器接口

51
9-1 D/A 转转转转转转转转 9-2 A/D 转转转转转转转转 9 9 第 第 第 第 / / 第第第 第第第 / / 第第第第第第 第第第第第第

description

单片机. 第 9 章 数/模及模/数转换器接口. 9-1 D/A 转换器接口及应用. 9-2 A/D 转换器接口及应用. 扩展 I/O 电路的功能:. 1 、速度协调; 2 、输出数据锁存; 3 、输入数据三态; 4 、数据转换: 模拟量→数字量:由 A/D 转换完成; 数字量→模拟量:由 D/A 转换完成。. 单片机和被控实体间的接口示意图. 举例 1 :温度测控系统. 举例 2 :速度测控系统. 60 K. 20 K. +5 V. +5 V. +5 V. GND. 10 K × 6. 220 K. 2.2 u. AT89C51. - PowerPoint PPT Presentation

Transcript of 第 9 章 数/模及模/数转换器接口

Page 1: 第 9 章 数/模及模/数转换器接口

9-1 D/A转换器接口及应用

9-2 A/D转换器接口及应用

第第 99 章 数章 数 // 模及模模及模 // 数转换器接口数转换器接口

Page 2: 第 9 章 数/模及模/数转换器接口

扩展 I/O 电路的功能:

1 、速度协调;2 、输出数据锁存;3 、输入数据三态;4 、数据转换: 模拟量→数字量:由 A/D 转换完成; 数字量→模拟量:由 D/A 转换完成。

Page 3: 第 9 章 数/模及模/数转换器接口

单片机和被控实体间的接口示意图

Page 4: 第 9 章 数/模及模/数转换器接口

举例 1 :温度测控系统

放大

A/ D单

机打印输出

光隔驱动

电热箱 温度传感器 模 数设定值

控制信号

电热丝

电源

双向可控硅

调节电压 控温

~

Page 5: 第 9 章 数/模及模/数转换器接口

举例 2 :速度测控系统

A/ D PI D D/ A =/ M

G

转速给定

P0 P1

纸长拨盘给定

转速反馈

纸长反馈

脉冲发生器

测量转速

电机可控硅触发器

单片机系统+ -

单片机控制系统原理框图

Page 6: 第 9 章 数/模及模/数转换器接口

举例 3 :红外线自动门控制系统原理图

BISS

0001

60K20K

103

2M

10K

10u

1M

1M

47K

103

47u

电压检测模块

电机温度检测 P3.3/INT1

手 动 / 自 动 切换

手动关按钮

P3.4

P3.0

2.2u

D

S

G红外传感器

+5VGND

3.3K

103

103

470u

+5V

330K

330K102

10n

VC

VDD

2OUT

2IN-

1IN+

1IN-

1OUT

220K

IB

RR1

A

V0

RC1

RC2

RR2

VSS

+5V

行程开关 2

行程开关 3

手动开按钮

光电隔离

电机正转继电器 J1

电机过热报警

转速检测模块

A/D 转换

蜂鸣报警

行 程 开 关4

行程开关 1

电压过高报警速度异常报警

速度变换继电器 J3

电机反转继电器 J2ADC

0809

P1.0

P1.3

P1.2

P1.1

P1.4

P1.5

P1.6

P2.0

P2.1

P2.3

P2.2

P3.2/INT0

P3.1

P0WRRDALEP1.7

10K×6

LED

AT89C51

VCC

Page 7: 第 9 章 数/模及模/数转换器接口

红外线传感器集成芯片 BISS0001 特点

( 1 )用 CMOS 工艺,功耗低。( 2 )具有独立的高输入阻抗运算放

大器,可与多种传感器匹配。( 3 )双向鉴幅器可有效抑制干扰信

号。( 4 )内设延时和封锁定时器,性能

稳定,调节范围宽。( 5 )内置参考电源。( 6 ) 工 作 电 压 范 围 宽 ( 3V ~

5V)。

BISS0001

1

2

3

4

5

6

7

8 9

10

11

12

13

14

15

16A

V0

RR1

RC1

RC2

RR2

Vss

VRF/RESET Vc

IB

VDD

2OUT

2IN-

1IN+

1IN-

1OUT

Page 8: 第 9 章 数/模及模/数转换器接口

9-19-1 D/AD/A 转换器接口及应用转换器接口及应用9-1-1 D/A 转换概述

一、 D/A( Digit to Analog )转换器: 为把数字量转换成模拟量,在 D/A转换芯片中要有解码网络:① 权电阻网络;②倒 T 型电阻网络。

Page 9: 第 9 章 数/模及模/数转换器接口

T 型电阻网络型 D/A 转换器:

D/A 转换器的原理: 把输入数字量中每位都按其权值分别转换成模拟量,并通过运算放大器求和相加。根据克希荷夫定律,如下关系成立:

I0=20 I1=21 I2=22 I3=23

Page 10: 第 9 章 数/模及模/数转换器接口

n 位数字量与模拟量的关系式:VO =—VREF×(数字码 / 2n )

(VREF —— 参考电压 )

二、 D/A 输出形式:① 电压;② 电流 运算放大器 电压。

注:因使用反相比例放大器来实现电流到电压的转换,所以输出模拟信号 (VO)的极性与参考电压 (VREF) 极性相反。

Page 11: 第 9 章 数/模及模/数转换器接口

三、注意区分 D/A 内部是否带有锁存器:

与 P1、 P2 接口:不需加锁存器,直接接口。 无锁存器 与 P0 接口:因 P0 的特殊功能,需加锁存器。D/A 内 如: DAC800、 AD7520、 AD7521 等。 有锁存器:最好与 P0 直接接口。 如: DAC0832、DAC1230 等。

Page 12: 第 9 章 数/模及模/数转换器接口

四、性能指标:1 、分辨率( Resolution )是指 D/A 转换器能分辨的

最小输出模拟增量,取决于输入数字量的二进制位数。 2 、建立时间( Establishing Time )是描述 D/A 转

换速度的快慢。3 、转换精度( Conversion Accuracy )指满量程时DAC 的实际模拟输出值和理论值的接近程度。

4 、偏移量误差( Offset Error )偏移量误差是指输入数字量为零时,输出模拟量对零的偏移值。

5 、线性度( Linearity )线性度是指 DAC 的实际转换特性曲线和理想直线之间的最大偏移差。

Page 13: 第 9 章 数/模及模/数转换器接口

主要技术指标:1 、分辨率( Resolution ): 对D/A 转换器输入量变化敏感程度进行描述,与输入数字量的位数有关。• 若数字量的位数为 n ,则分辨率为 2- n。• 数字量位数越多,分辨率就越高。• 应用时,应根据分辨率的需要选定转换器的位数。注: BCD 码输出的 A/D 转换器用位数表示分辨率。2 、建立时间( Establishing Time ):(转换速

度) 描述 D/A 转换速度的快慢。• 输出形式为电流的转换器比电压的建立时间短。• D/A 转换速度远高于 A/D 转换。3 、转换精度( Conversion Accuracy ): 指满量程时 DAC 的实际模拟输出值和理

论值的接近程度。

Page 14: 第 9 章 数/模及模/数转换器接口

一、内部结构:一、内部结构: DAC 0832DAC 0832 :: 8位双缓冲器结构的 D/A 转换器。

9-1-2 D/A 转换芯片DAC0832

DAC 0832DAC 0832 内部结构框图内部结构框图(请见(请见 P242P242图图9.39.3 ))

DI0 ~ 7 :转换数据输入( 8 位); CS :片选信号(输入);ILE :数据锁存允许信号(输入); XFER :数据传送控制信号(输入);WR1 :第一写信号(输入),与 ILE共同控制输入寄存器是数据直通方式还是 数据锁存方式;WR2 :第 2写信号(输入),与 XFER共同控制 DAC寄存器是数据直通方式还是 数据锁存方式;

8 位DAC

DAC寄存器

输入寄存器 -

+IOUT2

IOUT1

Rfb

VODI0 ~

7

AGND

ILE

CS

WR1

WR2

XFER

LE1LE2

LE1LE1(( LELE22 )) ==

00 :锁存;:锁存;11 :直通。:直通。

Page 15: 第 9 章 数/模及模/数转换器接口

DAC 的应用:  DAC 用作单极性电压输出;  DAC 用作双极性电压输出;  DAC 用作控制放大器。

Page 16: 第 9 章 数/模及模/数转换器接口

双极性输出电压与输入数字量的关系输入数字量 B

b7 b6 b5 b4 b3 b2 b1 b0

Vout (理想值)+VREF 时 -VREF 时

1 1 1 1 1 1 1 1 |VREF|-LSB -|VREF|+LSB

┆ ┆ ┆1 1 0 0 0 0 0 0 |VREF|/2 -|VREF|/2

┆ ┆ ┆1 0 0 0 0 0 0 0 0 0

┆ ┆ ┆0 1 1 1 1 1 1 1 -LSB LSB

┆ ┆ ┆0 0 1 1 1 1 1 1 -|VREF|/2-LSB |VREF|/2+LSB

┆ ┆ ┆0 0 0 0 0 0 0 0 -|VREF| |VREF|

Page 17: 第 9 章 数/模及模/数转换器接口

双极性 DAC 的接法 :

Page 18: 第 9 章 数/模及模/数转换器接口

双极性 DAC 的另一种接法 :

Page 19: 第 9 章 数/模及模/数转换器接口

控制放大器用 DAC0832:

Page 20: 第 9 章 数/模及模/数转换器接口

二、二、 DAC 0832DAC 0832 与单片机的接与单片机的接口:口:有 3 种工作方法:直通方式、单缓冲方式和双缓冲方式。

11 、直通方式:、直通方式: 输入寄存器和 DAC寄存器共用一个地址,同时选通输出; WR1 和WR2 同时进行,并且不与 CPU 相接。 特点:转换速度快。

80C51

CS

DAC0832

WR1

P1

XFER

8

WR2

D7 0~

+-

VO

MOV P1, A

Page 21: 第 9 章 数/模及模/数转换器接口

举例:例: D/A 转换程序,用 DAC0832 输出 0~+5V 锯齿波, 电路为直通方式。设 VREF=-5V ,若DAC0832地址 为 00FEH ,脉冲周期要求为 100ms。

100ms

DACS:MOV DPTR,#00FEH; 0832 I/O地址MOV A,#00H ;开始输出 0V

DACL:MOVX @DPTR,A ;D/A 转换INC A ;升压ACALL DELAY ;延时延时 100100ms/256ms/256 ::决定决定

锯齿波的周期锯齿波的周期AJMPDACL ;连续输出

DELAY …: ;延时子程序

Page 22: 第 9 章 数/模及模/数转换器接口

22 、单缓冲方式:、单缓冲方式: 输入寄存器和 DAC寄存器共用一个地址,同时选通输出,输入数据在控制信号作用下,直接进入 DAC寄存器中; WR1 和WR2 同时进行,并且与 CPU的WR 相连, CPU 对 0832执行一次写操作,将数据直接写入 DAC寄存器中。 适用:只有一路模拟信号输出或几路模拟信号非同步输出。

80C51 CS

DAC0832

WR1

P1

XFER

WR2

D7 0~ +-

VO

74LS373P0

WR

ALE

80C51

G A7 0~

A0

8

Page 23: 第 9 章 数/模及模/数转换器接口

单缓冲方式下的 DAC0832

80C51

Page 24: 第 9 章 数/模及模/数转换器接口

举例:例: D/A 转换程序,用 DAC0832 输出 0~+5V 三角波, 电路为单缓冲方式。设 VREF=-5V ,若DAC0832地 址为 00FEH ,脉冲周期要求为( 100ms)。

100ms

ORG 2000HSTAR:MOV DPTR,#00FEH;DAC0832地址

MOV A,#00H ;开始输出 0VUP : MOVX @DPTR, A ;D/A 转换

INC A ;产生上升段电压JNZJNZ UPUP ;上升到 A 中为 FFH( A≠0跳)

DOWN:DEC A ;产生下降段电压MOVX @DPTR, AJNZJNZ DOWNDOWN ;下降到 A 中为 00HSJMPSJMP UPUP ;重复

注:注:若想改变波形的周期(频率),只需在若想改变波形的周期(频率),只需在 SJMP UPSJMP UP前插入延时程序即前插入延时程序即可。可。

Page 25: 第 9 章 数/模及模/数转换器接口

C51 程序:#include<absacc.h>#include<reg51.h>#define DAC0832 XBYTE[0x00FE]#define uchar unsigned char#define unit unsigned int void stair(void) {

uchar i; while(1) { for(i=0;i<=255;i=i++)

/* 形成锯齿波输出值,最大255*/ {DAC0832=i; /*D/A 转换输出 */ }}

}

Page 26: 第 9 章 数/模及模/数转换器接口

33 、双缓冲器方式:、双缓冲器方式: 输入寄存器和 DAC寄存器分配有各自的地址,可分别选通用同时输出多路模拟信号。 适用:同时输出几路模拟信号的场合,可构成多个 0832同步输出电路。

80C51

CSDAC0832

WR1

P1

XFER

WR2

D7 0~ +-

VO

74LS3738P0

WR

ALE

80C51

G A7 0~

A0

CS

DAC0832

WR1

XFER

WR2

D7 0~

+-

VO

A1

A2

A1

1#

2#

X

Y

图形显示器

A2

Page 27: 第 9 章 数/模及模/数转换器接口

举例:例:用DAC0832 实现驱动绘图仪,电路为双缓冲方式。 1# 和 2#DAC0832地址分别为 00FEH 和 00FDH。 则绘图仪的驱动程序为:

ORG 2000HMOV DPTR,#00FEH ;选中 1#0832 (的输入寄存器): A0=0

MOV A,#DataxMOVX @DPTR,A ;Datax写入 1#0832 输入寄存器MOV DPTR,#00FDH ;选中 2#0832 (的输入寄存器): A1=0

MOV A,#DatayMOVX @DPTR,A ;Datay写入 2#0832 输入寄存器MOV DPTR,#00FBH ;选中 1#和2#0832的DAC寄存器:

A2=0

MOVX @DPTR,A ;1# 和 2#输入寄存器的内容同时 传送到 DAC寄存器中

Page 28: 第 9 章 数/模及模/数转换器接口

C51 程序:#include<absacc.h>#include<reg51.h>#define INPUTR1 XBYTE[0x00FE]#define INPUTR2 XBYTE[0x00FD] #define DACR XBYTE[0x00FB]#define uchar unsigned char void dac2b(data1,data2) uchar data1,data2;{

INPUTR1=data1; /* 数据送到一片 DAC0832*/INPUTR2=data2; /* 数据送到另一片 DAC0832*/DACR=0; /*启动两路 D/A同时转换 */

}

Page 29: 第 9 章 数/模及模/数转换器接口

三、 DAC1208 内部框图

Page 30: 第 9 章 数/模及模/数转换器接口

80C51与DAC1208 的接口

80C51

Page 31: 第 9 章 数/模及模/数转换器接口

华工考研题: PC/XT的D/A 接口使用 DAC0832 。其有关信号

接线如图所示,其输出电压 Vo 和输入数字量 DI7-DI0 之间呈线性且如表所示。现要求 Vo从零开始按图示波形周期变化(周期可自定)。试用汇编语言编写其控制部分程序。

译码器

DB7-DB0

+5V

A9-A0

AEN

I OW

POT0

POT1

DI 7-DI 0I LE

CS

XFERWR1

WR2

I OUT1

I OUT2

DAC0832

v0/ V

t

+5V

0

-5Vv0

输入 输出

00H7FHFFH

-5V0V+5V

Page 32: 第 9 章 数/模及模/数转换器接口

9-29-2 A/DA/D 转换器接口及应用转换器接口及应用

A/D 接口设计要点:1 .选择合适的系统采样速度;2 .减小 A/D 转换的孔径误差;3 .合理选用 A/D 转换器。

Page 33: 第 9 章 数/模及模/数转换器接口

一、转换原理:一、转换原理:A/D 转换是把模拟量信号转化成与其大小成比例的数字信号。A/D 转换电路主要分成:1 、双积分式(速度慢,精度高:用于速度要求不高的场合);2 、逐次逼近式(速度较快,精度较高:常用)。 常用芯片:常用芯片: MC14433( 3 ½ 位) 双积分式 ICL7135( 4 ½ 位) ICL7109( 12 位) ADC0808、 ADC0809( 8 位) 逐次逼近式 ADC1210( 12 位) AD574( 12 位)

Page 34: 第 9 章 数/模及模/数转换器接口

1 、双积分型 A/D 转换器工作原理:

双积分型 A/D 转换是一种间接 A/D

转换技术。首先将模拟电压转换成积分时间,然后用数字脉冲计时方法转换成计数脉冲数,最后将此代表模拟输入电压大小的脉冲数转换成二进制或 BCD 码输出。因此,双积分型 A/D 转换器转换时间较长,一般要大于 40~ 50ms 。

Page 35: 第 9 章 数/模及模/数转换器接口

双积分 ADC 电路原理图

Page 36: 第 9 章 数/模及模/数转换器接口

MC14433与 80C51 直接连接的接口

80C51MC14433

Page 37: 第 9 章 数/模及模/数转换器接口

ICL7109与 80C51 的接口电路图

80C51

Page 38: 第 9 章 数/模及模/数转换器接口

2 、逐次逼近 A/D 转换原理:

时序与控制逻辑电路

D/ A转换器输出缓冲器

N位寄存器

比较器

时钟

启动EOC

VX

VN

OE

N位数字量输出

A/ D逐次逼近 转换器原理图

N 位寄存器用来存放 N 位二进制数码。当 VX≥VN ,则保留 DN-1=1 ,否则清 0 。其余类推。

Page 39: 第 9 章 数/模及模/数转换器接口

1 、结构: 一个 8位逐次逼近式 A/D 转换器、 8路模拟转换开关、 3-8地址锁

存译码器和三态输出数据锁存器(详见 P249)。

2 、引脚:( 1 ) 8路模拟量分时分时输入信号端:

IN0~ IN7;( 2 ) 8位数字量输出信号端:

D0~D7;

( 3 )通道选择地址信号输入端: ADDA、 ADDB、 ADDC;

( 4 )基准参考电压为 VR(+ )和 VR( - ): 决定输入模拟量的范围。 典型值分别为 +5V 和 0V。( 5 )转换结束信号 EOC: 0 :正在进行转换; 1 :一次转换完成。( 6 )时钟信号输入端: CLK (其内部无时钟电路)。

多路转换开关

A B C

IN0

IN1

IN7

A/D 转换

二、二、 ADC0809ADC0809 与单片机的接口:与单片机的接口: ADC 0809/0808 为 8路输入通道、 8位逐次逼近式 A/D 转换器,可分时转换 8路模拟信号。

Page 40: 第 9 章 数/模及模/数转换器接口

3、 ADC 0809 与单片机连接:

转换数据的传送:① 定时传送方式;(不需接 EOC脚)②查询方式;(测试 EOC脚的状态)③中断方式。( EOC脚接 INT脚)注:( 1 )不能用无条件方式;( 2 ) 2个 ALE 不能相接。

涉及 2个问题:( 1 ) 8路模拟信号通道选择;( 2) A/D 转换完成后转换数据的传送。

ADC0809 的口地址: FEFFH;8 路模拟通道的地址: FEF8H~FEFFH。

IN0 ~ 7

AD0 ~ 7

ALE

INT

WR

P2.0

RD

D0 ~ 7

ADDABC

CLK

EOC

START

ALE

OE

≥1

1

MCS-51MCS-51

ADC0809ADC0809

8

3

≥1

Page 41: 第 9 章 数/模及模/数转换器接口

A/D 转换程序:(延时等待方法)MOV DPTR,#0FEFFH ;ADC0809地址

MOV A,#00H ;选中 IN0

MOVX @DPTR,A ;启动 A/D 转换LCALL DELAY ;等待转换结束MOVX A,@DPTR ;读转换结果RET

不用接 EOC脚,采用定时传送方式。

Page 42: 第 9 章 数/模及模/数转换器接口

例: P252 应用举例

初始化程序:(中断方式) MOV R0,#0A0H ;数据存储区首地址 MOV R2,#08H ; 8路计数器 SETB IT1 ;边沿触发方式 SETB EA ;中断允许 SETB EX1 ;允许外部中断 1 中断 MOV DPTR,#0FEF8H ;指向 ADC0809首

地址LOOP:MOVX @DPTR,A ;启动 A/D 转换HERE:SJMP HERE ;等待中断 DJNZ R2, LOOP ;巡回,未完继续

CLR EA ;结束,关中断 SJMP $ ;结束停止

设有一个 8 路模拟量输入的巡回检测系统,采样数据依次存放在外部 RAM 0A0H~ 0A7H 单元中, ADC0809 的 8个通道地址为 0FEF8H~0FEFFH。

Page 43: 第 9 章 数/模及模/数转换器接口

中断服务程序:MOVX A,@DPTR ;读数MOVX @R0, A ;存数INC DPTR ;指向下一模拟通道INC R0 ;指向数据存储区下一单元RETI

Page 44: 第 9 章 数/模及模/数转换器接口

C51 程序:#include<absacc.h>#include<reg51.h>#define uchar unsigned char#define IN0 XBYTE[0xFEF8] /* 设置 ADC0809 的通道 0 地址

*/sbit ad_busy=P3^3; /*即 EOC状态 */void ad0809(uchar idata * x) /*采样结果放指针中的 A/D采集函数

*/{ uchar i;

uchar xdata * ad_adr; ad_adr=&IN0; 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];

ad0809(ad); /*采样ADC0809 通道的值 */}

Page 45: 第 9 章 数/模及模/数转换器接口

三、 AD574A 与 MCS-51 单片机接口

80C51

Page 46: 第 9 章 数/模及模/数转换器接口

AD574A逻辑控制真值表

Page 47: 第 9 章 数/模及模/数转换器接口

1、D/A 转换原理、内部结构、信号输出形式 和主要技术指标。2、DAC0832 内部结构、管脚、 3 种工作方 法及其对应接口的特点、电路和应用程序。3、 A/D 转换原理和常用 ADC 芯片。4、 ADC0809 的内部结构及管脚、转换数据 传送方式及其对应接口图和程序。

小 结

Page 48: 第 9 章 数/模及模/数转换器接口

应用举例:1 、用 8 位DAC 芯片组成双极性电压输出电路,其参考电

压为 -5V~+5V ,求对应以下偏移码的输出电压:①0100 0000 ②1111 1110

解: VOUT1=-VREF.

VOUT2=-(VREF+2VOUT1)

① VOUT1=-VREF. =-1.25V~+1.25V

VOUT2=-(VREF+2VOUT1) =-2.5V~+2.5V

② VOUT1=-VREF. =-4.96~+4.96V

VOUT2=-(VREF+2VOUT1) =-4.92V~+4.92V

256

254

256

D

256

64

Page 49: 第 9 章 数/模及模/数转换器接口

2 、某 12位 A/D 转换器的输入电压为 0 ~+5V ,求出当输入模拟量为下列值时输出的数字量:

①1.25V ②3.75V

解:

12

)()(

2

5

2

n

REFREF VVq量化单位:

q

VVD

D

V inin

in .5

2

2

5 12

12数字量

HBq

D 400000100000000102425.1

HCBq

D 00001100000000307275.3

Page 50: 第 9 章 数/模及模/数转换器接口

3 、某梯度炉温变化范围为 0 ~ 1600℃ ,经温度变送器输出电压为 1 ~ 5V ,再经ADC0809 转换, ADC0809 的输入范围为 0 ~ 5V ,试计算当采样数值为 9BH 时,所对应的梯度炉温是多少?

解: 9BH=155D

04.3255

155)05(0809 xAADC 的输入值

CAx

81615

104.31600,对应梯度炉温

Page 51: 第 9 章 数/模及模/数转换器接口

(一)问答题(一)问答题

(二)填空题(二)填空题

(三)选择题(三)选择题

练 习 题