微机原理与接口技术课程设计.doc_第1页
微机原理与接口技术课程设计.doc_第2页
微机原理与接口技术课程设计.doc_第3页
微机原理与接口技术课程设计.doc_第4页
微机原理与接口技术课程设计.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

课程设计实验报告课程名称 微机原理与接口技术课程设计实验名称 proteus仿真实验实验目的: 通过使用proteus软件模拟原先在硬件平台上搭建的数字录音机电路,系统地学习从零开始用芯片搭建一个数字电路,并且在此电路基础上运行由汇编语言代码转换来的机器语言代码,使之完成模拟信号的模数转换、数模转换两个过程。实验内容: 1.数字录音机模拟仿真实验实验环境:硬件配置:windows xp软件配置:protues isis实验要求: 无。实验步骤及结果分析: 1.模拟硬件平台的搭建由于之前已经完成了硬件平台上数字录音机电路的搭建,因此在这次试验中我们开始时主要借鉴了硬件平台上的电路布局来进行芯片选择和连接,主要还是使用了原先用过的8255、8253、adc0808、dac0832等芯片,同时由于在这次试验环境中,我们所模拟的是一个没有任何操作系统控制的裸机,因此原来实验中用到的int中断在这次试验中不能使用。鉴于此,我们和其他同学讨论了这个问题,我们发现,在电路中可以使用一个virtual terminal,使其模拟原先试验中键盘的读入和屏幕的显示。具体电路图如下所示:adc0808芯片电路:8086芯片电路:说明:由于在这次试验中,所有的芯片都没有事先确定硬件地址,因此还需要用到一个译码器,使之用于选择各个芯片;另外,在多次试验中,我们发现,8086芯片中的地址输出应先接入到一个地址锁存器中,因而在此我们也做了相应的调整。地址锁存器电路和译码器电路:8253芯片和8255芯片电路:dac0832芯片电路:8251芯片和虚拟中断电路:2.汇编代码的编写和编译这次试验主要还是使用了上次试验中我们编写的代码,但是对其中的一些部分做了改动,比如去掉了原先使用的int中断代码,将其替换为只是简单地把数据输入8251芯片,而把原先中断读入的任务交给了virtual terminal。代码如下所示:ioportequ0a400h - 280hio8253equioport + 280hio8253cequio8253 + 6hio8255equioport + 288hio8255cequio8255 + 6hio0832equioport + 290hio0808equioport + 298hio8251equioport + 2a0hio8251cequio8251 + 2hdata segmentbufdb1000 dup(?)msg1dbpress any key to start recording. press esc to leave.,0dh,0ah,$msg2dbrecording.,0dh,0ah,$msg3dbplaying.,0dh,0ah,$data endsstacksegmentstackdb100h dup(?)stack endscode segmentassume cs:code, ds:data, ss:stackstart:movax,datamovds,ax;8251初始化movdx,io8251cmoval,4ahoutdx,alnopmoval,5houtdx,alnop;8255初始化movdx,io8255cmoval,90houtdx,albegin:leasi,msg1callprintcallscancmpal,27 ;若按键为esc键,则退出jzexitstartrecord:leasi,msg2callprintmovcx,500leadi,bufmovdx,io0808rec:outdx,alcalldelay ;开始一个计时inal,dxmovdi,alincdilooprecleasi,msg3callprintleadi,bufmovcx,500movdx,io0832play:moval,dioutdx,alcalldelaynopincdiloopplayjmpbeginexit:jmpexit;启动一个计时delayproc nearpushdxmovdx,io8253cmoval,10houtdx,almovdx,io8253moval,166;此处数值可以依据具体情况进行调整outdx,almovdx,io8255outtest: ;用查询方式查看8255pa0口是否有高电平输入(即8253是否计时结束)inal,dxtestal,01hjzouttestpopdxretdelayendp;功能说明:打印si里的字符串printproc nearpushaxpushbxpushdxprint_start:movbl,sicmpbl,$jzprint_end;由于int中断指令存在于windows操作系统,;而本实验中所使用电路相当于一个裸机,;因而不能调用int中断,;只能通过使用软件中所提供的器件虚拟终端来实现外部中断(键盘输入)功能wait8251:movdx,io8251cinal,dxandal,1jzwait8251movdx,io8251outdx,almoval,bloutdx,alincsijmpprint_startprint_end:popdxpopbxpopaxretprintendp;将终端输入字符读入alscanproc nearpushdxscan_wait:movdx,io8251cinal,dxandal,2jzscan_waitmovdx,io8251inal,dxpopdxretscanendpcode ends end start编译代码:首先要在系统中安装ml615,安装完成后按windows+r键打开命令提示符窗口,在窗口中输入以下代码:然后点击回车,即对所编写的recordtest.asm源文件进行编译,生成一个recordtest.exe文件并存放到e:ml615文件夹中:3.运行可执行文件(机器代码)打开电路图,右键点击8086芯片,选择edit component选项,如下所示:在program file一栏点击文件型按钮,输入需要运行的源代码的地址,点击0k即可。在本例中,源代码地址为e:ml615recordtest.exe点击proteus左下角三角形按钮,即可运行代码,如下所示:在本次试验中,我们录音的声源是方波,其频率为300hz,录音、放音时的效果如下所示:实验总结: 我们组的4位同学都是准备考研的,做这次试验的时间比较紧张,我们都是利用比较零散的时间做,因此整个进度断断续续。中间也遇到了不少的问题,比如原先硬件平台上可以屏显的效果如何在proteus环境下实现、按键中断如何实现、硬件地址如何确定、编译后的代码如何调试等等。不过,经过大家的努力,我们最终还是完成

温馨提示

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

评论

0/150

提交评论