实验四 AD和DA转换 下载本文

内容发布更新时间 : 2024/6/16 20:41:21星期一 下面是文章的全部内容请认真阅读。

本科实验报告

实验名称:

课程名称: 任课教师: 实验教师: 学生姓名: 学号/班级: 学院: 专业:

实验四A/D和D/A转换

计算机原理与应用 焦奥 信息与电子学院 实验时间: 实验地点: 10-103 □原理验证 实验类型: √综合设计 □自主创新 组号: 同组搭档: 成绩: 实验四A/D和D/A的转换

一、 实验目的

1. 了解A/D 转换的基本原理,掌握ADC0809 的使用方法。 2. 了解D/A 转换的基本原理,掌握DAC0832 芯片的使用方法。 3. 了解直流电机控制的基本方法。

二、 实验原理和内容

(一)A/D 转换部分- 1、接线(参考):

CS /0809 接Y3 /IO 地址 IN0 /0809 接0~5V /直流信号 EOC 接总线的IRQ

2、实验电路原理图如图1。通过实验台左下角电位器RW1 输出0~5V直流电压送入 ADC0809 通道0(IN0),利用debug 的输出命令启动A/D转换器,输入命令读取转换结 果,验证输入电压与转换后数字的关系。

启动IN0 开始转换: Out 298H 读取转换结果: In 298H

图1模数转换电路

3、用万用表测量 CLOCK、ADD-C、ADD-B、ADD-A 在实验系统上如何联系的?

4、编程按中断方式采集 IN0 输入的电压,在屏幕上显示出转换后的数据(用16 进制数)。 5、考虑如果采用 IN7 输入的电压,启动开始转换和读取转换结果的地址应该是多少? 6、按查询方式采集 IN0 输入的电压,软硬件如何实现?

(二)D/A 转换部分

1、接线: CS /0832 接 Y2 /IO 地址

用万用表测量 WR2 和XFER 在实验系统上如何联系的?

2、实验电路原理如图2,DAC0832 采用单缓冲方式,具有单双极性输出端(图中的Ua、 Ub),利用debug 输出命令(Out 290 数据)输出数据给DAC0832,用万用表测量单极性输出端 Ua 及双极性输出端Ub 的电压,验证数字与电压之间的线性关系。 3、编程产生以下波形(从Ub 输出,用示波器观察) (1)锯齿波 (2)正弦波

图2

4、程序参考流程图

图3锯齿波

图4正弦波

(三)直流电机转速控制 1、按图 5 线路接线:

CS /0832 接 Y2 /IO 地址 UB /0832 接直流电机DJ CS /8255 接 Y1 /IO 地址

PC7~PC0 /8255 接 K7~K0 /逻辑电平开关

2、编程利用DAC0832 输出一串脉冲,经放大后驱动小直流电机,利用开关K0~K5 控制改变输出脉冲的电平及持续时间,达到使电机加速,减速之目的。

图5直流电机控制

3、参考程序框图

三、 实验结果

(一) A/D 转换部分 data segment

int0B dw 2 dup(?) ;中断向量表 IMR db ? ;中断屏蔽字

p_ad dw 298h ;ad转换接口地址为298h

tab db '0123456789ABCDEF' ;这是用来制作转换结果的,先把各种16进制的ASCII码存放在首地址是tab的一个地方,后面只要加偏移量就可以输出ASCII码,[bx+1]指向'1',[bx+3]指向'3' data ends

code segment

assume cs:code,ds:data main proc far mov ax,data mov ds,ax

cli ;关中断,修改中断向量表 push es ;保护es和bx中向量 push bx

mov ah,35h ;读取要修改的0B中断向量,35h是int21h里面读取中断向量表的操作