本科实验报告
实验名称:
课程名称: 任课教师: 实验教师: 学生姓名: 学号/班级: 学院: 专业:
实验四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里面读取中断向量表的操作