微机实验报告.doc_第1页
微机实验报告.doc_第2页
微机实验报告.doc_第3页
微机实验报告.doc_第4页
微机实验报告.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机实验及课程设计实验报告 学号 08009407 东南大学微机实验及课程设计实验报告实验八数模与模数转换姓 名: 李晓琴 学 号: 08009407 专 业: 自动化 实 验 室: 计算机硬件技术 实验时间: 2010年05月17日 报告时间: 2010年05月20日评定成绩: 审阅教师: 一. 实验目的与内容1. 实验目的 1)了解数/模转换器的基本原理,掌握DAC0832芯片的使用方法; 2)了解模/数转换器的基本原理,掌握ADC0809芯片的使用方法。2. 基本实验内容和要求 (1)DAC实验电路原理如图1,DAC0832采用单缓冲方式,具有单双极性输入端(图中的Ua、Ub)。进入DEBUG调试,输出命令(O 290 数据)输出数据给DAC0832,用万用表测量单极性输出端a及双极性输出端b的电压,验证数字与电压之间的线性关系。(2)分别编程产生锯齿波、正弦波电压波形(从Ub输出,用示波器观察)。(3)ADC实验电路原理图如图2, 通过实验台左下角电位器RW1输出05直流电压送入ADC0809通道0(IN0),利用debug的输出命令启动/转换器,输入命令读取转换结果,检查硬件是否正常,验证输入电压与转换后数字的关系。启动IN0开始转换: O 0C818 0;读取转换结果: I 0C818。(4)编程采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数)。(5)将JP3的1、2短接,使IN1处于双极性工作方式,并给IN1输入一个低频交流信号(幅度为),编程采集这个信号数据并在屏幕上显示波形。二. 基本实验原理1. 实验原理:(1)D/A转换 8位D/A转换器DAC0832的口地址为290H,输入数据与输出电压的关系为:(UREF表示参考电压,N表示数数据),这里的参考电压为PC机的+V电源。 产生锯齿波只须将输出到DAC0832的数据由0循环递增,产生正弦波可根据正弦函数建一个下弦数字量表,取值范围为一个周期,表中数据个数在16个以上。(2)A/D转换 图2中ADC0809的IN0口地址为298H,IN1口地址为299H。 IN0单极性输入电压与转换后数字的关系为其中Ui为输入电压,UREF为参考电压,这里的参考电压为PC机的+V电源。 一次A/D转换的程序可以为: MOV DX,口地址 OUT DX,AL ;启动转换 ;延时 IN AL,DX ;读取转换结果放在AL中2. 关键电路原理图:图一 DAC0832基本实验电路图二 ADC0809基本实验电路3. 主要程序框图: 图3 锯齿波发生程序流程图 图4 正弦波发生程序流程图 图五 ADC0809数据转换和数据显示程序 图六 A/D转换曲线绘制流程图三. 方案实现与测试1. 实验步骤:(1)按电路图1接线,DAC0832采用单缓冲方式,具有单双极性输入端(图中的Ua、Ub)。(2)进入DEBUG调试,输出命令(O 290 数据)输出数据给DAC0832,用万用表测量单极性输出端a及双极性输出端b的电压,验证数字与电压之间的线性关系。(3)分别编程产生锯齿波、正弦波电压波形(从Ub输出,用示波器观察)。(4)按ADC实验电路图(图2),通过实验台左下角电位器RW1输出05直流电压送入ADC0809通道0(IN0)(5)利用debug的输出命令启动/转换器,输入命令读取转换结果,检查硬件是否正常,验证输入电压与转换后数字的关系。(6)启动IN0开始转换: O 0C818 0;读取转换结果: I 0C818。编程采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数)。(5)将JP3的1、2短接,使IN1处于双极性工作方式,并给IN1输入一个低频交流信号(幅度为),编程采集这个信号数据并在屏幕上显示波形。2. 关键程序片段:(1) DA实验-正弦波发生程序:1data segmentioportequ 0e000h-0280hio0832aequ ioport+290hsindb 80h,96h,0aeh,0c5h,0d8h,0e9h,0f5h,0fdhdb 0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96hdb 80h,66h,4eh,38h,25h,15h,09h,04hdb 00h,04h,09h,15h,25h,38h,4eh,66h ;正弦波数据data endsstacks segment stack db 100 dup (?)stacks endscode segment assume cs:code,ds:data,ss:stacksstart:mov ax,stacksmov ss,axmov ax,datamov ds,axll:mov si,offset sin ;置正弦波数据的偏移地址为SImov bh,32 ;一组输出32个数据lll:mov al,si ;将数据输出到D/A转换器mov dx,io0832aout dx,almov ah,06hmov dl,0ffhint 21hjne exitmov cx,1delay:loop delay ;延时inc si ;取下一个数据dec bhjnz lll ;若未取完32个数据则转llljmp llexit:mov ah,4ch ;退出int 21hcode endsend start(2) AD实验- ADC0809数据转换和数据显示程序(主程序,显示子程序)代码段:code segment assume cs:code,ss:stacksmain proc farstart:mov ax,stacksmov ss,axmov dx,io0809a ;启动A/D转换器out dx,almov cx,0ffh ;延时delay:loop delayin al,dx ;从A/D转换器输入数据mov bl,al ;将AL保存到BLmov cl,4shr al,cl ;将AL右移四位call disp ;调显示子程序显示其高四位mov al,bland al,0fhcall disp ;调显示子程序显示其低四位mov ah,02mov dl,20h ;加回车符int 21hmov dl,20hint 21hpush dxmov ah,06h ;判断是否有键按下mov dl,0ffhint 21hpop dxje start ;若没有转STARTmov ah,4ch ;退出int 21hmain endpdisp proc near ;显示子程序mov dl,alcmp dl,9 ;比较DL是否9jle ddd ;若不大于则为0-9,加30h为其ASCII码add dl,7 ;否则为A-F,再加7ddd: add dl,30h ;显示mov ah,02int 21hretdisp endpcode endsend start(3) AD实验-A/D转换曲线绘制程序:ioportequ 0e000h-0280hio0809bequ ioport+299hstacks segment stack db 100 dup (?)stacks endscode segment assume cs:code,ss:stacksmain proc farstart:mov ax,stacksmov ss,axmov ax,0012h ;设屏幕显示方式为VGA 640*480模示int 10hand cx,0 ;cx为横坐标draw:mov dx,io0809b ;启动A/D转换器通道1out dx,almov bx,500 ;延时delay:dec bxjnz delayin al,dx ;读入数据mov ah,0mov dx,368 ;dx为纵坐标sub dx,axmov al,0ah ;设置颜色mov ah,0ch ;画点int 10hcmp cx,639 ;一行是否满jz start ;是则转startinc cx ;继续画点push dxmov ah,06h ;是否有键按下mov dl,0ffhint 21hpop dxje draw ;无,则继续画点mov ax,0003 ;有恢复屏幕为字符方式int 10hmov ah,4ch ;返回DOSint 21hmain endpcode endsend start微机实验及课程设计实验报告 学号 61008133四提高与创新研究产生一个正弦波的数据可取32个(小于亦可),不同频率的区别,可通过调节向A/D转换器输出数据的时间间隔,例如:发“1”频率为261.1Hz周期为1/261.13.83.ms,输出数据的时间间隔为3.83/320.12ms,定时时间可以由8253配合8255实现,按下某键后发音时间的长短可以由发出的正弦波的个数多少来控制。程序编写如下:data segmentioportequ 0e000h-0280hio0832aequ ioport+290hdata1 db 80h,96h,0aeh,0c5h,0d8h,0e9h,0f5h,0fdh ;正弦波数据数据区db 0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96hdb 80h,66h,4eh,38h,25h,15h,09h,04hdb 00h,04h,09h,15h,25h,38h,4eh,66htime db 120,106,94,89,79,70,63,59 ;发不同音时的计数器初值msg db Press 1,2,3,4,5,6,7,8,Esc:,0dh,0ah,$num db ? ;8253计数器初值的序号data endscode segment assume cs:code,ds:data start: mov ax,data mov dx,offset msg mov ah,9 int 21h ;显示提示信息 sss: mov ah,7 int 21h ;从键盘接收字符不回显 cmp al,1bh je exit ;若为Esc键,则转Exit cmp al,31h jl sss cmp al,38h jg sss ;若不在18之间转sss sub al,31 mov num,al ;求出相应的时间常数的序号 mov cx,60 ;取次个正弦波数据ddd: mov si,0lll: mov al,datasi ;取正弦波数据 mov dx,290h out dx,al ;放音 call delay ;调延时子程序 inc si cmp si,32 ;是否取完个数据 jl lll loop ddd ;总循环次数是否完,若没有,则继续 jmp sssexit: mov ah,4ch int 21hdelay proc near ;延时子程序ccc: mov bx,offset time mov dx,283h mov al,10h out dx,al mov dx,28bh ;设A口输入 mov al,9bh out dx,al mov al,num ;取相应的时间常数 xlat mov dx,280h out dx,al ;向计数器输出 kkk: mov dx,288h in al,dx ;从A口读一个字节 test al,01 ;判PA0口是否为 jz kkk ret ;子程序返回 delay endp code endsend start 五分析与总结实验现象:DAC实验的现象即通过示波

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论