- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北京理工大学微机原理实验报告四资料.doc
本科实验报告
实验名称: A/D和D/A转换
课程名称: 实验时间: 任课教师: 实验地点: 实验教师: 实验类型: □ 原理验证
■ 综合设计
□ 自主创新 学生姓名: 学号/班级: 组 号: 学 院: 同组搭档: 专 业: 成 绩:
实验四 A/D和D/A转换
一、 实验目的
1、了解A/D 转换的基本原理,掌握ADC0809 的使用方法。
2、了解D/A 转换的基本原理,掌握DAC0832 芯片的使用方法。
3、了解直流电机控制的基本方法。
二、 实验内容与步骤
(一)A/D 转换部分
1、接线:
2、实验电路原理图下图
通过实验台左下角电位器RW1 输出0~5V直流电压送入ADC0809 通道0(IN0),利用debug 的输出命令启动A/D转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。
启动IN0开始转换: Out 298H
读取转换结果: In 298H
3、用万用表测量 CLOCK、ADD-C、ADD-B、ADD-A 在实验系统上如何联系的。
4、编程按中断方式采集 IN0 输入的电压,在屏幕上显示出转换后的数据(用16 进制数)。
5、考虑如果采用 IN7 输入的电压,启动开始转换和读取转换结果的地址应该是多少。
6、按查询方式采集 IN0 输入的电压,软硬件如何实现。
编程方案
1、ADC0809 的IN0 口地址为298H。
2、IN0 单极性输入电压与转换后数字的关系为:
其中Ui 为输入电压,UREF 为参考电压,这里的参考电压为+5V电源。
3、一次A/D 转换的程序可以为
MOV DX, Port
OUT DX,AL ;启动转换
;延时
IN AL,DX ;读取转换结果放在AL 中
(二) D/A 转换部分
1、接线:CS /0832 接 Y2 /IO 地址
用万用表测量 WR2 和XFER 在实验系统上如何联系的。
2、实验电路原理如图2,DAC0832 采用单缓冲方式,具有单双极性输出端(图中的Ua、
Ub),利用debug 输出命令(Out 290 数据)输出数据给DAC0832,用万用表测量单极性输出端
Ua 及双极性输出端Ub 的电压,验证数字与电压之间的线性关系。
3、编程产生以下波形(从Ub 输出,用示波器观察)
(1)锯齿波
(2)正弦波
编程方案
1、8 位D/A 转换器DAC0832 的口地址为290H,输入数据与输出电压的关系为:
(UREF 表示参考电压,N 表示数据),这里的参考电压为+5V电源。
2、产生锯齿波只须将输出到DAC0832 的数据由0 循环递增。产生正弦波可根据正弦函
数建一个下弦数字量表,取值范围为一个周期,表中数据个数在16 个以上。
3、流程图:
(三) 直流电机转速控制
1、按图 5 线路接线:
CS /0832 接 Y2 /IO 地址
UB /0832 接 直流电机DJ
CS /8255 接 Y1 /IO 地址
PC7~PC0 /8255 接 K7~K0 /逻辑电平开关
2、编程利用DAC0832 输出一串脉冲,经放大后驱动小直流电机,利用开关K0~K5 控
制改变输出脉冲的电平及持续时间,达到使电机加速,减速之目的。
实验原理简述
小直流电机的转速是由 Ub 输出脉冲的占空比来决定的,正向占空比越大转速越快,反
之越慢。见图6 例:
在本实验中,模拟量输出 Ub 为双极性,当输入数字量小于80H 时输出为负,输入等于80H 时为0V,输入大于80H 时输出为正。因而本实验中,DAC0832 输入数字量只有2 个(80H和FFH),通过不同的延迟时间达到改变小电机转速的目的。
程序框图
编程方案
通过给 DAC0832 输入80H 时,Ub 为0V,给DAC0832 输入FFH 时,Ub 为5V,来控制加给小电机的脉冲电平,通过控制两段延迟时间,来控制占空比。例如,我们给两段延迟系数都为0400h,来得到占空比接近于1 的脉冲。
三、实验代码及注释
1、AD转换
DATA SEGMENT
INT0B DW 2 DUP(?)
IMR DB ?
P_AD DW 298H
TAB DB '0123456789ABCDEF'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MAIN PROC PAR
MOV AX,DATA
MOV DS,AX
文档评论(0)