ADDA实验报告.docx
《ADDA实验报告.docx》由会员分享,可在线阅读,更多相关《ADDA实验报告.docx(19页珍藏版)》请在冰豆网上搜索。
ADDA实验报告
四川大学
《微机原理与接口技术实验报告》
——AD及DA实验
学院:
电气信息
班级:
105班
专业:
电气工程及自动化
小组成员:
刘定乾1143031085
金荣雁1143031262
曾梦迪1142032120
陈春霖1143031281
张芮1143031295
王治明1143031104
张程嘉1143031200
吴思婕1143031451
[本实验运用A/D芯片ADC0809和D/A芯片DAC0832,程序语言采用汇编,仪器采用Aedk-ACT实验箱。
]
一、实验目的:
1.了解A/D芯片ADC0809和D/A芯片DAC0832的电气性能;外围电路的应用性搭建及有关要点和注意事项;与CPU的接口和控制方式;相关接口参数的确定等;
2.了解数据采集系统中采样保持器的作用和采样频率对拾取信号失真度的影响,了解香农定理;
3.了解定时计数器Intel8253和中断控制器Intel8259的原理、工作模式以及控制方式,训练控制定时器和中断控制器的方法,并学习如何编写中断程序。
4.熟悉X86汇编语言的程序结构和编程方法,训练深入芯片编写控制程序的编程能力
二、仪器设备:
Aedk-ACT实验箱1套(附电源线1根、通信线1根、实验插接线若干、跳线子若干);
台式多功能数字表1台(附电源线1根、表笔线1付(2根)、);
PC机1台;
实验用软件:
Windows98+LcaACT(IDE)。
三、实验内容:
1.完成0~5v的单极性输入信号的A/D转换,并与实际值(数字电压表的测量值)比较,确定误差水平。
要求全程至少10个点。
2.完成-5v~+5v的双极性输入信号的A/D转换,并与实际值(数字电压表的测量值)比较,确定误差水平。
要求全程至少20个点。
3.把0~FF的数据送入DAC0832并完成D/A转换,然后用数字电压表测量两个模拟量输出口(OUT1为单极性,OUT2双极性)的输出值,并与计算值比较,确定误差水平。
要求全程至少16个点。
4.编程控制DAC0832,以实现一个正三角波输出,用IDE自带的软件示波器观察输出波形。
要求:
频率可调;幅值可调。
5.编程实现交流信号的采集与输出,包括对ADC、SHA、DAC的协调控制,并可用外部脉冲信号控制采样频率。
用IDE自带的软件示波器察看输出波形。
要求:
尽可能地跟踪输入信号,波形及相位失真小。
(一)ADC0809模块原理
1)功能简介
A/D转换器芯片
●8路模拟信号的分时采集
●片内有8路模拟选通开关,以及相应的通道抵制锁存用译码电路
●转换时间为100μs左右
2)内部结构
ADC0809内部逻辑结构
图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换,这是一种经济的多路数据采集方法。
地址锁存与译码电路完成对A、B、C3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连。
右图即为通道选择表。
3)引脚功能
●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的变化数值。
(二)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:
数字地,两种地线在基准电源处共地比较好.
(三)、实验步骤
实验一:
单极性输入信号的A/D转换:
1.按下图接线
2.编程:
程序结构设计---程序框图设计---代码编辑----编译---链接
3.调试:
加载---调试
4.运行:
.运行程序
.改变输入信号的电平值,记录转换结果(数据)
5.结果:
单极性信号AD变换数据
序号
转换数据
理论转换值(V)
实测值(V)
误差(V)
1
00
0
0.006
-0.006
2
08
0.157
0.156
0.001
3
10
0.314
0.308
0.006
4
1C
0.549
0.531
0.018
5
24
0.706
0.702
0.004
6
3C
1.176
1.172
0.004
7
51
1.588
1.578
0.01
8
6D
2.137
2.118
0.019
9
9D
3.078
3.057
0.021
10
E9
4.569
4.546
0.023
11
F7
4.843
4.819
0.024
6.曲线:
理论值:
实测值:
误差:
实验二、双极性输入信号的A/D转换:
1.接线
◆警告:
如果双极性信号连在ADC的单极性输入端(IN0~IN5)很可能烧毁芯片
2.编程:
程序结构设计---程序框图设计---代码编辑----编译---链接
3.调试:
加载---调试
4.运行:
.运行程序
.改变输入信号的电平值,记录转换结果(数据)
5.实验数据:
双极性信号AD变换数据
序号
转换数据
理论转换值(V)
实测值(V)
误差(V)
1
02
-4.922
-4.73
-0.192
2
0E
-4.451
-4.34
-0.111
3
1B
-3.941
-3.83
-0.111
4
29
-3.392
-3.254
-0.138
5
33
-3
-2.851
-0.149
6
44
-2.333
-2.262
-0.071
7
50
-1.863
-1.73
-0.133
8
5C
-1.392
-1.288
-0.104
9
65
-1.039
-0.866
-0.173
10
7D
-0.098
0.047
-0.145
11
90
0.647
0.751
-0.104
12
96
0.882
0.98
-0.098
13
9A
1.039
1.175
-0.136
14
A4
1.431
1.541
-0.11
15
B1
1.941
2.064
-0.123
16
BD
2.412
2.54
-0.128
17
CC
3
3.105
-0.105
18
D9
3.51
3.604
-0.094
19
E1
3.824
3.936
-0.112
20
F7
4.686
4.831
-0.145
6.曲线:
理论值:
实测值:
误差:
实验三、数据的D/A转换:
1.按线:
不用接线。
2.编程:
程序结构设计---程序框图设计---代码编辑----编译---链接
3.调试:
加载---调试
4.运行:
.运行程序
.改变输入的数据,记录转换后OUT1口和OUT2口的输出电平值
5.实验数据:
数据的DA转换
序号
输入数据
转换(计算)值
实测值
误差
OU1
OUT2
OU1
OUT2
OU1
OUT2
1
00
0
-5
-0.026
-5.168
0.026
0.168
2
10
0.314
-4.373
0.269
-4.536
0.045
0.163
3
20
0.627
-3.745
0.566
-3.909
0.061
0.164
4
30
0.941
-3.118
0.864
-3.283
0.077
0.165
5
40
1.255
-2.49
1.165
-2.655
0.09
0.165
6
50
1.569
-1.863
1.443
-2.065
0.126
0.202
7
60
1.882
-1.235
1.734
-1.450
0.148
0.215
8
70
2.196
-0.608
2.032
-0.836
0.164
0.228
9
80
2.51
-0.02
2.331
-0.189
0.179
0.169
10
90
2.824
0.647
2.629
0.441
0.195
0.206
11
A0
3.137
1.275
2.934
1.080
0.203
0.195
12
B0
3.451
1.902
3.222
1.712
0.229
0.19
13
C0
3.765
2.529
3.524
2.322
0.241
0.207
14
D0
4.078
3.157
3.820
2.943
0.258
0.214
15
E0
4.392
3.784
4.110
3.558
0.282
0.226
16
F0
4.706
4.411
4.401
4.189
0.305
0.222
五、结果误差分析
由实验数据曲线可以看到,理论值曲线和实测值曲线基本重合,故本实验中A/D转换和双极性输入信号的A/D转换误差都很小,下面是实验中可能导致出现误差的一些因素。
1、由于实验设备老化、制造工艺等问题,可能造成误差。
2、人为操作中的不规范操作可能造成误差。
3、DAC0832本身是以价格低廉,接口简单著称的。
其分辨率不高为0.39%,本身还带有线性误差,所以用DAC0832进行实验必然会产生一些误差。
4、在处理实验数据时,由于取值以及计算精确度值不够可能会造成误差。
六、实验总结及心得:
本次实验是用A/D芯片ADC0809完成0~5V的单极性输入信号的A/D转换和-5V~+5V的双极性输入信号的A/D转换,之后再把0~FF的数据送入D/A芯片DAC0832并完成D/A转换。
在单极性与双极性A/D转换后,我们用将十六进制理论值转化为十进制理论值,并与实际值(数字电压表的测量值)比较后,误差较小,认为可以实现A/D转换。
在D/A转换中,我们用数字电压表测量两个模拟量输出口(OUT1为单极性,OUT2双极性)的输出值,与实际值(数字电压表的测量值)比较后,误差较小,认为可以实现D/A转换,实验成功。
实验过程中,我们在程序的理解上遇到一些问题,以致没能进行下载运行,在小组成员的讨论与老师的帮助下,我们顺利完成程序的修改与下载,数据的测量。
通过本实验我们了解了A/D芯片ADC0809和D/A芯片DAC0832的电气性能,掌握了A/D,D/A转换的实验原理,完成了汇编语言与接口技术的衔接,对汇编语言程序设计有了更深一步的理解
附件:
1、程序流程图及清单:
1).单极性输入信号的A/D转换:
Codesegment
Assumecs:
code
Start:
movedx,00A1H
Moveal,01H
Outdx,al
Calldelay
Inal,dx
Jmpstart
Delayproc
Movecx,0100H
Loop$
Ret
Delayendp
Codeends
Endsstart
2).双极性输入信号的A/D转换:
Codesegment
Assumecs:
code
Start:
movedx,00A7H
Moveal,01H
Outdx,al
Calldelay
Inal,dx
Jmpstart
Delayproc
Movecx,0100H
Loop$
Ret
Delayendp
Codeends
Endsstart
3).数据的D/A转换:
codesegment
assumecs:
code
start:
movedx,0000H
moveal,00H
L:
outdx,al
Calldelay
Addal,11H
JmpL
Delayproc
Movecx,0100H
Loop$
Ret
Delayendp
Codeends
Endstart
。