简易乐曲播放器的设计报告(1月19日)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
课程名称_ 嵌入式系统 _
题目名称__简易乐曲播放器设计____
学生学院_____自动化学院_________
专业班级__电子信息科学与技术12(1)学号3112001308 3112001304
学生姓名洪应佳陈泽亮
指导教师徐迎晖
2015年1月19 日
简易乐曲播放器设计
【摘要】本设计是一个基于PSoC 5LP的简易音乐播放器,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。播放歌曲时,蜂鸣器发出某个音调。本设计利用PSOC Creator编程软件对音乐盒源程序进行编程并调试。
【关键字】音乐播放器;PSoC 5LP;PSOC Creator;音调
引言
嵌入式系统是继《模拟电子技术基础》、《数字电子技术基础》课程后,电气类、自控类和电子类,IC设计类等专业学生在电子技术实验技能方面综合性质的实验训练课程,是电子技术基础的一个部分,其目的和任务是让学生掌握基于PSoC 5LP设计的基本方法,熟悉PSOC Creator等软件,并能利用软件设计一个电子技术综合问题,并在开发板上成功下载,为以后进行工程设计实际问题的研究打下设计基础。
1.通过课程设计使学生能熟练掌握一种PSOC Creator软件的使用方法,能熟练进行设计输入、编译、管脚分配、下载等过程。
2.通过课程设计使学生能利用软件进行一个电子技术综合问题的设计。
3.通过课程设计使学生初步具有分析寻找和排除电子电路中常见故障的能力。
4.通过课程设计使学生能独立写出严谨的、有理论根据的、实事求是的、文理通顺的字迹端正的课程设计报告。
设计的要求概况
本设计实现一段简单乐曲的播放,生成各音阶音频,并按照乐谱记录的旋律播放出该乐曲。基本要求为实现C大调音阶中的各个音及其相邻的1~2个八度音阶,能播放一段单声部乐曲。乐谱存储在片内存储器中;音频功率放大及扬声器电路自制,再与PSoC实验板连接;播放的乐曲可选择诸如单声部的“小星星”等,本设计选择的乐曲是“小兔子乖乖”。
1.设计原理及总体思路
产生音乐的两个因素是音乐频率和音乐的持续时间,以纯硬件完成演奏电路比利用微处理器(CPU)来实现乐曲演奏要复杂的多,根据设计要求,乐曲硬件演奏电路系统主要由音频发生模块和乐曲存储模块组成。音频的发生采用PWM方波输出模拟得到;音调的高低用音阶表示,不同的音阶对应不同的频率,得到与各个音阶对应的频率输出。乐曲存储模块产生节拍控制和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,而由计数器的计数时钟信号作为乐曲节拍控制信号。因此,不同频率的方波就可以产生音阶。PWM模块采用的时钟频率为200K,根据频率的大小计算出PWM的溢出值,通过改变PWM的溢出值达到设置PWM输出频率,从而达到了控制频率,即音阶的目
的。通过修改占空比可以改变输出音量大小,在音阶之间采用音量渐减的方式来连接,让声音循序渐进,更加好听。
2.乐谱的认识
2.1 音调的确定
高音DO的频率(1046Hz)刚好是中音DO的频率(523Hz)的一倍,中音DO的频率(523Hz)刚好是低音DO频率(266 Hz)的一倍;同样的,高音RE的频率(1175Hz)刚好是中音RE 的频率(587Hz)的一倍,中音RE的频率(587Hz)刚好是低音RE频率(294 Hz)的一倍。
计数脉冲值与频率的关系公式如下:
N=Fi÷2÷Fr
N:计算值;Fi:内部计时一次为1us,故其频率为1MHz;
其计数值的求法如下:
T=65536-N=65536-Fi÷2÷Fr
C调各音符频率与计数值T的对照表如下表所示。
简谱中的音名与频率的关系
2.2节拍的确定
一首音乐是由许多不同的音符组成的,而每个音符对应着不同频率,这样就可以利用不同的频率的组合,加以与拍数对应的延时,构成音乐。了解音乐的一些基础知识,我们可知产生不同频率的音频脉冲即能产生音乐。对于单片机来说,产生不同频率的脉冲是非常方便的,利用单片机的定时/计数器来产生这样的方波频率信号。因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。
节拍与节拍码对照表:
节拍码节拍数节拍码节拍数
1 1/4拍 1 1/8拍
2 2/4拍 2 1/4拍
3 3/4拍 3 3/8拍
4 1拍 4 2/1拍
5 1又1/4拍 5 5/8拍
6 1又1/2拍 6 3/4拍
8 2拍8 1拍
A 2又1/2拍 A 1又1/4拍
C 3拍 C 1又1/2拍
F 3又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 总体功能介绍以及分析
顶层文件编译好之后,通过电脑连接到硬件上,下载顶层文件到开发板里,下载完毕之后通过LCD可以看到第一行是“Let's Go...”,第二行为计时;喇叭开始播放“小兔子乖乖”,播放完一遍之后,隔2s再次播放第二遍,声音流畅悦耳,基本达到设计功能要求。
本设计按照乐谱记录的旋律播放出该乐曲。基本要求为实现C大调音阶中的各个音及其相邻的1~2个八度音阶,能播放一段乐曲。
4.乐曲简谱
本次选用歌曲为耳熟能详的儿童歌曲《小兔子乖乖》,该曲乐如下图:
5.本设计源代码
5.1 源代码
/* ========================================
/* ========================================
*/
#include
unsigned int comp_valua=50;
unsigned char m,xx,yy;
unsigned int Del_ms=2000,kk,sing_T,TIME;