模块八

52
80C51 的的的的的 80C51 的的的 D/A 的的的的的的的的 80C51 的的的的的的的 的的的 80C51 的的的 A/D 的的的的的的的的

Upload: babu

Post on 08-Jan-2016

40 views

Category:

Documents


2 download

DESCRIPTION

模块八. 80C51 的测控接口. 本章主要内容. 80C51 与常用 D/A 转换器 的接口方法. 80C51 与常用 A/D 转换器 的接口方法. 80C51 开关量接口 方法. A/D 、 D/A 转换. 传感器. A/D. D/A. 数字控制 系统. 模拟 控制器. 典型的数字控制系统. 一、 D/A 转换器及其与单片机接口. ◇. D/A 转换器作用. ◇. D/A 转换器的基本原理. D/A 转换器的主要技术性能指标. ◇. ◇. DAC0832 芯片及其与单片机的接口. 1 、 D/A 转换器作用. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 模块八

80C51 的测控接口

80C51 与常用 D/A 转换器的接口方法本章主要内容 80C51 开关量接口方法

模块八

80C51 与常用 A/D 转换器的接口方法

Page 2: 模块八

A/D 、 D/A 转换

传感器 A/D数字控制系统 D/A

模拟控制器

典型的数字控制系统典型的数字控制系统

Page 3: 模块八

一、 D/A 转换器及其与单片机接口

◇ D/A 转换器作用D/A 转换器的基本原理D/A 转换器的主要技术性能指标

DAC0832 芯片及其与单片机的接口

Page 4: 模块八

1 、 D/A 转换器作用▼将数字量转换为模拟量,以便操纵控制对象。

单片机 D/A 转换 控制对象

如:单片机输出不同的数字量经 D/A 转换后加给直流电机,即可控制电机的转速。

Page 5: 模块八

2 、 D/A 转换器的基本原理

▼将数字量的每一位都转换为相应的模拟量,然后对其求和即可以得到与该数字量成正比的模拟量。

▼数 / 模转换器( DAC )是一种把数字信号转换成模拟信号的器件。

▼常用的 DAC 是由 T 形电阻网络构成的,称为 T 形电阻网络 D/A 转换器。

Page 6: 模块八

T 形电阻网络 D/A 转换器

D0D1D2D3D4D5D6D7

Rfb

2R2R2R2R2R2R2R

-+ VO

I1I2I3I4I5I6I7I

2R

I0

I0I1I2I3I4I5I6I7

2R

0 10 10 10 10 10 10 10 1

I=VREF/ R I7=I/21 I6=I/22 I5=I/23

I3=I/25 I2=I/26 I1=I/27

I4=I/24

I0=I/28 V0 =- I01×Rfb

IO1

IO2

Page 7: 模块八

若 Rfb=R, 则 V0 =- I01×Rfb

▼ 当输入数据 D7 ~ D0 为 1111 1111B 时,有:I01=I7+I6+I5+I4+I3+I2+I1+I0

=(I/28) ×(27+26+25+24+23+22+21+20)

▼ 当输入数据 D7 ~ D0 为 1100 0011B 时,有:I01=I7+I6+I1+I0

=(I/28) ×(27+26+21+20)

=-(VREF/28) ×(27+26+21+20)

可见,输出电压 V0 的大小与数字量具有对应的关系。

I=VREF/ R I7=I/21 I6=I/22 I5=I/23

I3=I/25 I2=I/26 I1=I/27

I4=I/24

I0=I/28 V0 =- I01×Rfb

Page 8: 模块八

3 、 D/A 转换器的主要技术性能指标

▼转换速度:一般几十微秒到几百微秒,快速的可达 1微秒。

▼分辨率 : 输入数字量的最低有效位( LSB )发生变化时,所对应的输出模拟量(常为电压)的变化量。它反映了输出模拟量的最小变化值。

对于 5V 的满量程,采用 8 位的 DAC

时: ◆ 分辨率为 5V/28 = 19.5mV

当采用 12位的 DAC时◆ 分辨率则为 5V/212 = 1.22mV

Page 9: 模块八

4 、典型 DAC 芯片 : DAC0832

输入锁存器

DAC寄存器

D/A转换器

&

&

&

WR1

WR2

XFER

CS

ILE

VREF

IOUT2

IOUT1

Rfb

AGND

VCC

LE1 LE2

DI7~DI0

Page 10: 模块八

1 ) DAC0832 引脚

20

19

18

17

16

15

14

13

12

11

1

2

3

4

5

6

7

8

9

10

DA

C08

32

CS

WR1

DI3

DI2DI1

DI0VREF

Rfb

DGND

AGND

VCC

ILE

WR2

DI4

DI5

DI6

DI7IOUT2

IOUT1

:输入寄存器选通信号CS

XFER

: DAC 寄存器选通信号

XFER

WR1 :输入寄存器写信号

WR2: DAC 寄存器写信号ILE:输入寄存器锁存信号

DI0~DI7 :数字量输入端IOUT2 、 Iout1:电流输出引脚

DGND:数字信号地AGND:模拟信号地

Page 11: 模块八

2 ) DAC0832 的工作方式

输入锁存器

DAC寄存器

D/A转换器

&

&

&

CS

WR1

WR2

XFER

ILE

VREF

IOUT2

IOUT1

Rfb

AGND

VCC

LE1 LE2

DI7~DI0

▼DAC0832 是一个八位 D/A 转换器,转换时间 1us 。

Page 12: 模块八

输入锁存器

DAC寄存器

D/A转换器

&

&

&

CS

WR1

WR2

XFER

ILE

VREF

IOUT2

IOUT1

Rfb

AGND

VCC

LE1 LE2

DI7~DI0

因此因此 DAC0832DAC0832 有三种工作方式:有三种工作方式:单缓冲、双缓冲、直通单缓冲、双缓冲、直通

LE1LE1 或或 LE2=1LE2=1 ,当前寄存器的输出跟随输入的数据,当前寄存器的输出跟随输入的数据 (( 直直通通 ))

LE1LE1 或或 LE2=0LE2=0 ,锁存数据,锁存数据 (( 锁存锁存 ))

Page 13: 模块八

DA

C08

32

3) DAC0832 与 80C51 单片机的接口① 单缓冲方式接口电路---- 将两级寄存器的控制信号并接在一起,相当于控制一级寄存器(线选译码地址 7FFFH )。

CS

XFER

WR1

WR2

ILE

Rfb

IOUT1

IOUT2

80C

51

DI7~DI0

P2.7

P0

WR

+5V

VO+

-

Page 14: 模块八

① 单缓冲方式接口电路

DA

C08

32

CS

XFER

WR1

WR2

ILE

Rfb

IOUT1

IOUT2

80C

51

DI7~DI0

P2.7

P0

WR

+5V

VO+

-

▼ 执行下面指令就能完成一次 D/A 转换:MOV DPTR,#7FFFH

MOV A,#DATA

MOVX @DPTR,A ; 启动 D/A 转换

;指向 DAC0832 口地址

Page 15: 模块八

单缓冲方式的应用 1

---------- 产生锯齿波产生锯齿波

A=00H

A=0FFH

ORG 0030H

START : MOV DPTR , #7FFFH ;选中 0832MOV A , #00H ; D/A 数据初值

LP : MOVX @DPTR,A ;转换INC A ;修改 D/A 数据

SJMP LP ;循环,输出连续模拟量

源程序清单源程序清单 ::

Page 16: 模块八

产生锯齿波产生锯齿波的过程示意

1/28

0

2/28

3/28

254/28

255/28

··

·

Page 17: 模块八

单缓冲方式的应用 2------ 产生三角波产生三角波

A=00H

A=0FFH

A=00H

A=0FFH

A=00H

ORG 2000HSTART : MOV DPTR , #00FEH ;选中 0832

MOV A , #00H ; D/A 数据初值UP : MOVX @DPTR , A ;转换

INC A ;修改 D/A 数据(上升)JNZ UP ;未上升到最大值,继续

DOWN : DEC A ;否则,修改 D/A 数据(下降) MOVX @DPTR , A ;转换JNZ DOWN ;未下降到最小值,继续SJMP UP ;一个周期结束,继续

源程序清单源程序清单 ::

Page 18: 模块八

DA

C08

32(

2)

DA

C08

32(

1)

② 双缓冲方式接口电路CS

XFER

WR1

WR2

ILE

Rfb

IOUT1

IOUT2

80C

51

DI7~DI0

P2.5

P0

WR

+5V

+

-

VO

CS

XFER

WR1

WR2

ILE

Rfb

IOUT1

IOUT2DI7~DI0

+5V

+

-

VO

P2.6

P2.7

Page 19: 模块八

▼完成两路 D/A 同步输出的程序如下:双缓冲方式接口电路程序设计

MOV DPTR, #7FFFH

MOVX @DPTR,A

MOV DPTR, #0DFFFH

MOV A,#data1MOVX @DPTR,A

MOV DPTR, #0BFFFH

MOV A,#data2MOVX @DPTR,A

; data1 送入 (1) 输入锁存器

; data2 送入 (2) 输入锁存器

;完成 D/A 转换输出

Page 20: 模块八

DA

C08

32

③ 直通方式

CS

XFER

WR1

WR2

ILE

Rfb

IOUT1

IOUT2

80C

51

DI7~DI0P0

+5V

+

-

VO

▼ 当 CS XFER WR1 WR2、 、 、 引脚全部接地,

ILE 引脚接+ 5V,数字量一旦输入,就直接进入 DAC

寄存器,进行 D/A 转换。

Page 21: 模块八

二、 A/D 转换器及其与单片机的接口

◇ A/D 转换器作用

典型 8 位 A/D 芯片 ADC0809

典型 12 位 A/D 芯片 AD574A

◇ A/D 转换器工作原理

Page 22: 模块八

1 、 A/D 转换器作用▼将模拟量转换为数字量,以便单片机接收处理。

传感器 A/D 转换 单片机

◆逐次逼近式 A/D 转换器

◆双积分式 A/D 转换器

Page 23: 模块八

2 、 A/D 转换器工作原理

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

▼按工作原理分, ADC 的主要种 类有:逐次逼近式、双积分式、计数比较式和并行式。

控制逻辑

锁存器

D/A 转换器

N 位寄存器

VREF

D0

VIN

START

EOC

D7...

Page 24: 模块八

逐次逼近式 ADC 转换过程:

▼模拟量 VX送到比较器后,启动 A/D 转换,先设N位寄存器的最高位( DN-1 )为 1,其余位为 0,进行 D/A 转换,得到的模拟量 VN与输入 VX比较。

若 VN ≤VX ,再设次高位( DN-2 )为 1,继续…若 VN V≧ X,先清零 DN-1 ,再设次高位 DN-2 为 1,继续

…▼如此反复,经过 N次比较后,最后一位 D0得到确定,此时, N位寄存器的内容就是转换 好的数字量,而 EOC 输出转换结束信号,在输出允许 OE (高电平)有效时,数字量经输出缓冲器读出。

Page 25: 模块八

3 、 A/D 转换器的主要技术指标▼ 分辨率◆指使输出数字量变化一个相邻数码所需输入模拟电压的变化量。◆如一个 10V 满刻度的 12 位 ADC 能分辨输入电压变化最小值是 10V×1/212= 2.4mV 。

▼ 量化误差

◆ADC 把模拟量变为数字量,用数字量近似表示模拟量,这个过程称为量化。

◆量化误差是 ADC 的有限位数对模拟量进行量化而引起的误差。

Page 26: 模块八

4 、典型 8 位 ADC 芯片 : ADC0809

▼ADC0809 是八位逐次逼近式,单片 CMOS集成A/D 转换器。

▼转换速度取决于芯片外接的时钟频率。

时钟频率范围: 10 ~ 1280KHz 。典型值为时钟频率 640KHz ,转换时间为 100us 。

Page 27: 模块八

8

1) ADC0809 的内部结构

8 路模拟开关

地址锁存与译码

8 位A/D转换器

三态输出锁存器

IN7

~

IN0

CBA

ALE

D7D6D5D4D3D2D1D0

EOC

CLKSTART

VR(-)VR(+)

OE

Page 28: 模块八

2) ADC0809 通道选择表

C B A 选择的通道0 0 0 IN0

0 0 1 IN1

0 1 0 IN2

0 1 1 IN3

1 0 0 IN4

1 0 1 IN5

1 1 0 IN6

1 1 1 IN7

Page 29: 模块八

3 ) ADC0809 引脚

2827262524232221201918171615

123456789

1011121314

AD

C08

09

IN3IN4IN5IN6IN7

IN2IN1IN0ABCALED7D6D5D4D0VR(-)

D2D1

GND

VR(+)

VCCCLKOED3

EOCSTART

C 、 B 、 A : 8 路模拟开关的地址选通信号输入端;ALE :地址锁存允许信号输入端CLK :时钟信号输入端;START :启动 A/D 转换控制信号输入端EOC :转换结束信号输出端

IN0~IN7 : 8路模拟量输入端

VR(-) 、 VR(+) :分别为基准电源的正、负输入端。

OE :输出端允许控制端;

D0~D7 : 8路数字量输出端

Page 30: 模块八

4 ) ADC0809 与单片机的接口电路

74L

S37

3

AD

C08

09

80C

31

ALE

P0

EA

WR

RD

CBAD0~D7

OE

D7

D0

Q7

Q0

≧1

≧11

P2.7

P3.3

STARTALEOE

EOC

CLKCP Q

D Q

IN7IN6IN5IN4IN3IN2IN1IN0

Page 31: 模块八

A/D 转换程序 (查询方式)

MOV R1,#DATA ;置数据区首地址MOV DPTR,#7FF8H ; 指向 0通道MOV R7, # 08H ;置通道数MOVX @DPTR,A; 启动 A/D 转换JB P3.3,HER ;查询 A/D 转换结束MOVX A,@DPTR ;读取 A/D 转换结果MOV @R1,A ; 存储数据INC DPTR ; 指向下一个通道INC R1; 修改数据区指针

DJNZ R7 , LOOP ; 8 个通道转换完否

LOOP:

HER :

▼对8路模拟信号轮流采样一次,并依次把转换结果存储到片内 RAM以 DATA 为起始地址的连续单元中。

Page 32: 模块八

A/D 转换程序 ( 中断方式) ORG 0013H ;中断服务程序入口 AJMP PINT1       ; 主程序

MOV R1, #DATA ;置数据区首地址SETB IT1   ; 为边沿触发方式SETB EA   ;开中断SETB EX1  ;允许中断

MOV DPTR , #7FF8H  ;指向 IN0 通道MOVX @DPTR , A  ;启动 A/D 转换

SJMP $     ;等待中断

Page 33: 模块八

A/D 转换程序 ( 中断方式); 中断服务程序

PINT1 : PUSH DPL

MOVX A , @DPTR   ;读取转换后数据MOV @R1 , A ;数据存入以 DATA 为首地址的 RAM中

INC R1 ;修改数据区指针MOVX @DPTR , A ;再次启动 A/D 转换

RETI

MOV DPTR, #7FF8H

PUSH DPH

POP DPH

POP DPL

Page 34: 模块八

5 、 AD574A 芯片及其与单片机接口12/8 :控制是 12 位还是 8位数据并行输出

/CS :片选信号,低电平有效

CE:芯片启动信号

R/C : 读 / 转换选择。

A0:字节选择控制

STS: 转换状态信号

VLOG 1

2

3

4

56

78

9

10

11

12

13

14 15

16

17

18

19

20

21

22

2324

25

26

27

28

12//CS

A0

R/CE

VCC

REFOUTAG

REFINVEE

BIPOFF

10VIN

20VIN DG

DB0

DB1

DB2

DB3

DB4

DB5

DB6

DB7

DB8

DB9

DB10

DB11

STS

8

C

AD574

Page 35: 模块八

表 8.1 AD574A 各控制输入脚功能

CE CS R/C 12/8 A0 功能说明0 × × × × 不起作用× 1 × × × 不起作用1 0 0 × 0 启动 12位转换1 0 0 × 1 启动 8位转换1 0 1 接引脚 1 × 12 位数据并行输

出1 0 1 接引脚 15 0 高 8 位数据输出

1 0 1 接引脚 15 1 低 4位数据尾接 4位 0输出

Page 36: 模块八

AD574A 的单极性和双极性输入

REFIN

REFOUT

BIPOFF

AD574

10VIN

20VINDG

AG

100Ω

100K

100Ω

+15V

-15V

100K

0~10V

0~20V

R2

R1

REFIN

REFOUT

BIPOFF

AD574

10VIN

20VINDG

AG

100Ω +15V

R2

R1

-5~+5V

-10~+10V

a)( 单极性接法b)( 双极性接法

100Ω

Page 37: 模块八

单极性输入:

D=4096VIN/VFSVIN=DVFS/4096 ( D为无符号二进制码)双极性输入:

D=2048(1+2VIN/VFS)

VIN=(D/2048-1)VFS/2 ( D为 12 位偏移二进制码)

以上式中, VIN为输入模拟量( V), VFS 是满量程

Page 38: 模块八

AD574A 与 8031 单片机的接口

REFIN

REFOUT

BIPOFF

AD57

4

10VIN

20VIN

AG

100Ω

R2

R1

-5~+5V

-10~+10V

100Ω

12/ 8

C

DG

/CS

A0

R/

DB11...

DB4

DB3DB2DB1DB0

CE

STS

+

ALE

P0.7...

P0.0

/EA

/WR/RD

P1.0

G

D7...D0

/OE

Q7...Q0

80C3174

LS37

3

Page 39: 模块八

控制地址表

功能 P2.7~P2.0

P0.7~P0.3

P0.2

P0.1

P0.0 地址

/CS A0 R/C

启动转换 × × 0 0 0 FFF8H

读高 8 位 × × 0 0 1 FFF9H

读低 4位 × × 0 1 1 FFFBH

Page 40: 模块八

AD574A 的转换程序 AD574A : MOV DPTR,#0FFF8H; 送端口地址 MOVX @DPTR,A ; 启动 AD574A SETB P1.0 ;置 P1.0 为输入方式 LOOP:JB P1.0,LOOP ;检测 P1.0 接口 INC DPTR; 使 R/C 为 1 MOVX A,@DPTR;读取高 8 位数据 MOV 41H,A ;高 8 位内容存入 41H单元 INC DPTR;使 R/C 、 A0均为 1 INC DPTR; MOVX A,@DPTR ;读取低 4位 MOV 40H,A; 将低 4位内容存入 40H单元

Page 41: 模块八

三、开关量输出接口

◇ 输出口的隔离

◇ 继电器输出接口

◇ 数字地与模拟地的连接原则

Page 42: 模块八

1 、输出口的隔离▼ 在单片机应用系统中,为防止现场强电磁的干扰或工频电压通过通道反串到测控系统,一般采用通道隔离技术。输出信道的隔离最常用的组件是光耦合器,简称光耦。

Page 43: 模块八

2 、继电器输出接口▼ 通过继电器输出,可完成从低压直流到高压交流的过渡。在经光耦合器光电隔离后,直流部分给继电器控制线圈供电,而其输出触点则可直接于 220V市电相接。

Page 44: 模块八

继电器的引脚内部图

a b

cL1 L2

常闭接点( NC 接点)

常开接点( NO 接点)

Page 45: 模块八

使用晶体管驱动继电器( 1)

1K

a

b

c

接至 P1 、P2 或 P3

VCCP1 、 P2 、

P3适用 继电器 ▼二极管 D提供继电器线圈电流的放电路径,以防护晶体管。

▼由于线圈属于电感性负载,当晶体管截止时,而原本线 圈上的电流不可能瞬间降为 0,所以二极管 D 就提供一个放电路径,使线圈不会产生高的感应电势,就不会破坏晶体管了。

Page 46: 模块八

使用晶体管驱动继电器( 2)

a

b

c

1K

接至 P0

VCCP0适用

继电器

▼7405 驱动 5V 的继电器;

VCC

▼7406驱动较高电压的继电器,最高 30V 。

Page 47: 模块八

继电器应用实例

a

b

c

1K

+12V

继电器

80C51

P1.0

电灯泡110V/40W

~220V

Page 48: 模块八

3 、数字地与模拟地的连接原则

▼数字地是指 TTL 或 CMOS 芯片、 I/O 接口电路芯片、 CPU 芯片等数字逻辑电路的接地端,以及 A/D 、D/A 转换器的数字地。

▼模拟地是指放大器、取样保持器和 A/D 、 D/A 中模拟信号的接地端。

▼ 在单片机系统中,数字地和模拟地应分别接地。即使是一个芯片上有两种地也要分 别接地,然后在一点处把两种地连接起来。

Page 49: 模块八

J

R

R

光耦合器 继电器输出接口

a)( (b)

Page 50: 模块八

模块八小结

1 、 D/A 、 A/D 转换器是计算机测控系统中常用的芯片,它们可以把数字信号转换成模拟信号输出到外部设备,或把模拟信号转换成数字信号输入到计算机。

2、 D/A 转换器主要由基 准电压、模拟电子开关、电阻解码网络和运算放大器组成。从分辨率来说,有 8位、 10位、 12位、16位之分。位数越多,分辨率越高。

3、 DAC0832 是一种 8位的 D/A 转换器,输出为电流型,如果需要转换结 果为电压,则需外接电流-电压转换电路。 DAC0832有三种工作方式,改变 ILE 、 /WR1 、 /WR2 和 /XFER的连接方式,可使 DAC0832 工作于单缓冲器、双缓冲器及直通方式。

Page 51: 模块八

4、 D/A 、 A/D 转换器是计算机测控系统中常用的芯片,它们可以把数字信号转换成模拟信号输出到外部设备,或把模拟信号转换成数字信号输入到计算机。

5、 A/D 转换器的种类有逐次逼近式、双积分式、计数比较式等。ADC0809是逐次逼近式, 8位 8通道 A/D 转换器,片内带有三态输出缓冲器,其数据输出线可与单片机的数据总线直接相连。单片机读取 A/D 转换结果,可以采用中断方式或查询方式。

6、开关量的输出控制着开关类器件,如继电器、电磁阀、晶体管开关、固态继电器等。考虑到电磁干扰和功率驱动问题,开关量的输出接口要采用 隔离技术和驱动技术,常用的隔离技术是光电隔离,驱动器件常用 OC门、集成驱动芯片、三极管等。

Page 52: 模块八

模块八作业

P205

题 4、 6 加油,努力!