资源描述:
《音乐演奏课程设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、楸机原殛鸟接口技术课程设计任务书题目系(部)专业班级学生姓名学号自动化052张维杭050817212月日至月指导教师(签字)系主任(签字)目录[一]摘要01[二]关键字01[三]设计内容01L四」设计目的01[五]设计要求01[/]需要知识••・•••••••••••••••••••01[七]方案论证03[八]操作说明05[九]心得体会05附录A乐谱05附录B音符频率表060711附录C程序代码参考文献音乐演奏,摘要:随着计算机在人们生活中的普遍应用,我没在工业生产生活应用计算机外,我没还可以用计算机干什么呢?基于这点我作一点
2、在于乐方面的设计,用PC机的8254芯片实现音乐的演奏。二,关键字:音乐,PC机,8254芯片。三.设计内容:PC机扬声器演奏音乐。设计目的:了解pc机扬声器系统的电路结构、学习用扬声器发声的编程方法。五.设计要求:用菜单选择乐曲,让扬声器按节拍演奏连续的音乐。且在演奏过程中可随意输入歌曲的相应字母演奏另一首音乐。六.需要知识:1.PC机发声系统PC机发声系统以8254的2号计数器为核心。系统初始化时,2号计数器工作在“方波发声器”方式,初值为二进制数,写入顺序为先低后高,CLK2为1.193182MHz当计数器初值为533H时
3、,OUT?输出的方波大约为900Hz,经过简单的滤波之后,送至扬声器。改变2号计数器的记数初值就可以使扬声器发出不同的频率的音响。82532.发声控制发声系统受8255A芯片(口地址为60H~63H)的两根输出线PB。和PB.的控制,PB。输出的高电平使计数器正常工作,PB冷俞出高电平打开输出控制门,因此执行下面的OPEN子程序可以打开扬声器,执行下面的CLOSE子程序可以打开扬声器。openproc;打开扬声器子程序pushaxinal,61hora1,03hout61h,aIpopaxretopenendpcloseproc
4、;关闭扬声器子程序pushaxinal,61handaI,Ofchout61h,aIpopaxretcIoseendp3演奏单音符•一首乐曲由若干音符组成,一个音符对应一个频率。将与一个频率对应的计数器初值写入2号计数器,扬声器就发出相应的音调,计数器初值的计算公式如下:计数器初值二1193182/输岀频率movdx,0012hmovax,34dehdiv频率值out42h,aImovaI,ahout42h,aI其中,1193182Hz转换成十六进制为1234DEH,因此在打开扬声器的条件下,执行下列程序段即可发出与输出频率对应
5、的音调。;频率转换成计数初值;低8位送2号计数器;高位送2号计数器4•控制音符的演奏时间■■■III控制音符的演奏时间,是设计音乐程序的关键问题。最直观的方法是按照乐谱为每一个音符规定一个演奏时间。在遇到一首不熟悉歌曲时,初期很难确定每个音符的演唱时间,而调试程序的需大量的时间。但可以这样认为为每一个音符规定一个“单位时间”。单位时间*“二音符的演唱时间其中,N为调试参数,一首歌曲只有一个调试参数。设计程序时用EQU伪指令定义调试参数初值先行估算,调试时再修改它。如何确定每个音符演奏的单位时间呢?我们知道,音符的节奏分为一拍、半
6、拍、1/4拍等等。如果在一首歌曲中,音符演奏的时间最短时间为1/8拍,我们就规定一拍音符的单位时间为8,半拍音符的单位时间为4,1/4拍音符的单位时间为2,1/8拍音符的单位时间仁编程时,首先将一个音符的频率值转换成计数器初值写入2号计数器,然后将音符的单位时间乘以调试参数N,再调用延时子程序,就可以控制音符的演奏时间了,调试时,只需要改变调试参数N即可。五.方案论证(1)频率表和时间表设计程序时,数据段设置两张“表”,一张是频率表,将与音符对应的频率值依次写入表中,另一张是时间表,依次存放每个音符的单位时间。当然,频率表和时间
7、表的表项要—对应,不能错位,频率表的最后一个表项为0,作为重复演唱或者停止演唱的标志。在接通扬声器的情况下,依次取出频率表中的频率值,转换成计数器初值写入2号的计数器,依次取出时间表中的单位时间和调试参数N相乘,然后再调用延时子程序即可得到延时时间,也就是音符的演奏时间。(2)休止符的处理歌曲中的休止符应如何处理呢?遇到休止符应该不发声,理论上可以用关闭扬声器的方法实现,但在编程时用这中方法处理太麻烦。但可以利用人耳的声学特点来实现。人耳可听的声音范围是15Hz~25Hz,低于此范围的是次声波,高于此声波的是超声波,人耳都听不见
8、。由于底频率实现起来比较困难,所以可以让计数器产生一个很高的频率,例如,若休止符的频率为M",那么经过汇编之后,就是65536Hz,这么搞的频率人耳已经听不到了。此外,对于连续演唱懂得同音符,可适当修改起频率值,以便产生略微的差别,从而具备节拍感,以达到最佳效果