《微机原理》第二次课程设计报告-范本

上传人:qt****68 文档编号:46965691 上传时间:2018-06-28 格式:PDF 页数:13 大小:74.60KB
返回 下载 相关 举报
《微机原理》第二次课程设计报告-范本_第1页
第1页 / 共13页
《微机原理》第二次课程设计报告-范本_第2页
第2页 / 共13页
《微机原理》第二次课程设计报告-范本_第3页
第3页 / 共13页
《微机原理》第二次课程设计报告-范本_第4页
第4页 / 共13页
《微机原理》第二次课程设计报告-范本_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《《微机原理》第二次课程设计报告-范本》由会员分享,可在线阅读,更多相关《《微机原理》第二次课程设计报告-范本(13页珍藏版)》请在金锄头文库上搜索。

1、课程设计报告课程设计报告 题题 目目: 音乐发声程序设计音乐发声程序设计 姓姓 名:名: 曹曹 敏敏 200771040103 常河林常河林 200771040104 陈玉龙陈玉龙 200771040108 一、问题描述一、问题描述 1. 问题描述 用汇编语言编写音乐演奏程序。具体要求如下: 程序运行在屏幕显示第一界面如下: 1 my piano 2 my music 0 exit 选择 0 键结束程序运行。 选择 1 进入十五度音程的钢琴程序,按数字键ao演奏十五度音,按esc 键清屏返回上级菜单。 选择 2 进入音乐程序,出现界面如下: 1 Mary had a little lamb 2

2、 Taihus ship 3 Happy Birthday 0 exit 选择 13 的按键演奏相应的乐曲,按 0 键清屏返回上级菜单。 界面的显示采用彩色的字体和底色显示在屏幕的中间。 界面美观, 程序运行正确。 二、数据模型二、数据模型 1数据格式数据格式 通过对问题的分析,设计时引入的数据分为两类:一是提供屏幕选择提 示信息的菜单项, 其中包括: 主菜单显示、 子菜单显示、 十五度音提示显示、 歌曲1至3的提示显示、 二是提供程序中的要运行的音乐频率表和节拍时间, 其中包括:十五度音的音乐频率表和节拍时间、歌曲 1 至 3 的音乐频率表和 节拍时间。在程序执行的开始所有定义的提示都应显示

3、出来,但它们不参与 程序内部的计算和转换,而所定义的音乐频率表和节拍时间,将随通用发生 程序执行播放歌曲。课程设计中使用的数据全部定义在名称为 DSEG 数据段 中。数据的定义格式如下: DSEG SEGMENT 数据段定义 ;主菜单显示 STRING DB 1. my piano ,13,10 DB 2. my music ,13,10 DB 3. exit ,13,10 LEN_STR EQU $-STRING ;子菜单显示 STRING1 DB 1 Mary had a little lamb ,10,13 DB 2 Taihu SHIP ,10,13 DB 0 exit ,10,13

4、LEN_STR1 EQU $-STRING1 ;显示键入 a 到 o STRING2 DB Input a to o,10,13 LEN_STR2 EQU $-STRING2 ;歌曲 1 名提示 STRING3 DB Mary had a little lamb,10,13 LEN_STR3 EQU $-STRING3 ;歌曲 2 名提示 STRING4 DB Taihu SHIP,10,13 LEN_STR4 EQU $-STRING4 ;歌曲 3 名提示 STRING5 DB Happy Birthday,10,13 LEN_STR5 EQU $-STRING5 ;十五度音 TABLE1

5、DW 131 DW 147 DW 165 DW 175 DW 196 DW 220 DW 247 DW 262 DW 294 DW 330 DW 349 DW 392 DW 440 DW 494 DW 523 ;1 Mary had a little lamb MUS_FREQ DW 330,294,262,294,3 DUP(330) DW 3 DUP(294),330,392,392 DW 330,294,262,294,4 DUP(330) DW 294,294,330,294,262,-1 MUS_TIME DW 6 DUP(25),50 DW 2 DUP(25,25,50) DW 1

6、2 DUP(25),100 ;2 Taihus ship MUS_FREQ1 DW 330,392,330,294,330,392,330,294,330 DW 330,392,330,294,262,294,330,392,294 DW -1 MUS_TIME1 DW 3 DUP(50),25,25,50,25,25,100 DW 2 DUP(50,50,25,25),100 DW 3 DUP(50,25,25),100 ;3 Happy Birthday MUS_FREQ2 DW 262,262,294,262,349,330,262,262,294 DW 262,392,349,262,

7、262,523,440,349 DW 330,294,466,466,440,262,392,349 DW -1 MUS_TIME2 DW 2 DUP(13 ),25,25,25,50,13,13,25 DW 25,25,50,13,13,25,25,25 DW 25,75,13,13,25,25,25,50 DSEG ENDS 数据段定义结束 在主菜单显示和子菜单显示数据段均使用字节(DB)的存储方式来实现, 而十五度音以及音乐频率表和节拍时间则均使用字(DW)的存储方式来实现。 三、程序设计思路三、程序设计思路 在此程序中主要运用主程序调用子程序方法实现该程序的功能。该程序包括:主菜单显示

8、模块、子菜单显示模块、十五度音钢琴模块、音乐歌曲演奏模块、通用发声扬声器模块、时间延迟模块、清屏模块、主程序模块共八大模块。 主程序模块的功能主要是调用主菜单显示模块,将主菜单显示在屏幕上, 并对用户输入的菜单项目值进行判断进而通过跳转语句调用相应的子程序。 其流程图如下: 开始 用户可以在此输 入不同选项进入 下一菜单输入 0 则退 出程序 输入 2 则调用 子菜单程序输入 1 则进 入钢琴程序输入 1 则播放 歌曲 1 输入 2 则播放 歌曲 2输入 3 则播放 歌曲 3输入 0 退出 输入非 1,2,0,则继 续执行输入程序判断输入的选项 调用主菜单程序 显示主菜单四、各模块框图和程序代

9、码 四、各模块框图和程序代码 1主菜单显示模块 1主菜单显示模块 XIANSHI PROC NEAR PUSH BP PUSH ES PUSH CX PUSH DX MOV AH,0 MOV AL,3 INT 10H MOV BP,SEG STRING MOV ES,BP MOV BP,OFFSET STRING MOV CX,LEN_STR MOV DX,0 MOV BL,04H MOV AL,1 MOV AH,13H INT 10H POP DX POP CX POP ES POP BP RET XIANSHI ENDP 2子菜单显示模块 2子菜单显示模块 XIANSHI1 PROC NE

10、AR PUSH BP PUSH ES PUSH CX PUSH DX MOV AH,0 MOV AL,3 INT 10H MOV BP,SEG STRING1 MOV ES,BP MOV BP,OFFSET STRING1 MOV CX,LEN_STR1 MOV DX,0 MOV BL,04H MOV AL,0 MOV AH,13H INT 10H POP DX POP CX POP ES POP BP RET XIANSHI1 ENDP 3十五度音钢琴模块 3十五度音钢琴模块 MY_PIANO PROC NEAR NEW_NOTE: CALL XIANSHI2 MOV AH,0 INT 16

11、H CMP AL,1BH JE EIXT MOV BX,OFFSET TABLE1 CMP AL,a JB NEW_NOTE CMP AL,o JA NEW_NOTE AND AX,0FH SHL AX,1 SUB AX,2 MOV SI,AX MOV DI,BXSI MOV BX,10 CALL SOUNDF JMP NEW_NOTE EIXT: RET MY_PIANO ENDP 4音乐歌曲演奏模块 4音乐歌曲演奏模块 MUSIC PROC NEAR LEA SI,MUS_FREQ LEA BP,DS:MUS_TIME FREQ: PUSH BP PUSH ES PUSH CX PUSH

12、DX MOV DI,SI CMP DI,-1 CALL CLEAR_SCREEN MOV AH,0 MOV AL,3 INT 10H MOV BP,SEG STRING3 MOV ES,BP MOV BP,OFFSET STRING3 MOV CX,LEN_STR3 MOV DX,0 MOV BL,04H MOV AL,0 MOV AH,13H INT 10H POP DX POP CX POP ES POP BP JE END_MUS MOV BX,DS:BP CALL SOUNDF ADD SI,2 ADD BP,2 JMP FREQ END_MUS: RET MUSIC ENDP ;* MUSIC1 PROC NEAR LEA SI,MUS_FREQ1 LEA BP,DS:MUS_TIME1 FREQ1: PUSH BP PUSH ES PUSH CX PUSH DX MOV DI,SI CMP DI,-1 CALL CLEAR_SCREEN MOV AH,0 MOV AL,3 INT 10H MOV BP,SEG STRING

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号