简易乐曲播放器的设计报告(1月19日).doc

上传人:doc321 文档编号:14867421 上传时间:2022-02-22 格式:DOC 页数:10 大小:419.50KB
返回 下载 相关 举报
简易乐曲播放器的设计报告(1月19日).doc_第1页
第1页 / 共10页
简易乐曲播放器的设计报告(1月19日).doc_第2页
第2页 / 共10页
简易乐曲播放器的设计报告(1月19日).doc_第3页
第3页 / 共10页
简易乐曲播放器的设计报告(1月19日).doc_第4页
第4页 / 共10页
简易乐曲播放器的设计报告(1月19日).doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《简易乐曲播放器的设计报告(1月19日).doc》由会员分享,可在线阅读,更多相关《简易乐曲播放器的设计报告(1月19日).doc(10页珍藏版)》请在三一文库上搜索。

1、课 程 设 计 课程名称_ 嵌入式系统 _题目名称_简易乐曲播放器设计_学生学院_自动化学院_专业班级_电子信息科学与技术12(1) 学 号 3112001308 3112001304 学生姓名 洪应佳 陈泽亮 指导教师 徐迎晖 2015 年 1月 19 日简易乐曲播放器设计【摘要】本设计是一个基于PSoC 5LP的简易音乐播放器,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。播放歌曲时,蜂鸣器发出某个音调。本设计利用PSOC Creator编程软件对音乐盒源程序进行编程并调试。【关键字】音乐播放器

2、; PSoC 5LP; PSOC Creator; 音调引言 嵌入式系统是继模拟电子技术基础、数字电子技术基础课程后,电气类、自控类和电子类,IC设计类等专业学生在电子技术实验技能方面综合性质的实验训练课程,是电子技术基础的一个部分,其目的和任务是让学生掌握基于PSoC 5LP设计的基本方法,熟悉PSOC Creator等软件,并能利用软件设计一个电子技术综合问题,并在开发板上成功下载,为以后进行工程设计实际问题的研究打下设计基础。 1.通过课程设计使学生能熟练掌握一种PSOC Creator软件的使用方法,能熟练进行设计 输入、编译、管脚分配、下载等过程。 2.通过课程设计使学生能利用软件进

3、行一个电子技术综合问题的设计。 3通过课程设计使学生初步具有分析寻找和排除电子电路中常见故障的能力。 4通过课程设计使学生能独立写出严谨的、有理论根据的、实事求是的、文理通顺的字迹端正的课程设计报告。设计的要求概况 本设计实现一段简单乐曲的播放,生成各音阶音频,并按照乐谱记录的旋律播放出该乐曲。基本要求为实现C大调音阶中的各个音及其相邻的12个八度音阶,能播放一段单声部乐曲。乐谱存储在片内存储器中;音频功率放大及扬声器电路自制,再与PSoC实验板连接;播放的乐曲可选择诸如单声部的“小星星”等,本设计选择的乐曲是“小兔子乖乖”。1. 设计原理及总体思路产生音乐的两个因素是音乐频率和音乐的持续时间

4、,以纯硬件完成演奏电路比利用微处理器(CPU)来实现乐曲演奏要复杂的多,根据设计要求,乐曲硬件演奏电路系统主要由音频发生模块和乐曲存储模块组成。音频的发生采用PWM方波输出模拟得到;音调的高低用音阶表示,不同的音阶对应不同的频率,得到与各个音阶对应的频率输出。乐曲存储模块产生节拍控制和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,而由计数器的计数时钟信号作为乐曲节拍控制信号。因此,不同频率的方波就可以产生音阶。PWM模块采用的时钟频率为200K,根据频率的大小计算出PWM的溢出值,通过改变PWM的溢出值达到设置PWM输出频率,从而达到了控制频率,即音阶的目的。通过修改占空比可以改变输出音

5、量大小,在音阶之间采用音量渐减的方式来连接,让声音循序渐进,更加好听。 2.乐谱的认识2.1 音调的确定高音DO的频率(1046Hz)刚好是中音DO的频率(523Hz)的一倍,中音DO的频率(523Hz)刚好是低音DO频率(266 Hz)的一倍;同样的,高音RE的频率(1175Hz)刚好是中音RE的频率(587Hz)的一倍,中音RE的频率(587Hz)刚好是低音RE频率(294 Hz)的一倍。计数脉冲值与频率的关系公式如下:N=Fi2FrN:计算值;Fi:内部计时一次为1us,故其频率为1MHz;其计数值的求法如下:T=65536-N=65536-Fi2FrC调各音符频率与计数值T的对照表如下

6、表所示。 简谱中的音名与频率的关系2.2节拍的确定一首音乐是由许多不同的音符组成的,而每个音符对应着不同频率,这样就可以利用不同的频率的组合,加以与拍数对应的延时,构成音乐。了解音乐的一些基础知识,我们可知产生不同频率的音频脉冲即能产生音乐。对于单片机来说,产生不同频率的脉冲是非常方便的,利用单片机的定时/计数器来产生这样的方波频率信号。因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。节拍与节拍码对照表:节拍码节拍数节拍码节拍数11/4拍11/8拍22/4拍21/4拍33/4拍33/8拍41拍42/1拍51又1/4拍55/8拍61又1/2拍63/4拍82拍81拍A2又1/2

7、拍A1又1/4拍C3拍C1又1/2拍F3又3/4拍每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍。如果1拍为0.4秒,1/4拍实0.1秒,只要设定延迟时间就可求得节拍的时间。假设1/4拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数。3.硬件电路设计3.1硬件结构框图3.2PSOC硬件电路搭建:3.3音频功放电路P6_0引脚设置为音频(PWM)输出,由于PSOC驱动能力不够,采用功放进行音频放大。如图:3.4引脚配置图3.5 总体功能介绍以及分析顶层文件编译好之后,通过电脑连接到硬件上,下载顶层文件到开发板

8、里,下载完毕之后通过LCD可以看到第一行是“Lets Go.”,第二行为计时;喇叭开始播放“小兔子乖乖”,播放完一遍之后,隔2s再次播放第二遍,声音流畅悦耳,基本达到设计功能要求。 本设计按照乐谱记录的旋律播放出该乐曲。基本要求为实现C大调音阶中的各个音及其相邻的12个八度音阶,能播放一段乐曲。4.乐曲简谱本次选用歌曲为耳熟能详的儿童歌曲小兔子乖乖,该曲乐如下图:5.本设计源代码5.1 源代码/* =/* =*/#include unsigned int comp_valua=50;unsigned char m,xx,yy;unsigned int Del_ms=2000,kk,sing_T

9、,TIME;/简谱中的音名与频率的关系unsigned int freq_list37=763,680,606,573,510,455,405,382,346,303,287,255,227,202,191,170,152,143,128,114,101,;/小兔子乖乖简谱简谱对应各个音调的详细列表音调(低,中,高),音谱,节拍数/第一遍,0-37unsigned char Rabbit763=1,5,2,2,1,4,1,6,4,1,5,2,1,5,2, 1,3,4,1,5,4,1,6,4,2,1,4,1,5,2,1,5,2, 1,6,2,1,5,4,1,3,4,1,2,2,1,2,2, 1,

10、3,2,1,5,4,1,3,4,1,2,2,1,1,2, 1,6,4,1,5,4,1,6,4,1,5,4,1,3,4,1,6,4,1,5,2, 1,2,4,1,5,4,1,3,4,1,2,4,1,1,2, 0,6,4,1,1,4,1,2,4,1,3,4,1,1,2,/第二遍,某些调稍微有一些变化(38-75) 1,5,2,2,1,4,1,6,4,1,5,2,1,5,2, 1,3,4,1,5,4,1,6,4,2,1,4,1,5,2,1,5,2, 1,6,2,1,5,4,1,3,4,1,2,2,1,2,2, 1,3,2,1,5,4,1,3,4,1,2,2,1,1,2, 1,6,4,1,5,4,1,

11、6,4,1,5,4,1,3,4,1,6,4,1,5,2, 1,2,4,1,5,4,1,3,4,1,2,4,1,1,2, 0,6,4,1,1,4,1,2,4,1,3,4,1,1,1, ;/LCD显示的定义void LCD_number(unsigned char x,unsigned char y,unsigned int number)unsigned char string=00;number=number;string0=(number%1000)%100)/10+0x30;string1=number%10+0x30;LCD_Position(y,x) ;LCD_PrintString(

12、string);/主函数void main() LCD_Start(); /启动LCDLCD_Position(0,0) ; /LCD初始化LCD_PrintString(Lets Go.);PWM_Start() ; /启动PWM while(1)TIME=0;for(xx=0;xx38;xx+) PWM_WritePeriod(kk); kk=freq_listRabbitxx0Rabbitxx1-1; /读取简谱的音符 PWM_WriteCompare(kk); /占空比输入 kk=kk/1.015; LCD_Position(1,0) ; LCD_number(6,1,TIME); f

13、or(m=1;m100)sing_T=0;TIME+;if(TIME59)TIME=0;LCD_number(6,1,TIME); PWM_WriteCompare(0); /第一遍播放结束,延时2s后播放第二遍 CyDelay(2000); /第二遍的播放,稍有不同 for(yy=38;yy76;yy+) PWM_WritePeriod(kk);kk=freq_listRabbityy0Rabbityy1-1; /读取简谱的音符(37-75) PWM_WriteCompare(kk); /占空比的设置 kk=kk/1.015;LCD_Position(1,0) ; /led显示位置 LCD_

14、number(6,1,TIME); /led显示时间 for(m=1;m100)sing_T=0;TIME+;if(TIME59)TIME=0;LCD_number(6,1,TIME); 5.2源代码分析 1.首先,确定简谱中的音名与频率的一一对应关系,列出他们的关系,再通过数组确定小兔子乖乖简谱简谱对应各个音调的详细列表音调(低,中,高),音谱,节拍数,LCD显示的设置,秒表的设置,做好这些前期准备工作。2.第二部分是主函数部分,通过读出第一部分所列出确定歌曲的音谱,确定该音谱的时间,也就是设置占空比,输出pwm波,从而驱动外放电路,接下来就是美化优化的部分,为了使声音更加饱满圆润,通过一个

15、循环来随着节拍声音减少,也就是声音幅度衰减处理,从而不断完善使声音发出来更加动听。6.体会总结 在本次课程设计中,我们首先遇到的问题就是乐谱的解读,因为我们对乐谱的基础知识的认识基本为零。为此,我们花了一个下午的时间来了解乐谱的基本知识,通过查找资料,与同学交流了解到了声音音谱的发生规律,信号的频率与声音的关系,来生成不同的声谱。 经过此课程设计,我对PSOC 5LP和嵌入式系统有了进一步的了解,让我很好的锻炼了理论联系实际,与具体项目、课题相结合开发、设计产品的能力。既让我们懂得了怎样把理论应用于实际,又让我们懂得了在实践中遇到的问题怎样用理论去解决。我们还需要大量的以前没有学到过的知识,于

16、是图书馆和网络成了我们很好的助手。在查阅资料的过程中,我们要判断优劣、取舍相关知识,不知不觉中我们查阅资料的能力也得到了很好的锻炼。我们学习的知识是有限的,在以后的工作中我们肯定会遇到许多未知的领域,这方面的能力便会使我们受益非浅。在设计过程中,总是遇到这样或那样的问题。有时发现一个问题的时候,需要做大量的工作,花大量的时间才能解决。自然而然,我的耐心便在其中建立起来了。为以后的工作积累了经验,增强了信心。 这次设计也使我对PSOC Creator的运用更加灵活,熟悉了对该软件从工程建立到程序下载执行各个步骤的操作,对以前学习上的不足得到了补充。并且,通过这次课设,我在学业上有了明显的提高。锻炼了自己的独立思考能力。同学们有问题不能解决时,便提出共同讨论,共同解决。 与此同时通过这次毕业设计,让我懂得实践与理论是结合在一起的。时间已经过去,在此我要感谢老师对我的教导给了我前所未有的帮助,希望此设计的不足之处,老师能给予指导,我定会耐心加与纠正,非常感谢老师。 总之,这次设计让我学到了很多知识,为我以后的学习奠定了基础。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1