ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:86.54KB ,
资源ID:16521150      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16521150.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(利用中断实现发声程序课程设计Word下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

利用中断实现发声程序课程设计Word下载.docx

1、设计题目 利用中断实现发声程序设计技术参数Windows操作系统、masm5集成开发环境要求用汇编语言编写程序完成发声子程序,要求使用中断程序实现工作量1.编写代码 2.设计说明书不少于12页 3.参考文献不少于5个划 接受设计任务,收集资料 学习中断原理,中断服务程序设置方式 发声子程序原理 编码调试 书写设计说明书 提交检查考资料1.周荷琴.微机原理接口技术M.北京:清华大学出版社,2016.2.徐晨.微机原理与应用M.北京:高等教育出版社,2004.3.王爽.汇编语言M.北京:清华大学出版社,2008.4.孙德文.微型计算机技术M.高等教育出版社, 2010.5.许立锌.微型计算机原理及

2、应用M.北京:机械工业出版社,2003.指导教师签字 教研室主任签字2019年6月24日 安徽理工大学课程设计(论文)成绩评定表 任陈飞 学号: 71 专业班级:课程设计题目: 利用中断实现发声程序 指导教师评语:成绩: 年 月 日1概述 MASM汇编开发环境简介MASM是Microsoft Macro Assembler的缩写,是微软公司为x86微处理器家族开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm,是Windows下开发汇编的利器。它与windows平台的磨合程度非常好,但是在其他平台上就有所限

3、制,使用MASM的开发人员必须在windows下进行开发。它支持的宏很灵巧,既广泛又多样性,结构化程序的惯用语法,包含高级架构式的循环、程序调用,以及轮替 (alternation)(因此,MASM 算是高级汇编器的一个范本)。 设计要求利用中断方式,编写程序实现每隔10秒响铃一次,并在屏幕上显示“The bell is ring”2需求分析 CPU与I/O外设通信3种控制方式CPU和I/O设备进行输入输出数据的方式有三种:程序直接控制方式,中断方式和DMA方式。三种方式的特点:(1)程序直接控制方式最简单的I/O控制方式是处理机对I/O设备直接进行控制,采取程序I/O(Programmed

4、I/O)方式或称为忙一等待方式。CPU首先向设备控制器的控制寄存器发出一条I/O指令启动I/O设备进行数据传输,硬件同时把状态寄存器中的忙/闲标志busy置为1,表示该I/O设备尚未输入完一个字(符)。接着CPU应重复读取状态寄存器忙/闲标志busy进行测试(CPU不能执行其他进程),直至busy=0,表示该I/O设备已将输入数据送入到I/O控制器的数据寄存器中,于是CPU将从数据寄存器中取出数据,送入内存的指定单元,接着,再启动去读下一个数据,并置busy=l。在程序I/O方式中,由于CPU的速度远远高于I/O设备,导致CPU的绝大部分时间都处于等待I/O设备完成而循环测试之中,造成了CPU

5、的极大浪费。但是它管理简单,在要求不高的场合可以被采用。(2)中断控制在现代计算机系统中,对I/O设备的控制,广泛地采用中断(Interrupt-Driven)方式,即当某进程要启动某个I/O设备时,便由CPU向相应的设备控制器的控制寄存器发出一条I/O命令,然后立即返回继续执行原来的任务。设备控制器便按照该命令的要求去控制I/O设备。若I/O设备忙,则由驱动程序将请求插入设备等待队列。此时, CPU与I/O设备处于并行工作状态。例如,在输入时,当设备控制器收到 CPU发来的读命令后,便准备接收从相应输入设备送来的数据。一旦数据进入数据寄存器,控制器便通过中断请求线INT向CPU发送一中断信号

6、,中断子程序由CPU读取状态寄存器忙/闲标志busy进行测试检查输入过程中是否出错,若无错,便从数据寄存器中读出数据,写入指定内存单元。所以,中断驱动方式在I/O设备输入数据的过程中,无需 CPU干预,可以使CPU与I/O设备并行工作。仅当输完一个数据时,才需 CPU花费极短的时间去进行中断处理。从而大大地提高了整个系统的资源利用率及吞吐量,特别是CPU的利用率。(3)DMA控制中断驱动I/O方式虽然大大提高了主机的利用率,但是它以字(节)为单位进行数据传送,每完成一个字(节)的传送,控制器便要向CPU请求一次中断(做保存现场信息,恢复现场等工作),仍然占用了CPU的许多时间。这种方式对于高速

7、的块设备的I/O控制显然是不适合。为了进一步减少CPU对I/O的干预,引入了直接存储器访问DMA(Direct Memory Access)控制方式。DMA方式是一种完全由硬件执行IO数据交换的工作方式,它需要使用一个专门的DMA控制器(DMAC),内含于设备控制器,DMAC中有控制状态寄存器、传送字节计数器、内存地址寄存器和数据缓冲寄存器。在这种方式中,DMAC采用盗窃总线控制权的方法从CPU接管对总线的控制,成批的数据交换不经过CPU而直接在内存和IO设备之间进行。DMA方式下的数据传送过程可分为三个阶段:1) 预处理阶段:当进程要求设备输入数据时,CPU把准备存放输入数据的内存起始地址以

8、及要传送的字节数分别送入DMAC中的内存地址寄存器和传送字节计数器。另外,还把控制状态寄存器中的中断允许位和启动位置成1,从而启动设备,开始进行数据输入。2) 数据传送阶段:发出数据传输要求的进程进入等待状态,进程调度程序调度其他进程占据CPU。DMAC不断地窃取CPU工作周期,执行数据传送的操作:向内存发出地址和控制信号,进行地址修改,对传送字的个数计数,直到所要求的字节全部传送完毕。3) 后处理阶段:DMAC在传送完所有字节时,通过中断请求线发出中断信号。CPU在接收到中断信号后,转入中断处理程序进行后续处理。中断处理结束后,CPU返回到被中断的进程中,或切换到新的进程上下文环境中,继续执

9、行。DMA方式起到代理CPU的功能,较之中断驱动方式,又是成百倍地减少了CPU对 I/O控制的干预,进一步提高了CPU与I/O设备的并行操作程度。 中断方式实现原理中断工作原理:计算技术里中断过程,就是主芯片的外部信号或内部信号,中断了该芯片正在执行的程序,主芯片转而处理由该信号引发的其他程序,结束后再回到中断的“断点”,继续执行原有程序。中断服务子程序(1)利用扬声器发出声音端口号为61H的设备控制器的第1位交替为1和0,该位与扬声器的脉冲门相连,当第一位由1变0或由0变1,且维持一段时间,产生一个脉冲电流,经放大后送至扬声器发出声音。61H的第0位和振荡器相连,不需要振荡器发声,所以把它置

10、0。(2)10秒控制10秒控制:定时器每秒钟中断次,每次调用一个1CH类型的中断。系统中原有的1CH类型中断服务子程序没有执行任何功能。即每次中断不执行任何操作返回主程序。替换原有中断服务程序,变为用户的发声子程序ring。10秒钟将进行182次中断,在第182次中断时执行发声功能,并重置计数次数182,其他直接跳出中断服务子程序。 主程序主程序负责对中断向量进行设置和恢复等操作中断向量的存取:(1)设置中断向量:MOV DX, OFFSET RING ;新偏移量送DXMOV AX, SEG RINGMOV DS, AX ;新段址送DSMOV AL, 1CHMOV AH, 25HINT 21H

11、 ;写入新的中断向量(2)取中断向量:MOV AL,1CH;取中断向量MOV AH,35HINT 21HPUSH ES ;存原中断向量段址PUSH BX ;存原中断向量偏移量主程序的延时控制 延时控制目的是延长主程序执行期间给中断服务程序机会实现中断。Mov bx, 1234HMov dx, bxLoop1: Mov cx,bxDelay: Loop delay Dec dx Loop loop13程序实现 程序数据段:DATA SEGMENTCOUNT DW 1MESS DB The bell is ring!, 0DH,0AH,$DATA ENDS主程序:CODE SEGMENTASSUM

12、E CS:CODE,DS:DATA,ES:DATAMAIN PROC FARSTART: PUSH DSSUB AX, AXPUSH AXMOV AX, DATAMOV DS, AXMOV AL, 1CH;MOV AH, 35HINT 21HPUSH ES ;PUSH BX ;PUSH DSMOV DX,OFFSET RING ;MOV AX, SEG RINGMOV DS,AX ;MOV AL, 1CHMOV AH, 25HINT 21H ;POP DSIN AL,21H;读取中断屏蔽字AND AL,B;允许定时器中断OUT 21H, ALSTI; 开中断MOV BX,50DELAY: MO

13、V DI, 65535DELAY2:MOV SI,65535;延时 DELAY1:DEC SIJNZ DELAY1DEC DIJNZ DELAY2POP DX ;恢复原中断向量POP DSRETMAIN ENDP中断服务程序:RING PROC NEARPUSH DS ;各工作寄存器内容入栈PUSH AXPUSH CXPUSH DXSTI DEC COUNT ;计秒值 JNZ EXIT MOV DX, OFFSET MESS MOV AH, 09H INT 21H MOV DX, 100IN AL, 61HAND AL, 0FCHSOUND: XOR AL, 02OUT 61H,AL;扬声器发

14、声MOV CX, 140HWAIT1: LOOP WAIT1;延时等待DEC DXJNE SOUNDMOV COUNT, 182EXIT: CLI ;关中断POP DXPOP CXPOP AXIRET ;中断返回RING ENDP 程序和运行界面 图3-1 程序1 图3-2 程序2 图3-3 运行结果4总结不知不觉,微机原理与接口技术课程已经结束了。回想起来受益匪浅,主要是加深了对计算机的一些硬件情况和运行原理的理解和汇编语言的编写,期间也听老师讲过,微机原理这门课程是比较偏硬件一点的。正是因为这一点,我还是对它比较喜欢的,因为它和我的专业方向“光电信息”有很大的联系,在光电信息领域很多场合要

15、应用到微机,本着想就业好的心态,因此对该课程的学习还是有浓厚的兴趣的。下面谈谈这期学习该课程的心得与体会:刚开始接触这门课程的时候,感觉到它似乎非常的容易,尤其是第一章,它讲到的都是一些计算机的发展历程,听的是津津有味的,知道原来计算机是那么来的啊!这时我有一个感想,当初发明出第一台计算机的人是多么的伟大啊,使人在计算复杂问题上,速度得到了很大的提高,随着时代的发展,计算机的运行速度也越来越快,CPU由原来的M级发展到了G级,是多么令人惊奇的一个进步,到了21世纪,计算机得到了充足的发展,IT行业也成为了一个热门的行业,如果专业技能强的话,一般比其它行业拿的工资都要高,同时也就增添了我对它学习

16、的信心。就像我们学的这个微机原理与接口技术课,如果能把它融会贯通的话,对专业的学习和深造都会有很大的益处,对将来的就业也会有极大的帮助。其实我觉得,在学习微机原理这一块,最让我觉得棘手就是这个汇编语言了,在学它的过程中,觉得还是有点吃力,尤其是它的指令很多的,有时候总是把它给记混了,所以在做练习的时候这个问题最突出了,如果是自己写程序的话,总是写不对,到计算机上也运行不了,唯一的解决办法就是看参考书上的程序再模仿编写,但是自己的编程能力上没有得到有效的提高。这也有可能是自己学习方法上的不足吧!在今后的学习中要针对性的改变这种不足。通过了这一学期对微机原理的学习,真的对它有了一个全新的认识,虽然说,这门课已经结束了,但是我会坚持对它的学习,使自己在汇编语言上有一个长足的提高!力争在掌握高级语言基础上掌握一门汇编语言,这就是我这期学习微型计算机原理与接口技术课程的心得体会!参考文献1周荷琴.微机原理接口技术M.北京:2徐晨.微机原理与应用M.北京:3王爽.汇编语言M.北京:4孙德文.微型计算机技术M.高等教育出版社, 2010.5许立锌.微型计算机原理及应用M.北京:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1