24
本本本本 A/D 本本本本本 D/A 本本本本本 本6本 A/D 本 D/A 本本本本

本章内容 A/D 转换器接口 D/A 转换器接口

  • Upload
    sawyer

  • View
    170

  • Download
    0

Embed Size (px)

DESCRIPTION

第 6 章 A/D 与 D/A 转换接口. 本章内容 A/D 转换器接口 D/A 转换器接口. A/D 转换器接口. A/D 转换器是实现模拟量向数字量转换的器件,按转换原理可分为四种:计数式 A/D 转换器、双积分式 A/D 转换器、逐次逼近式 A/D 转换器和并行式 A/D 转换器。 目前最常用的 A/D 转换器是双积分式 A/D 转换器和逐次逼近式 A/D 转换器。前者的主要优点是转换精度高,抗干扰性能好,价格便宜,但转换速度较慢,一般用于速度要求不高的场合。后者是一种速度较快、精度较高的转换器,其转换时间大约在几微秒到几百微秒之间。. A/D 转换器接口. - PowerPoint PPT Presentation

Citation preview

Page 1: 本章内容 A/D 转换器接口 D/A  转换器接口

本章内容A/D 转换器接口D/A 转换器接口

第 6 章 A/D 与 D/A 转换接口

Page 2: 本章内容 A/D 转换器接口 D/A  转换器接口

A/D 转换器接口

A/D 转换器是实现模拟量向数字量转换的器件,按转换原理可分为四种:计数式 A/D 转换器、双积分式 A/D

转换器、逐次逼近式 A/D 转换器和并行式 A/D 转换器。目前最常用的 A/D 转换器是双积分式 A/D 转换器和逐次逼近式 A/D 转换器。前者的主要优点是转换精度高,抗干扰性能好,价格便宜,但转换速度较慢,一般用于速度要求不高的场合。后者是一种速度较快、精度较高的转换器,其转换时间大约在几微秒到几百微秒之间。

Page 3: 本章内容 A/D 转换器接口 D/A  转换器接口

A/D 转换器接口 ADC0809ADC0809 是一个是一个 88 位位 88 通道的逐次逼近式通道的逐次逼近式 ADAD 转换器。转换器。

ST CLK

EOC

D0

D7

IN0

IN7

ABC

ALE

°Ëλ

ת»»Æ÷

A/D

Èý̬

Êä³ö

Ëø´æÆ÷

VCCGND

OEVR(+)VR(-)

3 8

µØÖ·Ëø´æÓëÒëÂë

°Ë·

Ä£ÄâÁ¿

¿ª¹Ø......

......

Page 4: 本章内容 A/D 转换器接口 D/A  转换器接口

A/D 转换器接口 ST CLK

EOC

D0

D7

IN0

IN7

ABC

ALE

°Ëλ

ת»»Æ÷

A/D

Èý̬

Êä³ö

Ëø´æÆ÷

VCCGND

OEVR(+)VR(-)

3 8

µØÖ·Ëø´æÓëÒëÂë

°Ë·

Ä£ÄâÁ¿

¿ª¹Ø......

......

通道选择表地址码

选择的通道C B A

0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1

IN0IN1IN2IN3IN4IN5IN6IN7

Page 5: 本章内容 A/D 转换器接口 D/A  转换器接口

A/D 转换器接口 ST CLK

EOC

D0

D7

IN0

IN7

ABC

ALE

°Ëλ

ת»»Æ÷

A/D

Èý̬

Êä³ö

Ëø´æÆ÷

VCCGND

OEVR(+)VR(-)

3 8

µØÖ·Ëø´æÓëÒëÂë

°Ë·

Ä£ÄâÁ¿

¿ª¹Ø......

......

CLK :时钟信号,可由单片机 ALE 信号分频得到。

转换步骤转换步骤1.1. ALEALE 信号上升沿有信号上升沿有效,锁存地址并效,锁存地址并选中相应通道。选中相应通道。

2.2. STST 信号有效,开信号有效,开始转换。始转换。 A/DA/D 转转换期间换期间 STST 为低电为低电平。平。

3.3. EOCEOC 信号输出高电信号输出高电平,表示转换结平,表示转换结束束。。

4.4. OEOE 信号有效,允信号有效,允许输出转换结果。许输出转换结果。

Page 6: 本章内容 A/D 转换器接口 D/A  转换器接口

A/D 转换器接口 ST CLK

EOC

D0

D7

IN0

IN7

ABC

ALE

°Ëλ

ת»»Æ÷

A/D

Èý̬

Êä³ö

Ëø´æÆ÷

VCCGND

OEVR(+)VR(-)

3 8

µØÖ·Ëø´æÓëÒëÂë

°Ë·

Ä£ÄâÁ¿

¿ª¹Ø......

......

ADC0809 引脚图

Page 7: 本章内容 A/D 转换器接口 D/A  转换器接口

A/D 转换器接口

ADC0809 引脚图

( 1 ) IN7 〜 IN0 : 8 个模拟量输入通道。( 2 ) ADDA 、 ADDB 、 ADDC :地址线。( 3 ) ALE :地址锁存允许信号。对应 ALE上升沿, ADDA 、 ADDB 和 ADDC 地址状态送入地址锁存器中,经译码后输出选择模拟信号输入通道。( 4 ) START :转换启动信号。对应 START 上跳沿时,所有内部寄存器清 0 ;对应 START 下跳沿,开始进行 A/D 转换;在 A/D转换期间, START 应保持低电平。( 5 ) D7~D0 :数据输出线,为三态缓冲输出形式,可以和单片机的数据线直接相连。

Page 8: 本章内容 A/D 转换器接口 D/A  转换器接口

A/D 转换器接口

ADC0809 引脚图

( 6 ) OE :输出允许信号,用于控制三态输出锁存器向单片机输出转换得到的数据。当 OE=0 时,输出数据线呈高电阻;当 OE=1 时,输出转换得到的数据。( 7 ) CLK :时钟信号。 ADC0809 的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为 500kHz 的时钟信号( 8 ) EOC—— 转换结束状态信号。启动转换后,系统自动设置 EOC=0 ,转换完成后, EOC=1 。该状态信号既可作为查询的状态标志,又可以作为中断请求信号使用。( 9 ) Vref :参考电源。参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准,其典型值为 +5V ( Vref (+) =+5V , Vref(-) =0V )。

Page 9: 本章内容 A/D 转换器接口 D/A  转换器接口

A/D 转换器接口

单片机系统扩展三总线

Page 10: 本章内容 A/D 转换器接口 D/A  转换器接口

A/D 转换器接口 单片机系统扩展三总线

地址锁存器 74LS373 是带三态缓冲输出的 8D 锁存器。由于单片机的数据线与地址线的低 8 位共用 P0 口,因此必须用地址锁存器将地址信号和数据信号区分开。 74LS373 的锁存控制端 G 直接与单片机的锁存控制信号 ALE 相连,在 ALE 的下降沿锁存低 8 位地址。高 8 位地址由 P2 口直接提供。 系统扩展中常用的控制线有以下三条: :控制程序存储器的读操作,在执行指令的取指阶段和从程序存储器中取数据时有效。 :控制数据存储器的读操作,从外部数据存储器或 I/O 端口中读取数据时有效。 :控制数据存储器的写操作,向外部数据存储器或 I/O 端口中写数据时有效。

PSEN

RD

WR

Page 11: 本章内容 A/D 转换器接口 D/A  转换器接口

A/D 转换器接口

ADC0809与 8031单片机的连接

Page 12: 本章内容 A/D 转换器接口 D/A  转换器接口

A/D 转换器接口

ADC0809的通道地址表

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

单片机

P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0

A15

A14

A13

A12

A11

A10

A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

0809 × × × × × × × ST × × × × × C B A

IN0 × × × × × × × 0 × × × × × 0 0 0

IN1 × × × × × × × 0 × × × × × 0 0 1

IN7 × × × × × × × 0 × × × × × 1 1 1

Page 13: 本章内容 A/D 转换器接口 D/A  转换器接口

A/D 转换器接口

单片机与 A/D 转换器接口程序设计,主要有以下四个步骤:

启动 A/D 转换, START 引脚得到下降沿。 查询 EOC 引脚状态, EOC 引脚由 0 变 1 ,表示 A/

D 转换过程结束。 允许读数,将 OE 引脚设置为 1 状态。 读取 A/D 转换结果。

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Page 14: 本章内容 A/D 转换器接口 D/A  转换器接口

D/A 转换器接口 #include<absacc.h> // 该头文件中定义 XBYTE 关键字#include<reg51.h>#define uchar unsigned char#define IN0 XBYTE[0xfef8] // 设置 AD0809 的通道 0

地址sbit ad_busy=P3^3; // 定义 EOC 状态void ad0809(uchar idata *x){ uchar i;

uchar xdata *ad_adr; // 定义指向外部 RAM 的指针ad_adr=&IN0; // 通道 0 的地址送 ad_adrfor(i=0;i<8;i++) // 处理 8 通道{ *ad_adr=0; // 写外部 I/O 地址操作,启动转换,写的内容不重要,只需写操作

i=i; //延时等待 EOC 变低i=i;while(ad_busy==0) ; // 查询等待转换结束x[i]=*ad_adr;// 读操作,输出允许信号有效,存转换结果

ad_adr++; // 地址增 1 ,指向下一通道}}void main(void){static uchar idata ad[10]; //static 是静态变量的类型说明符ad0809(ad); //采样 AD0809 通道的值}

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Page 15: 本章内容 A/D 转换器接口 D/A  转换器接口

指针 指针变量的定义

数据类型 * 指针变量名;例如:int i,j,k,*i_ptr; // 定义整型变量 i,j,k 和整型指针变量 i_pt

r为变量 i赋值的方法有以下两种:①直接方式: i=10; // 将整数 10 送入地址为 2000 和 2001 的单元内

(整型数据占两个存储单元 2000 和 2001 )②间接方式: i_ptr=&i; // 变量 i 的地址送给指针变量 i_ptr,i_ptr=2000 *i_ptr=10; // 将整数 10 送入 i_ptr 指向的存储单元中,即 200

0 单元

Page 16: 本章内容 A/D 转换器接口 D/A  转换器接口

指针 指针运算符

( 1 )取地址运算符 取地址运算符 & 是单目运算符,其功能是取变量的

地址,例如:i_ptr=&i; // 变量 i 的地址送给指针变量 i_ptr,i_ptr=200

0( 2 )取内容运算符 取内容运算符 * 是单目运算符,用来表示指针变量

所指的单元的内容,在 *运算符之后跟的必须是指针变量。

例如:j=*i_ptr; // 将 i_ptr 所指的单元 2000 的内容 10赋给变

量 j ,则 j=10

Page 17: 本章内容 A/D 转换器接口 D/A  转换器接口

指针 指针变量的赋值运算

把一个变量的地址赋予指向相同数据类型的指针变量 int i,*i_ptr; i_ptr=&i; 把一个指针变量的值赋予指向相同类型变量的另一个指针变量 int i,*i_ptr,*m_ptr; i_ptr=&i; m_ptr=i_ptr; 把数组的首地址赋予指向数组的指针变量 int a[5],*ap; ap=a; ap=&a[0]; int a[5],*ap=a; 把字符串的首地址赋予指向字符类型的指针变量 unsigned char *cp; cp=“Hello World!”; 这里应该说明的是,并不是把整个字符串装入指针变量,而是把存放该

字符串的字符数组的首地址装入指针变量。

Page 18: 本章内容 A/D 转换器接口 D/A  转换器接口

D/A 转换器接口

D/A 转换器输入的是数字量,经转换后输出的是模拟量。 DAC0832 是一个 8 位 D/A 转换器。单电源供电,从 +5V 〜 +15V范围均可正常工作。基准电压的范围为 ±10V ;电流建立时间为 1µs ; CMOS工艺,低功耗(仅为 20mW )。

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Page 19: 本章内容 A/D 转换器接口 D/A  转换器接口

D/A 转换器接口

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

DAC0832 内部结构框图

Page 20: 本章内容 A/D 转换器接口 D/A  转换器接口

D/A 转换器接口

DAC0832 内部结构框图

DAC0832 由输入寄存器和 DAC 寄存器构成两级数据输入锁存。使用时数据输入可以采用两级锁存(双锁存)形式、或单级锁存(一级锁存,另一级直通)形式,或直接输入(两级直通)形式。此外,由三个与门电路可组成寄存器输出控制逻辑电路,该逻辑电路的功能是进行数据锁存控制。当 =0 时,输入数据被锁存;当 =1 时,锁存器的输出跟随输入的数据。

Page 21: 本章内容 A/D 转换器接口 D/A  转换器接口

D/A 转换器接口 DAC0832各引脚信号说明

Page 22: 本章内容 A/D 转换器接口 D/A  转换器接口

D/A 转换器接口

单片机与 DAC0832单缓冲连接方式

Page 23: 本章内容 A/D 转换器接口 D/A  转换器接口

D/A 转换器接口 单片机与 DAC0832 单缓冲连接方式产生三角波程序

#include<absacc.h> //绝对地址访问头文件#include<reg51.h>#define uchar unsigned char#define uint unsigned int#define DA0832 XBYTE[0x7fff]void delay_1ms(); //延时 1ms 程序void main(void) {uchar i;TMOD=0x10; // 置定时器 1 为方式 1 while(1)

{ for(i=0;i<=255;i++; // 形成三角波输出值,最大 255 { DA0832=i; //D/A 转换输出 delay_1ms();

} for(i=255;i>=0;i--) // 形成三角波输出值,最大 255 { DA0832=i; //D/A 转换输出 delay_1ms();

} } }

Page 24: 本章内容 A/D 转换器接口 D/A  转换器接口

D/A 转换器接口

DAC 0832 的双缓冲方式连接