微机实验及课程设计——数模与模数转换

时间:2025-04-20

东南大学

《微机实验及课程设计》

实验报告

实验八

数模与模数转换

姓 名:学 号:专 业: 实 验 室: 计算机硬件技术 实验时间: 2010年06月1日 报告时间: 2010年06月2日 评定成绩: 审阅教师:

一. 实验目的与内容

1)了解数/模转换器的基本原理,掌握DAC0832 芯片的使用方法; 2)了解模/数转换器的基本原理,掌握ADC0809 芯片的使用方法。

二. 基本实验原理

(1)D/A 转换

① 8 位D/A 转换器DAC0832 的口地址为290H,输入数据与输出电压的关系为:

(UREF 表示参考电压,N 表示数数据),这里的参考电压为PC 机的+5V 电源。

② 产生锯齿波只须将输出到DAC0832 的数据由0 循环递增,产生正弦波可根据正弦函数建一个下弦数字量表,取值范围为一个周期,表中数据个数在16 个以上。 电路连接如下图所示:

图1 产生锯齿波和正弦波的程序流程图如下所示:

(2)A/D 转换

① ADC0809 的IN0 口地址为298H,IN1 口地址为299H。 ② IN0 单极性输入电压与转换后数字的关系为:

其中Ui 为输入电压,UREF 为参考电压,这里的参考电压为PC 机的+5V 电源。 ③ 一次A/D 转换的程序可以为:

MOV DX,口地址 OUT DX,AL ;延时 IN AL,DX

电路连接如下图所示:

;读取转换结果放在AL 中 ;启动转换

图2

程序流程图(含子程序流程图)如下所示:

(3)A/D转换曲线绘制流程图如下所示:

三. 方案实现与测试

(一)

、获取TPC 扩展卡 I/O 和存储基地址

直接在windows 下利用控制面板查看占用的存储和中断资源,可知: TPC设备内存范围: FDDFF000—FDDFF0FF 接口芯片输入输出范围: BC00—BCFF TPC设备输入输出范围: B800—B87F 接口芯片内存范围: FDC00000—FDCFFFFF

(二)、DAC 实验电路原理如图1所示,DAC0832 采用单缓冲方式,具有单双极性输入端(图中的Ua、Ub)。进入DEBUG 调试,输出命令(O 290 数据)输出数据给DAC0832,用万用表测量单极性输出端Ua 及双极性输出端Ub 的电压,验证数字与电压之间的线性关系。

实验现象:进入DEBUG调试,输出命令O B810 FF,用示波器观察单极性输出端Ua的电压,为从接地的0跳至大约-5V。输出命令O B810 80,用示波器观察,电压跳至大约原来的一半。同样,观察双极性输出端Ub的电压,输出数值的模与单极性的相同,符号相反。可得出结论:数字与电压之间存在线性关系。

(三)、分别编程产生锯齿波、正弦波电压波形(从Ub 输出,用示波器观察)。

1) 锯齿波参考程序见0832_sawtooth.asm 主要程序片段如下:

lll: mov al,cl out dx,al inc cl inc cl inc cl inc cl inc cl inc cl inc cl push dx

mov ah,06h mov dl,0ffh int 21h pop dx

jz lll mov ah,4ch int 21h

;cl 加1

;判断是否有键按下

;若无则转LLL ;返回DOS

程序分析:此片段中存在push dx 和pop dx两条指令,为了不影响地址的值,因为在判断是否有键按下时,使用了dl的空间,改变了里面的值,所以需要保存地址的值,进行入栈出栈。产生锯齿波的原因是每显示一次值加7,当加到256时,即cl=1111时,向ch进位,cl又从0开始计数,于是产生锯齿波。 2) 正弦波参考程序见0832_sinewave.asm 主要程序片段如下:

ll: mov si,offset sin ;置正弦波数据的偏移地址为SI

mov bh,32 ;一组输出32 个数据

lll: mov al,[si] ;将数据输出到D/A 转换器

mov dx,io0832a out dx,al mov ah,06h mov dl,0ffh int 21h jne exit mov cx,1 delay:

loop delay ;延时

inc si ;取下一个数据 dec bh

jnz lll ;若未取完32 个数据则转lll jmp ll

程序分析:此程序是将一个周期的数据存入一个数组中,再周期性地重复地取值,画出正弦波。本程序加了一个延时,注意了时序问题。

(四) ADC 实验电路原理图如图2,通过实验台左下角电位器RW1 输出0~5V直流电压送入ADC0809通道0(IN0),利用debug 的输出命令启动A/D转换器,输入命令读取转换结果,检查硬件是否正常,验证输入电压与转换后数字的关系。启动IN0 开始转换: O 0C818 0;读取转换结果: I 0C818。

调试:连接好电路后,输入指令:O B818 0 ; I B818,观察显示的结果。再转动电位器,再重复输入命令,观察显示的结果,发现输出的值会随着电位器的变化而变化。用示波器读取输入的电压值,观察大致

满足关系:。

(五)编程采集IN0 输入的电压,在屏幕上显示出转换后的数据(用16 进制数)。

参考程序见0809_io.asm

程序分析:送值至转换器转换与前面分析相同,主要是如何将转换的值显示在显示屏上。 in al,dx ;从A/D 转换器输入数据 分别显示高四位与低四位:

mov bl,al ;将AL 保存到BL mov cl,4

shr al,cl ;将AL 右移四位,使AL只保持高四位的值 call disp ;调显示子程序显示其高四位 mov al,bl

and al,0fh ;进行与运算,只保留低四位的值,高位为0 call disp ;调显示子程序显示其低四位 调用显示子程序: mov dl,al

cmp dl,9 jle ddd add dl,7 ddd: add dl,30h

mov ah,02 int 21h

;比较DL 是否>9

;若不大于则为'0'~'9',加30h 为其ASCII 码 ;否则为'A'~'F',再加7 ;显示 …… 此处隐藏:1396字,全部文档内容请下载后查看。喜欢就下载吧 ……

微机实验及课程设计——数模与模数转换.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219