1、3、系统硬件组成框图4四、程序功能描述及程序流程41、程序功能描述42、程序流程4五、程序源代码及注释6六、DOS功能调用,文件列表清单14七、程序调试出现的问题、原因及排除15八、收获和体会16九、参考文献17一、课题名称及设计组成员(1) 课程名称:计算机音乐播放系统设计(2) 设计组成员:二、课程内容及要求课程内容:设计一个汇编语言程序,实现计算机音乐播放系统。实现功能如下:(1) 制作一个菜单,使用菜单条选择功能,让用户选择演奏的乐曲,不少于5首。(2) 用定时器方式演奏梁祝实现音乐演奏。(3) 提示使用ESC键或者ENTER键可以退出当前过程或返回DOS(4) 使用控制变量可以控制不
2、同的效果以及要求,如播放速度,间隔等。(5) 界面美观,程序结构化程度高,模块结构合理。三、方案、系统硬件组成框图以及工作原理说明1、方案基于PC计算机时钟晶振为1.1931816MHz,利用电脑中的蜂鸣器发出声音。各音阶标称频率值:音符: 1 2 3 4 5 6 7(重低音)对应频率:(Hz) 131 147 165 175 196 220 247(低音)(Hz) 262 294 330 349 392 440 494(中音)(Hz) 523 587 659 698 784 880 988(高音)(Hz) 1046 1175 1318 1397 1568 1760 19752、工作原理说明软
3、件设计是本设计的重点,在软件设计中,要给8253和8255写数据,同时还要检测键盘输入的值,并根据输入的值,执行相应的代码来控制音乐的播放。首先在一开始先显示音乐菜单,然后调用DOS中21H 的01中断来接收键盘上的数据,在此过程中,程序在等待中,直到键盘上有键按下,程序才进行相应的操作。当键盘输入一个值后,首先判断输入的值是否为“0”,如果是,那就退出程序,如果不是,再检测输入的数是否在1-4之间,如果是,那就调用相应的播放音乐的程序,否则我们重新提上,让其输入0-4之间的数值。在音乐播放中,要实时的扫描键盘是否有值输入,如果用DOS中21H 的01中断肯定是不行的,因为执行这个中断程序会等
4、待,无法继续播放音乐。因此采用中断21H中的0bH,这个中断不会等待,只会检查标准输入设备上是否有字符可读。然后通过检测AL中的值是否为0FFH,来判断键盘是否有值输入。如果键盘上有键输入,那么AL中会返回一个0FFH的值,否则就会返回00H。如果有,再判断这个输入的值是否为“p”,如果是,就停止音乐的播放,否则继续播放音乐,由于程序运行非常快,这样就不会感觉到音乐有停顿现象。实现和音乐演奏的同时实时扫描键盘的功能。当音乐播放完后,调用JMP命令跳回到主菜单,再次让操作者选择播放哪一首歌或是选择退出。在音乐暂停后,显示输入提示:如果按“s”值继续音乐播放。然后调用DOS中21H 的01中断来接
5、收键盘上的数据,在此过程中,程序在等待中,直到键盘上有键按下,然后我们按输入的数进行相应的操作,如果都不是,怎继续输入,知道输入正确的为止。在这个设计中,最终要返回主菜单,然后通过按“Esc”等键退出。3、硬件组成框图PC机相关电路以及相关接口电路如下:四、程序功能描述及程序流程1、程序功能描述计算机播放器系统:显示入口菜单;共5首待选择音乐:1、北京欢迎你 2、春天花会开 3、欢乐颂 4、但愿人长久 5、情非得已播放功能:音乐播放中途暂停、快进、放慢、单曲循环、列表循环、退出播放器2、程序流程主流程:开始显示音乐菜单提示输入选择判断输入是否为0,若是则退出程序若否则判断是否在数字范围内若是则
6、调用音乐播放程序音乐播放流程:按键中断流程:输入判断输入所选择的功能进入各功能子程序根据各程序功能返回主程序五、程序源代码及注释DATAS SEGMENTSHOW DB 0AH,0DH DB *,0AH,0DH this is a music program! please select!,0AH,0DH DB 0AH,0DHIn this part, you can press below keys to enjoy music:1. bei jing huan ying ni2. chun tian hua hui kai3. huan le song4. dan yuan ren cha
7、ng jiu5. qing fei de yiYou can press,60H,Esc,27H, or Enter,27H, to exit.During the song you can press below keys to set the speed and playback mode:u - Fasterd - Slowerp - Pauses - Startq - Quit,0AH,0DH,$WAIT_M DB 0AH,0DHmusic ing,. ERROR_O DB 0AH,0DH,Your order is error, please enter the right one:
8、Q DB 0AH,0DH,The song is over, you can choose a song again.$P DB 0AH,0DH,Have a rest, you can press s to start the song again.$S DB 0AH,0DH,You has start the song again.U DB 0AH,0DH,You have made the beat shorter.D DB 0AH,0DH,You have made the beat longer.OVER DB 0AH,0DH,*$ DB 0AH,0DH,;*北京欢迎你* TONES
9、_1 DW 659,2 DUP (659,784,659,587,659,587,659,659,587,440,523,659,587,587,523,440,523,587,659,784,587,659,880,784,440,587,523) DW 587,523,440,523,587,659,784,587,659,880,784,784,659,587,659,587,523,784,880,587,440,659,587,587,523,-1BEAT_1 DW 7 DUP(25*200),50*200,5 DUP(25*200),25*600,13 DUP(25*200),25
10、*600,6 DUP(25*200),50*200,5 DUP(25*200),25*600,13 DUP(25*200),25*600 DW 12 DUP(25*200),50*400,6 DUP(25*200),50*200,4 DUP(25*200),50*200 *春天花会开*TONES_2 DW 392,392,392,392,440,392,330,294,262,262,262,220,294 DW 392,392,392,392,330,494,220,262,262,262,330,294,330,440,220,262,-1BEAT_2 DW 25*200,3 DUP(25
11、*200,50*200,25*200,50*200,50*200,50*400) DW 25*200,50*200,25*200,50*200,50*200,50*200,50*200,4 DUP(25*200)*欢乐颂*TONES_3 DW 330,330,330,349,392,392,349,330,294,262,262,294,330,330,294,294 DW 330,330,349,392,392,349,330,294,262,262,294,330,294,262,262,-1BEAT_3 DW 13 DUP(50*200),25*600,2 DUP(25*200) DW 12 DUP(50*200),25*600,2 DUP(25*200)*但愿人长久*TONES_4 DW 262,262,262,220,196,220,262,262,262,220,196,220,294 DW 330,262,220,330,262,220,294,262,220,349,349,220,262,294,294,196,247,220,247,262,-1BEAT_4 DW 100,2 DUP(50*200,25*200,25*200,25*600,25*200,50*400) DW 2 DUP(50*200,25*200,25*
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1