东南大学微机原理实验8.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
东南大学微机原理实验8

微机实验报告—— 实验八 数模与模数转换 实验时间:2010.6.3 实验人:戴逸张莎指导老师:严如强 【简介】 1、实验目的: 1)了解数/模转换器的基本原理,掌握DAC0832 芯片的使用方法; 2)了解模/数转换器的基本原理,掌握ADC0809 芯片的使用方法。 2、实验内容: 1)基本实验内容和要求 (1)DAC 实验电路原理如图3.9-1,DAC0832 采用单缓冲方式,具有单双极性输入端(图中的Ua、Ub)。进入DEBUG 调试,输出命令(O 290 数据)输出数据给DAC0832,用万用表测量单极性输出端Ua 及双极性输出端Ub 的电压,验证数字与电压之间的线性关系。 (2)分别编程产生锯齿波、正弦波电压波形(从Ub 输出,用示波器观察)。 (3) ADC 实验电路原理图如图3.9-2,通过实验台左下角电位器RW1 输出0~5V直流电压送入ADC0809通道0(IN0),利用debug 的输出命令启动A/D转换器,输入命令读取转换结果,检查硬件是否正常,验证输入电压与转换后数字的关系。启动IN0 开始转换: O 0C818 0;读取转换结果: I 0C818。 (4) 编程采集IN0 输入的电压,在屏幕上显示出转换后的数据(用16 进制数)。 (5) 将JP3 的1、2 短接,使IN1 处于双极性工作方式,并给IN1 输入一个低频交流信号(幅度为±5V),编程采集这个信号数据并在屏幕上显示波形。 3、选作与探索 1)在高性能系统中,往往需要精确定时启动采样,同时利用ADC 转换结束信号(EOC)申请中断处理,试设计采样系统电路,并编程实现上述基本模数转换功能; 2)同样DAC 波形发生时也要求精确定时,请将8253 定时中断引入,编程并实现之; 3)参考装置资料和图3.9-7 线路,编程实现数字录音器。连接电路,将声传感器接J2,把代表语音的电信号送给ADC0809 通道2(IN2);D/A 转换器的输出端通过K8 跳线接喇叭。编程以每秒钟5000 次的速率采集IN2 输入的语音数据并存入内存,共采集60000 个数据(录12 秒),然后再以同样的速率将数据送DAC0832 使喇叭发声(放音) 4、完成情况:完成必做程序设计和部分选作实验并做了相关讨论,上网查找了相关资料。 【基本原理】 (1)D/A 转换 ① 8 位D/A 转换器DAC0832 的口地址为290H,输入数据与输出电压的关系为: Ua=-UREF*N/256 Ub=UREF*N/128-5 (UREF 表示参考电压,N 表示数数据),这里的参考电压为PC 机的+5V 电源。 ② 产生锯齿波只须将输出到DAC0832 的数据由0 循环递增,产生正弦波可根据正弦函数建一个下弦数 字量表,取值范围为一个周期,表中数据个数在16 个以上。 参考流程图如图3.9-3 和3.9-4 所示。 (2)A/D 转换 ① 图3.9-2 中ADC0809 的IN0 口地址为298H,IN1 口地址为299H。 ② IN0 单极性输入电压与转换后数字的关系为: N=Ui/(UREF/256) 其中Ui 为输入电压,UREF 为参考电压,这里的参考电压为PC 机的+5V 电源。 ③ 一次A/D 转换的程序可以为: MOV DX,口地址 OUT DX,AL ;启动转换 ;延时 IN AL,DX ;读取转换结果放在AL 中 【程序流程和编程实现】 DA转换: 生成锯齿波: 1、修改I/O地址: ioport equ 0b800h-0280h 2、生成锯齿波循环体(通过数字的循环线性递增生成锯齿波): lll: mov al,cl out dx,al inc cl ;cl 加1 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;有按键按下就退出到DOS 理论结果: 从键盘输入一个字符,程序将其ASCII码加1对应的字符输出。(原字符也会输出) 2、如果我们需要连续输出键盘读入的字符,程序流程图如下: 生成正弦波: 1、修改I/O地址: ioport equ 0b800h-0280h 2、生成正弦波循环体: 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 ;延时

您可能关注的文档

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档