计算机原理与接口技术实验4.docx
- 文档编号:25593019
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:14
- 大小:592.53KB
计算机原理与接口技术实验4.docx
《计算机原理与接口技术实验4.docx》由会员分享,可在线阅读,更多相关《计算机原理与接口技术实验4.docx(14页珍藏版)》请在冰豆网上搜索。
计算机原理与接口技术实验4
本科实验报告
实验名称:
A/D和D/A转换
课程名称:
计算机原理与接口技术实验
实验时间:
2014.6.9
任课教师:
张笈
实验地点:
信息系统及安全
对抗实验中心
实验教师:
高平
实验类型:
□原理验证
■综合设计
□自主创新
学生姓名:
陶砺
学号/班级:
1120111332/05411101
组号:
学院:
信息与电子学院
同组搭档:
韩煜祺
专业:
电子科学与技术
成绩:
实验四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开始转换:
Out298H
读取转换结果:
In298H
图1模数转换电路
3、编程采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数)。
(二)D/A转换部分
1、接线:
CS/0832
接
Y2/IO地址
2、实验电路原理如图2,DAC0832采用单缓冲方式,具有单双极性输出端(图中的Ua、Ub),利用debug输出命令(Out290数据)输出数据给DAC0832。
3、编程产生以下波形(从Ub输出,用示波器观察)
(1)锯齿波
(2)正弦波
图2
3、实验流程图
三、实验结果及说明
(一)A/D转换部分
运行程序之后,对话框内不断刷新数字,这是由于代码中显示段的DISP子程序不断运行,显示AD的转换结果。
在拧旋钮之后,显示的数值发生了变化,这是因为电压发生了变化,在进行AD转换后的结果也发生了变化,于是显示的结果也发生了改变。
然而由于没有防抖功能,所以即使没有拧旋钮,数值也会有微小的变化,所以本次实验的A/D代码可以加上防抖操作进行改进,即在AD转换数值不发生大于设定的阈值变化时,输出结果不发生改变。
(二)D/A转换部分
该部分即预先将设定的代码写入程序,如锯齿波部分的代码:
如果没有按键中止该部分代码运行时,执行的指令一直为输出递增的序列,由于计数到一定值是会发生溢出,所以会跳到较小值,即0FFH的下一位为FF+10,也就是说,把0FFH送到输出端后,下一次送到输出端的数将为09H。
这样,就产生了锯齿波的波形。
对于正弦波,在DATASEGMENT中有前置数据
该数据即为正弦波相关部分的数值,才程序运行时,循环地将此部分的数据进行DA转换输出到Ua/Ub即可。
实验测得的波形如下
1.锯齿波
2.正弦波
从图像中可以看出,输出的波形符合要求。
四、实验心得与体会
本次实验正如老师上实验课的时候说的那样,不是很难。
由于这是这门课程的最后一次实验,所以我们组在课前对AD/DA这方面的内容进行了深入的研究探讨,对相关的原理也了解的比较透彻,对实验的代码也实现做好了准备。
在做实验的过程中,接线也比较简单,AD实验由于我们设置了电脑屏幕显示数值所以不需要借助万用表。
在DA实验中,进行的也很顺利,也算是这门课的实验画上了圆满的句号。
整体上说,这么课的实验和课程内容紧密结合,加深了我对这门课及相应的芯片的了解,对硬件接口技术有了更深一步的认识,理论与实践相结合的教学方式也使加强了我对相关知识的掌握,受益颇深。
附:
实验代码
1.使用0809进行AD转换
DATASEGMENT
INT0BDW2DUP(?
)
IMRDB?
P_ADDW298H
TABDB'0123456789ABCDEF'
DATAENDS
SSEGMENTSTACK'STACK'
DB128DUP(?
)
SENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
S
MAINPROCFAR
MOVAX,DATA
MOVDS,AX
CLI;修改中断向量表
PUSHES
PUSHBX
MOVAH,35H;保护原中断向量
MOVAL,0BH
INT21H
MOVINT0B,ES
MOVINT0B+2,BX
POPBX
POPES
PUSHDS
PUSHDX
MOVDX,OFFSETDISP;设置新的中断向量
PUSHBX
MOVBX,SEGDISP
MOVDS,BX
POPBX
MOVAX,250BH
INT21H
POPDX
POPDS
;8259清除0BH号中断屏蔽位
INAL,21H
MOVIMR,AL
ANDAL,0F7H
OUT21H,AL
;启动AD转换
NEXT:
MOVDX,P_AD
MOVAL,0
OUTDX,AL
;等待中断,并检测是否有按键
PUSHCX
MOVCX,100
LOOP$
POPCX
STI
MOVAH,1
INT16H
JZNEXT
;恢复8259中断屏蔽位
CLI
MOVAL,IMR
OUT21H,AL
;恢复中断向量表
PUSHDX
PUSHDS
MOVDX,INT0B
MOVDS,DX
MOVDX,INT0B+2
MOVAX,250BH
INT21H
POPDS
POPDX
MOVAX,4C00H
INT21H
MAINENDP
DISPPROCFAR
PUSHAX
PUSHDX
MOVDX,P_AD;读入AD转换结果
INAL,DX
MOVAH,0;AH中为低位,AL中为高位
SHLAX,4
SHRAL,4
PUSHAX;输出高位
MOVAL,AH
LEABX,TAB
XLAT
MOVDL,AL
MOVAH,2
INT21H
POPAX
LEABX,TAB;输出低位
XLAT
MOVDL,AL
MOVAH,2
INT21H
MOVDL,0DH;输出回车
MOVAH,2
INT21H
MOVDL,0AH;输出回车
MOVAH,2
INT21H
MOVAL,20H
OUT20H,AL
POPDX
POPAX
IRET
DISPENDP
CODEENDS
ENDMAIN
2.使用8032进行DA转换
1)锯齿波
DATASEGMENT
ADD_DADW290H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MAINPROCFAR
MOVAX,DATA
MOVDS,AX
MOVDX,ADD_DA
MOVAL,0
NEXT:
OUTDX,AL;向DA送数据
ADDAL,10
MOVCX,5;延时
LOOP$
MOVAH,1;检测按键
INT16H
JZNEXT
MOVAH,4CH
INT21H
MAINENDP
CODEENDS
ENDMAIN
2)正弦波
DATASEGMENT
ADD_DADW290H
LENDB32
DATA_INDB80h,96h,0aeh,0c5h,0d8h,0e9h,0f5h,0fdh
DB0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96h
DB80h,66h,4eh,38h,25h,15h,09h,04h
DB00h,04h,09h,15h,25h,38h,4eh,66h
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MAINPROCFAR
MOVAX,DATA
MOVDS,AX
MOVDX,ADD_DA
BEGIN:
MOVBH,LEN
LEASI,DATA_IN
NEXT:
MOVAL,[SI]
OUTDX,AL;向DA送数据
INCSI
DECBH
MOVCX,1;延时
LOOP$
CMPBH,0;一个周期已完成
JZBEGIN
MOVAH,1;检测按键
INT16H
JZNEXT
MOVAH,4CH
INT21H
MAINENDP
CODEENDS
ENDMAIN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 原理 接口 技术 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)