




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武汉理工大学微机原理与接口技术课程设计说明书课程设计任务书学生姓名:王琨 专业班级: 自动化1105班指导教师:向 尴工作单位:自动化学院题目:音乐演奏程序设计要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求).使用汇编语言设计一个在计算机上运行的音乐演奏程序。.屏幕显示钢琴图像。.实现以下附加功能:按 D键,加快播放速度,按“ E”键, 降低播放速度。.按X微退出。.撰写课程设计说明书。内容包括:摘要、目录、正文、参考 文献、附录(程序清单)。正文部分包括:设计任务及要求、方案比 较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、 程序调试说明和结果
2、分析、课程设计收获及心得体会。时间安排:12 月 30 日-12月 31 日查阅资料及方案设计1月2日1月3日 编程1月6日调试程序1月7日-1 月8日撰写课程设计报告指导教师签名:系主任(或责任教师)签名:武汉理工大学微机原理与接口技术课程设计说明书摘要汇编语言(Assembly Language)是面向机器的程序设计语言。在汇编语言 中,用助记符(Memon)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址,如此就增强了程序的可读性并且降低了编 写难度,象这样符号化的程序设计语言就是汇编语言,因此亦称为符号语言。使用汇编语言编写的程序,机器不能直接
3、识别,还要由汇编程序或者叫汇编语言编 译器转换成机器指令。因为用汇编语言设计的程序最终被转换成机器指令,故能够保持机器语言的一致性,直接、简捷,并能像机器指令一样访问、控制计算机 的各种硬件设备,如磁盘、存储器、CPU I/O端口等。使用汇编语言,可以访问所有能够被访问的软、硬件资源。使用的编译软件是 masm for windows , MASMI微软公司开发的汇编开发环 境,拥有可视化的开发界面,使开发人员不必再使用DO科境进行汇编的开发,编译速度快,支持80 x86汇编以及 Win32asm是Windows下开发汇编的利器。 它与Windows平台的磨合程度非常好,但是在其他平台上就有所
4、限制,使用MASM 的开发人员必须在Windows下进行开发。关键词:汇编语言、MASM DO科境II武汉理工大学微机原理与接口技术课程设计说明书 TOC o 1-5 h z HYPERLINK l bookmark6 o Current Document 1设计说明1 HYPERLINK l bookmark8 o Current Document 2程序设计1设计思路分析1程序设计流程图 1程序代码33程序的调试与编译9调试程序9运行程序10 HYPERLINK l bookmark18 o Current Document 4心得体会12 HYPERLINK l bookmark20 o
5、 Current Document 参考文献14iii武汉理工大学微机原理与接口技术课程设计说明书音乐演奏程序设计1设计说明所设计的系统使用了汇编语言设计一个在计算机上可运行的音乐演奏程序。 屏幕 会显示显示一钢琴琴键的图像。并且按“ D”键,会加快音乐播放速度,按“ E” 键,会降低音乐播放速度。如果按X,则会退出音乐播放程序。2程序设计设计思路分析钢琴键盘的绘制这部分主要实现画钢琴键盘键身的功能。它是由一个个白色的长方块构成的,我们需要用 BIOS调用编织线使程序。显示适配器都自带显示 服务的BIOS,利用它所提供的BIOS调用来编写程序,对于我们编程应用者来说 是透明的,我们只需要调用显
6、示驱动程序 INT 10H钢琴主要是由矩形、直线等 规则几何形状构成,可以采用文本方式,也将屏幕设置成图形显示方式,通过画 点、画线等基本程序完成钢琴的绘制。通过设定白键和黑键的起始坐标,来改黑、 白键的长度和相对位置从而完成绘制。加快播放速度与降低播放速度是在不同三个段 A0、A1、A2定义播放速度 变量RATE的不同值,按下A正常播放跳转到A,当要实现附加功能时按下 D 或者E的时候会相应跳转到A1、A2使得音乐以不同的速度播放,从而实现降低 音乐播放速度或者提高音乐播放速度的功能。程序设计流程图音乐模块流程图:武汉理工大学微机原理与接口技术课程设计说明书从第一个频率地址开始播放音乐调用宏
7、ADDRESS读取下一个频率地址I 退出DOS操作界面2跳到给定义的播放速 率变量赋加快速率的 值的段武汉理工大学微机原理与接口技术课程设计说明书程序代码DATA SEGMENTFLAG DB 1RATE DW ?; 播放速度变量INFO1 DB 0DH,0AH,Welcome To Music!$INFO2 DB 0DH,0AH,Please enter A to start music!$INFO3 DB 0DH,0AH,OPTIONS:$INFO4 DB 0DH,0AH,WRONG ORDER!$INFO5 DB 0DH,0AH,PLEASE INPUT AGAIN!$MUSLIST D
8、B 0DH,0AH,A: STARTDB 0DH,0AH,X: ESCDB 0DH,0AH,D: High SpeedDB 0DH,0AH,E: Low SpeedDB 0DH,0AH,$;提示语;首乐-MUS_FREG1 DW 262,262,294,262,349DW 330,262,262,294,262DW 392,349,262,262,523DW 440,349,262,262,466DW 466,440,262,392,349,-1MUS_TIME1 DW 50,50,100,100,100DW 100,100,50,50,100,100DW 100,100,100,50,50,
9、100DW 100,100,100,100,100,50DW 50,100,100,100,100,100DATA ENDSSTACK SEGMENTDB 400 DUP (STACK)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:;主程序MOV AH,0MOV AL,12H;图形方式INT 10HMOV AH,6MOV BH,9;蓝色色背景MOV AL,0;清屏MOV CH,0武汉理工大学微机原理与接口技术课程设计说明书MOV CL,0MOV DH,29MOV DL,79INT 10HMOV SI,200MOV DX,4
10、00REDRAW:MOV DI,26ADD DI,46MOV CX,26DEC DXCMP DX,SIJB NEXTMOV BL,0PAINT:MOV AH,0CHMOV AL,7;印出点的颜色白色一 AL,画白色琴键MOV BH,0;页号INT 10HINC CXCMP CX,DIJBE PAINTADD DI,74ADD CX,28INC BLCMP BL,7JBE PAINTJMP REDRAWNEXT:MOV SI,200MOV DX,300REDRAW1:MOV DI,63ADD DI,46MOV CX,63DEC DXCMP DX,SIJB LLMOV BL,0PAINT1: MO
11、V AL,0;印出点的颜色黑色一 AL,画黑色琴键MOV AH,0CHMOV BH,04武汉理工大学微机原理与接口技术课程设计说明书JEJUMP INT 10H JUMP:INC CX CMP CX,DI JBE PAINT1 ADD DI,74 ADD CX,28 INC BL CMP BL,7 JBE PAINT1 JMP REDRAW1LL:MOV AX,DATAMOV DS,AXCALL MUSIC_PLAY ;MUSIC_PLAY PROC SHOW MACRO b ; LEA DX,b MOV AH,9 INT 21HENDMADDRESS MACRO A,B LEA SI,A L
12、EA BP,DS:B ENDMSHOW INFO1SHOW INFO2SHOW INFO3SHOW MUSLISTINPUT:MOV AH,01HINT 21H CMP AL,X JZ RETU ;CMP AL,A;JZ A0SHOW INFO4 SHOW INFO5 JMP INPUT ;音乐播放子程序定义一个宏显示字符串; 音乐地址宏提示语按下为X则退出dos按下为A则播放音乐是则跳到A0否则提示输入错误,重新开始 按下为E则减速播放音乐CMP AL,E;武汉理工大学微机原理与接口技术课程设计说明书JZ A1; 是则跳到A1CMP AL,D; 按下为D则加速播放音乐JZ A2 ; 是则跳到
13、A2A0:ADDRESS MUS_FREG1,MUS_TIME1 MOV RATE,4000 ;设置正常播放速度CALL MUSICJMP INPUTA1: ADDRESS MUS_FREG1,MUS_TIME1MOV RATE,10000设置减慢播放速度CALL MUSICJMP INPUTA2:ADDRESS MUS_FREG1,MUS_TIME1MOV RATE,1000设置加快播面S度CALL MUSICJMP INPUTRETU:MOV AH,4CHINT 21HAGAIN:SHOW INFO5JMP INPUTEXIT:ADDRESS MUS_FREG1,MUS_TIME1 MOV
14、 RATE,4000 ;设置正常播放速度CALL MUSICJMP AGAINJMP INPUTRETMUSIC_PLAY ENDP;发声GENSOUND PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXPUSH DIMOV AL,0B6H ;开扬声器OUT 43H,ALMOV DX,12HMOV AX,348CHDIV DI武汉理工大学微机原理与接口技术课程设计说明书OUT 42H,AL MOV AL,AH OUT 42H,ALIN AL,61H MOV AH,AL OR AL,3 OUT 61H,ALWAIT1:MOV CX,RATE ;CALL WAITFDEL
15、AY1:DEC BXJNZ WAIT1 MOV AL,AH OUT 61H,AL POP DIPOP DXPOP CXPOP BXPOP AXRETGENSOUND ENDPWAITF PROC NEAR PUSH AXWAITF1:IN AL,61HAND AL,10H CMP AL,AH JE WAITF1 MOV AH,AL LOOP WAITF1 POP AX RETWAITF ENDPMUSIC PROC NEARPUSH DSSUB AX,AXPUSH AXFREG:MOV DI,SICMP DI,-1设置播放速度获取频率值音乐播放结束判断JE END_MUS武汉理工大学微机原理与
16、接口技术课程设计说明书MOV BX,DS:BP CALL GENSOUND ADD SI,2 ADD BP,2 ;MOV AH,0BH INT 21HCMP AL,0FFHJE INT9 ;JMP FREG ;END_MUS:RETINT9:PUSHFPUSH AXPUSH DS PUSH ES PUSH CS POP DS PUSH CS POP ESIN AL,60H ;MOV AH,01HINT 21H;CMP AL,X ;JZ X0CMP AL,DJZ A2 CMP AL,E播放一个频率获取下一频率值,及其播放时间 判断键盘是否有键按下有键按下则转去执行该指令无键按下则继续读取下一个频
17、率值从键盘获取该键值 ASCII码读取并保存到AL中若为X则退出dos操作界面JZ A1;否则提示输入错误,重新开始INT9_QUIT:POP ESPOP DSPOP AXPOPFJMP FREGA1:POP ESPOP DSPOP AXPOPFADDRESS MUS_FREG1,MUS_TIME1 MOV RATE,10000 ;设置减慢播放速度CALL MUSIC武汉理工大学微机原理与接口技术课程设计说明书JMP INPUTA2:POP ESPOP DSPOP AXPOPFADDRESS MUS_FREG1,MUS_TIME1MOV RATE,1000 ;设置加快播放速度CALL MUSI
18、CJMP INPUTINPUT:MOV AH,01HINT 21HCMP AL,XJZ RETU ; 按下为X则退出dosSHOW INFO4SHOW INFO5JMP INPUT ;否则提示输入错误,重新开始X0:POP ESPOP DSPOP AXPOPFJMP RETURETU:MOV AH,4CHINT 21HMUSIC ENDPCODE ENDSEND START3程序的调试与运行调试程序调试过程与编写程序的过程紧密相关,具体过程也就是把源程序放在MASM for Windows中进行编译,如果源程序中有错误,编译时系统就会给出提 示,根据系统提示可以找到是哪一行出现了问题,对其进行
19、分析并修改,重新编译,直到编译时系统对那一行没有给出提示为止。如果系统提示源程序中存在多 条错误,就按照上述方法逐条进行修改,直到系统提示编译成功。在调试过程中, 出现了很多问题,对源程序进行编译调试过程中,画钢琴界面的那一块程序错误武汉理工大学微机原理与接口技术课程设计说明书比较多。还有一块难点是最终主程序对各个子程序的调用,常常因为很多细节问题而导致子程序无法正常的嵌入。 在编译、调试程序的过程中程序出现错误是不 可避免的,有的是一种原因引起的简单错误,有的是多个子程序相互作用引起的 复杂错误,因此需要掌握错误的一般诊断方法, 故障诊断过程就是以错误现象出 发,通过反复测试,做出分析判断,
20、逐步找出错误所在并修改的过程。当源程序 大致编好且没有错误后,需要对它进行修改和完善。最后运行程序,就可以得到 与任务书中要求的音乐播放功能。运行程序程序运行的截图:开始界面:DOSBox Q74, Cpu sneed: 3000 cycles, Frames kip 0, Program TEFPFlLEUelcome To tlusic?P1ease enter A to start music! OPTIONS:0; STABTX: ESCD; High Speed E: Lnu SpRfid图3-1运行开始后显示钢琴界面,并显示提示语言C10武汉理工大学微机原理与接口技术课程设计说明书
21、播放界面:DOS Bex 0.74, Cpu speed:000 cycles Frameskip 0, Prsgram: TEMPFILEUe 1come To Music?Please enter fi to start music*OPTIONSJA: STAHTX: ESCD : I- iqh SpepdE: Lou SpeedA图3-2按下“A”后,开始正常播放音乐。按下D会加快音乐播放速度,按下 E会减慢音乐播放速度11武汉理工大学微机原理与接口技术课程设计说明书输入错误界面:图3-3开始时如果输入的不是“ A”,则提示输入错误,要求重新输入4心得体会此次课程设计的题目对我来说并不
22、简单, 由于汇编知识的匮乏,在面对设计 题目的时候完全毫无思路,后来通过仔细审题、通过网络查找相关程序资料然后 与同组同学交流讨论设计思路以及程序编写逐步明晰了设计的思路。尽管这一周的课程设计时间是短暂并且困难重重的, 但是我还是和队友们团结合作,一起克 服困难,努力去完成课程设计。我们在解决困难的过程中有很多自己的感受,我们在一边查找资料一边学习、交流的过程中,逐渐通过自己的努力解决了一个一 个问题。这个过程中我们逐渐体会到汇编语言的神奇之处,虽然我们解决的问题尚且是简单的问题,但是这个过程中解决问题的方法是让人获益匪浅的,并且我们学会了很多关于汇编的实际操作知识。其次,我更加深刻的体会到自
23、主学习在课程设计中的关键作用。在遇到问题 的时候,只有先积极思考,查找资料,遇到瓶颈与同学交流。记得编写子程序的12武汉理工大学微机原理与接口技术课程设计说明书时候在编译的时候总是出现问题,嵌套不匹配等。后来通过检查发现原来都是比 较细节的地方出现了问题。通过这个发现,使我意识到在编写程序代码的过程中 必须时刻保持清醒的头脑,专心致志的输入代码,切忌细小的地方出现差错。再者,同时也了解到上机操作实践的重要,这样有助于书本知识的系统化, 现实化,更有利于自己的查漏补缺。书本上的知识是死的,能够在现实中运用的 知识才是活的。通过这次课程设计,也促进了我们的同学之间互相学习, 通过编 写程序,增加了学习的积极性和趣味性。通过实际解决问题,巩固加深了对课堂教学内容的理解,提高了我们运用汇编语言进
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 期刊出版与学术期刊的学术期刊品牌推广考核试卷
- 2024年项目管理实务考察试题及答案
- 2024年行政管理师考试教材选择试题及答案
- 项目规划中关键路径方法的使用试题及答案
- 2023山东省盐业集团有限公司招聘16人笔试参考题库附带答案详解
- 项目管理考试发展形势分析试题及答案
- 2025年通货膨胀影响下的证券投资试题及答案
- 里程碑拆除施工方案
- 2025年证券从业资格证考试中常见问题试题及答案
- 2023吉林省高速公路集团有限公司松原分公司劳务派遣项目招聘23人笔试参考题库附带答案详解
- 2022年全国统一高考数学试卷(新高考ⅰ)
- 1输变电工程施工质量验收统一表式(线路工程)-2024年版
- 2024年全国乡村振兴职业技能大赛“育婴”赛项考试题库(决赛用)
- 《内在强大:应变万难的力量》记录
- TSHJX 067-2024 基于TACS的全自动运行线路综合联调技术规范
- 2024至2030年中国擦窗机器人产业竞争现状及投资决策建议报告
- 益母草颗粒的保肝作用机制
- 中国经济史教学课件第八章近代农业经济的发展
- 2024年东南亚生化需氧量(BOD)分析仪市场深度研究及预测报告
- 高中数学教师资格证面试真题试
- 数学教育研究导论
评论
0/150
提交评论