微机原理与接口技术--音乐点歌.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理与接口技术--音乐点歌

微机原理与接口技术 ----音乐点歌 答辩人:111 学号:1111 指导老师:111 课程内容及要求 可选五首以上歌曲。 可以选速度 选音调(A~G调;每音调之间大约相差1.12倍,既C调比D调的频率高1.12倍) 任意暂停 界面修饰。 方案 基于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 1975 工作原理说明 软件设计是本设计的重点,在软件设计中,要给8253和8255写数据,同时还要检测键盘输入的值,并根据输入的值,执行相应的代码来控制音乐的播放。首先在一开始先显示音乐菜单,然后调用DOS中21H 的01中断来接收键盘上的数据,在此过程中,程序在等待中,直到键盘上有键按下,程序才进行相应的操作。当键盘输入一个值后,首先判断输入的值是否为“ESC”或“enter”,如果是,那就退出程序,如果不是,再检测输入的数是否在1-4之间,如果是,再检测是高音,中音,还是低音,就调用相应的播放音乐的程序,否则我们重新提示,让其输入0-4之间的数值。 在音乐播放中,要实时的扫描键盘是否有值输入,如果用DOS中21H 的01中断肯定是不行的,因为执行这个中断程序会等待,无法继续播放音乐。因此采用中断21H中的0bH,这个中断不会等待,只会检查标准输入设备上是否有字符可读。然后通过检测AL中的值是否为0FFH,来判断键盘是否有值输入。如果键盘上有键输入,那么AL中会返回一个0FFH的值,否则就会返回00H。如果有,再判断这个输入的值是否为“p”,如果是,就停止音乐的播放,否则继续播放音乐,由于程序运行非常快,这样就不会感觉到音乐有停顿现象。实现和音乐演奏的同时实时扫描键盘的功能。当音乐播放完后,调用JMP命令跳回到主菜单,再次让操作者选择播放哪一首歌或是选择退出。 PC机相关电路以及相关接口电路如下 8253内部结构内部结构如下图所示 8253外部引脚如下图所示 8253模式设置控制字 音乐播放流程: 程序功能描述 显示入口菜单; 共5首待选择音乐: 1、北京欢迎你 2、春天花会开 3、欢乐颂 4、但愿人长久 5、情非得已 播放功能:音乐播放中途暂停、开始、快进、放慢、退出播放器 程序功能实现 MAIN :主函数 DISPLAY:显示菜单列表函数 INPUT:输入标号,用于选择功能函数 PLAY_MUSIC:用于实现播放音乐函数 KEY_C:按键中断子函数 SPK_ON:开启蜂鸣函数 SPK_OFF:关蜂鸣器子函数 程序调试 --运行菜单显示 程序调试 --播放歌曲显示 程序调试 --播放器各功能显示 收获和体会 通过此次课程设计的上机与理论学习,我感受颇深。此次课程设计让我了解到编写程序的复杂性,最起码是让我了解到编写程序时必需要很细心。 比如在编写过程中,我把程序分了几个子程序,在编写过程中,我常常感到混乱,弄不清楚程序之间的关系,有时调用错误,有时甚至还会出现无响应的状况。我觉得音乐点歌器很简单,可是在完成过程中,我发现,由于对汇编知识的遗忘和掌握不全,开头就比较艰难。 还有感觉到自己编写的程序很臃肿,明明感觉可以更加简洁,可是在编写的过程中,我没有办法控制好,只能选一次跳一次,这样模块的可重用性大大的降低了,一个小小的程序竟然有500行之多,这让我很无奈,也是对我的一个警钟,试想,如果以后要编写大程序,那会达到多少行呢。恐怕写出来也运行不了吧!所以我一定要加强编程能力。 同时也了解到上机操作实践的重要,这样有助于书本知识的系统化,现实化,更有利于自己的查漏补缺。书本上的知识是死的,能够在现实中运用的知识才是活的。 再者,通过这次课程设计,也促进了我们的同学之间互相学习,通过编写程序,增加了学习的积极性和趣味性。通过课程实践,巩固加深对课堂教学内容的理解,提高学生运用汇编语言进行程序设计和动态调试程序的能力,培养同学克服困难的毅力和精神,提高学生综合解决问题的能力。

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档