AD及DA实验报告.docx

上传人:b****5 文档编号:7629288 上传时间:2023-01-25 格式:DOCX 页数:17 大小:172.59KB
下载 相关 举报
AD及DA实验报告.docx_第1页
第1页 / 共17页
AD及DA实验报告.docx_第2页
第2页 / 共17页
AD及DA实验报告.docx_第3页
第3页 / 共17页
AD及DA实验报告.docx_第4页
第4页 / 共17页
AD及DA实验报告.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

AD及DA实验报告.docx

《AD及DA实验报告.docx》由会员分享,可在线阅读,更多相关《AD及DA实验报告.docx(17页珍藏版)》请在冰豆网上搜索。

AD及DA实验报告.docx

AD及DA实验报告

微机原理及接口技术之AD及DA实验

一.实验目的:

1.了解A/D芯片ADC0809和D/A芯片DAC0832的电气性能;外围电路的应用性搭建及有关要点和注意事项;与CPU的接口和控制方式;相关接口参数的确定等;

2.了解数据采集系统中采样保持器的作用和采样频率对拾取信号失真度的影响,了解香农定理;

3.了解定时计数器Intel8253和中断控制器Intel8259的原理、工作模式以及控制方式,训练控制定时器和中断控制器的方法,并学习如何编写中断程序。

4.熟悉X86汇编语言的程序结构和编程方法,训练深入芯片编写控制程序的编程能力。

二.实验项目:

1.完成0~5v的单极性输入信号的A/D转换,并与实际值(数字电压表的测量值)比较,确定误差水平。

要求全程至少10个点。

2.完成-5v~+5v的双极性输入信号的A/D转换,并与实际值(数字电压表的测量值)比较,确定误差水平。

要求全程至少20个点。

3.把0~FF的数据送入DAC0832并完成D/A转换,然后用数字电压表测量两个模拟量输出口(OUT1为单极性,OUT2双极性)的输出值,并与计算值比较,确定误差水平。

要求全程至少16个点。

三.仪器设备:

Aedk-ACT实验箱1套(附电源线1根、通信线1根、实验插接线若干、跳线子若干);

台式多功能数字表1台(附电源线1根、表笔线1付(2根)、);

PC机1台;

实验用软件:

Windows98+LcaACT(IDE)。

四.实验原理

一)ADC0809模块原理

1)功能简介

A/D转换器芯片

●8路模拟信号的分时采集

●片内有8路模拟选通开关,以及相应的通道抵制锁存用译码电路

●转换时间为100μs左右

2)内部结构

  ADC0809内部逻辑结构

图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换,这是一种经济的多路数据采集方法。

地址锁存与译码电路完成对A、B、C3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连。

右图即为通道选择表。

3)引脚功能

●IN7~IN0——模拟量输入通道

●IN7~IN0——模拟量输入通道

●ALE——地址锁存允许信号。

对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。

●START——转换启动信号。

START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。

本信号有时简写为ST.

●A、B、C——地址线。

通道端口选择线,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。

其地址状态与通道对应关系见表9-1。

●CLK——时钟信号。

ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。

通常使用频率为500KHz的时钟信号

●EOC——转换结束信号。

EOC=0,正在进行转换;EOC=1,转换结束。

使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。

●D7~D0——数据输出线。

为三态缓冲输出形式。

D0为最低位,D7为最高

●OE——输出允许信号。

用于控制三态输出锁存器向单片机输出转换得到的数据。

OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。

●Vcc——+5V电源。

●Vref——参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。

其典型值为+5V(Vref(+)=+5V,Vref(-)=-5V).

4)转换过程

连接线路后,在IN-0~IN-5中输入单极性电压信号,经ADC0809芯片后由D0~D7输出8位数字信号,变化范围为00H~FFH,通过汇编指令传入AL寄存器中,通过单步运行调试,调节输入电压观察并记录AX的变化数值。

输出的8位数字信号是输入值与VREF(+5V)之间的比例,即

通过该公式获得AD转换的理论值,与实验测得的数据进行比较。

双极性AD转换实验同理。

连接线路后,在IN-6~IN-7中输入单极性电压信号,经ADC0809芯片后由D0~D7输出8位数字信号,变化范围为00H~FFH,通过汇编指令传入AL寄存器中,通过单步运行调试,调节输入电压观察并记录AX的变化数值。

输出的8位数字信号是输入值与输出值之间有如下关系

通过该公式获得AD转换的理论值,与实验测得的数据进行比较。

二)DAC0832模块原理

1)功能简介

DAC0832是采用CMOS工艺制成的单片直流输出型8位数/模转换器。

●采样频率为八位的D/A转换器件

●转换时间为100μs左右

2)内部结构

它由倒T型R-2R电阻网络、模拟开关、运算放大器和参考电压VREF四大部分组成。

运算放大器输出的模拟量V0为:

 

由上式可见,输出的模拟量与输入的数字量( 

 )成正比,这就实现了从数字量到模拟量的转换。

一个8位D/A转换器有8个输入端(其中每个输入端是8位二进制数的一位),有一个模拟输出端。

输入可有28=256个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,而只能是256个可能值。

3)引脚功能

●DI0~DI7:

数据输入线,TLL电平。

●ILE:

数据锁存允许控制信号输入线,高电平有效。

●CS:

片选信号输入线,低电平有效。

●WR1:

为输入寄存器的写选通信号。

●XFER:

数据传送控制信号输入线,低电平有效。

●WR2:

为DAC寄存器写选通输入线。

●Iout1:

电流输出线。

当输入全为1时Iout1最大。

●Iout2:

电流输出线。

其值与Iout1之和为一常数。

●Rfb:

反馈信号输入线,芯片内部有反馈电阻.

●Vcc:

电源输入线  (+5v~+15v)

●Vref:

基准电压输入线  (-10v~+10v)

●AGND:

模拟地,摸拟信号和基准电源的参考地.

●DGND:

数字地,两种地线在基准电源处共地比较好.

4)转换过程

连接线路后,将要输出的8位数字信号值放入AL寄存器中,通过数据总线传到DAC0832芯片的DI0~DI7输入接口,DI0为低位,DI7为高位。

经过DAC0832芯片采样后,在OUT1中输出单极性电压值在OUT2中输出双极性电压值,使用多功能数字表测量并记录OUT1与OUT2中的值,将数据处理并分析误差。

从DAC0832原理和结构图中可以看出,数字信号的值和实际电压值并不一致,仅仅是输出值与基准值之间的一种比例关系。

单极性理论输出电压值与输入数值之间的关系如下

双极性理论输出电压值与输入值之间的关系如下

通过上述公式获得DA转换的理论值,与实验测得的数据进行比较。

五:

实验接线

本实验由实验箱提供现成的电路模块,需手工连接的线路如下:

实验1:

C4模块和B5模块作如图1所示连接:

(图1)单极性信号AD变换接线图

模拟输入部分有8路多路开关,可由3位地址输入A0、A1、A2的不同组合来选择(这三条地址信号可所存)。

主体部分是采用逐次逼近式的A/D转换电路,由CLK信号控制内部电路的工作,由START信号控制转换开始。

转换后的数字在内部锁存,然后输出。

其中START为启动命令,高电平有效。

由它启动以上芯片的A/D转换过程。

当转换完成,输出信号EOC低电平有效。

OE为输出允许信号,高电平有效。

当在此输入端共给一个有效信号,打开输出三态缓冲器,把转换后的结果输至数据总线。

ADC0809由接口A1结+5V与地实现单极性连接,ADC0809是八位模数转换器,输出信号为(00000000-11111111),将输出信号转换为十进制*5/255即为模拟信号的测量值,通过比较,计算误差。

实验2:

C4模块和B5模块作如图2所示连接:

(图2)双极性信号AD变换接线图

ADC0809由接口A6或A7接+5V与-5V实现双极性连接,ADC0809是八位模数转换器,输出信号为(00000000-11111111),将输出信号转换为(十进制*10/255-10)——即为模拟信号的测量值,通过比较,计算误差。

实验3:

实验电路不需要另外接线,只需用电压表测B1模块的OUT1和OUT2的输出电压值,如图3所示。

(图3)数据的DA变换实验接线图

DAC0832工作过程:

1CPU执行输出指令,输出8位数据给DAC0832;

2在CPU执行输出指令的同时,使ILE、/CS、/WR1三个控制信号端都有效,8位数据锁存在8位输入寄存器中;

3当/WR2、/XFER两个控制信号端都有效时,8位数据再次被锁存到8位DAC寄存器,这时8位D/A转换器开始工作,8位数据转换为相对应的模拟电流,从Iout1和Iout2输出。

依次改变输入信号,分别测量单极性和双极性电压。

由计算可得输出准确值,与测量值相比较即可得出误差。

六.实验步骤:

1.单极性输入信号的A/D转换:

.按线:

按六/实验1接线

.编程:

程序结构设计---程序框图设计---代码编辑----编译---链接

程序清单

CODESEGMENT

ASSUMECS:

CODE

START:

MOVDX,00A1H

MOVAL,01H

LOP:

OUTDX,AL

CALLDELAY

INAL,DX

JMPLOP

DELAYPROC

MOVCX,2

NOP

NOP

LOOP$

RET

DELAYENDP

CODEENDS

ENDSTART

.调试:

加载---调试

.运行:

.运行程序

.改变输入信电平值,记录转换结果(数据)

.结果:

y=5x/255

序号

转换数据

转换(计算)值

实测值

误差

1

0019H

0.490

0.496

-1.21%

2

0034H

1.020

1.015

0.49%

3

004AH

1.451

1.506

-3.65%

4

0067H

2.020

2.004

0.80%

5

007FH

2.490

2.493

-0.12%

6

009BH

3.039

3.003

1.20%

7

00B3H

3.510

3.507

0.08%

8

00CCH

4.000

3.998

0.05%

9

00E4H

4.471

4.470

0.02%

10

00F1H

4.725

4.708

0.36%

数据曲线对比图(系列1:

计算值,系列2:

实测值)

2.双极性输入信号的A/D转换:

.按线:

按六/实验2接线

警告:

如果双极性信号连在ADC的单极性输入端(IN0~IN5)很可能烧毁芯片。

.编程:

程序结构设计---程序框图设计---代码编辑----编译---链接

程序清单

CODESEGMENT

ASSUMECS:

CODE

START:

MOVDX,00A6H

MOVAL,01H

LOP:

OUTDX,AL

CALLDELAY

INAL,DX

JMPLOP

DELAYPROC

MOVCX,2

NOP

NOP

LOOP$

RET

DELAYENDP

CODEENDS

ENDSTART

.调试:

加载---调试

.运行:

.运行程序

.改变输入信电平值,记录转换结果(数据)

.结果:

y=10x/255-5

序号

转换数据

转换(计算)值

实测值

误差

1

0000H

-5.000

-4.725

-0.275

2

0013H

-4.255

-3.982

-0.243

3

002BH

-3.314

-3.025

-0.289

4

0043H

-2.373

-2.083

-0.290

5

005FH

-1.275

-1.047

-0.228

6

0078H

-0.294

-0.020

-0.274

7

0092H

0.725

1.001

-0.276

8

00ACH

1.745

2.007

-0.262

9

00C5H

2.725

3.016

-0.291

10

00DFH

3.745

4.006

-0.261

11

00F2H

4.647

4.723

-0.076

 

数据曲线对比图(系列1:

计算值,系列2:

实测值)

3.数据的D/A转换:

.按线:

不用接线。

.按线:

按六/实验2接线

警告:

如果双极性信号连在ADC的单极性输入端(IN0~IN5)很可能烧毁芯片。

.编程:

程序结构设计---程序框图设计---代码编辑----编译---链接

程序清单

CODESEGMENT

ASSUMECS:

CODE

START:

MOVDX,0000H

MOVAL,00H

LOP:

OUTDX,AL

CALLDELAY

ADDAL,11H

JMPLOP

DELAYPROC

MOVCX,2

NOP

NOP

LOOP$

RET

DELAYENDP

CODEENDS

ENDSTART

.调试:

加载---调试

.运行:

.运行程序

.改变输入的数据,记录转换后OUT1口和OUT2口的输出电平值。

.结果:

序号

输入数据

转换(计算)值

实测值

误差

OUT1口

OUT2口

OUT1口

OUT2口

OUT1口

OUT2口

1

00H

0.000

-5.000

0.001

-5.121

-0.001

0.121

2

11H

0.333

-4.333

0.320

-4.444

0.013

0.111

3

22H

0.667

-3.667

0.637

-3.775

0.030

0.108

4

33H

1.000

-3.000

0.954

-3.107

0.046

0.017

5

44H

1.333

-2.333

1.272

-2.437

0.061

0.104

6

55H

1.667

-1.667

1.590

-1.768

0.077

0.101

7

66H

2.000

-1.000

1.907

-1.110

0.093

0.110

8

77H

2.333

-0.333

2.224

-0.431

0.109

0.098

9

88H

2.667

0.333

2.542

0.243

0.125

0.090

10

99H

3.000

1.000

2.859

0.912

0.141

0.088

11

0AAH

3.333

1.667

3.176

1.580

0.157

0.087

12

0BBH

3.667

2.333

3.493

2.247

0.174

0.086

13

0CCH

4.000

3.000

3.811

2.916

0.189

0.084

14

0DDH

4.333

3.667

4.128

3.584

0.205

0.083

15

0EEH

4.667

4.333

4.445

4.251

0.222

0.082

16

0FFH

5.000

5.000

4.763

4.918

0.237

0.082

OUT1口数据曲线对比图(系列1:

计算值,系列2:

实测值)

 

OUT2口数据曲线对比图(系列1:

计算值,系列2:

实测值)

六.误差分析与实验结论

一)误差分析:

1.单极性输入信号的A/D转换的误差用的而是百分数表示,是因为单极性信号是一直增加的,用百分数相对误差表示结果更清新,可以看到误差相当小,从曲线图中也可看到两条曲线基本上重合,基本可以忽略不计,但是双极性输入信号的A/D转换和数据的D/A转换的误差用的是数值差来表示,是因为测得数据从负增加到正,要经过0,用百分数误差表示结果会很大,从曲线图中可以看到他们的曲线也基本重合,误差不大。

2.由于实验设备不精确而引起的系统误差,例如:

实验设备制作不精确,使用时间过长引起的设备老化,而引起的误差。

比如实验2中的误差都比较大,但是误差读是差不多的,这就很可能是设备的原因,设备输出的电压比标准的差0.2。

3.读数不精确引起的偶然误差。

在电压表读数未稳定时读数,或者由于电压表精确度不够,而造成的读数误差。

4.在处理数据时,由于取值以及计算精确度取值不够而造成的误差。

5.试验线路连接不稳定,或接触点电阻引起的误差。

二)实验结论:

在误差允许的范围内,ADC0809将0-5V的单级型电压或-5-5V的双极型电压转换为相应的八位二进制输出。

在误差允许范围内,DAC0832能将八位二进制数转化为相应的双极型和单级型电压输出。

七.实验总结

经过ADC0809模数转换和DAC0832数模转换实验,

1.对数模模数转换电路的原理有了深入的了解,模数转换电路是由逐渐逼近的方式完成转换的,数模转换是由分压电路实现的。

2.对汇编语言的编程的应用,有了更熟练的掌握,实验中三个汇编程序编程。

3.对于实验接口电路有了深入的了解,改变芯片需要改变相应的接口。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1