单片机课程分析报告之音乐播放器.docx
《单片机课程分析报告之音乐播放器.docx》由会员分享,可在线阅读,更多相关《单片机课程分析报告之音乐播放器.docx(13页珍藏版)》请在冰豆网上搜索。
单片机课程分析报告之音乐播放器
单片机课程设计之音乐播放器
学生姓名
学号
所在学院
专业名称
班级
指导教师
成绩
一、设计功能
(一)基本功能
(二)扩展功能
二、设计原理
(一)单片机产生不同频率脉冲信号的原理:
三、方案与论证
四、设计内容
(一)系统框图和设计原理图
(二)软件设计流程图
五、总结
附录:
一、设计功能
(一)基本功能
1.利用口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,演奏乐
2.采用显示信息
3.播放时显示歌曲序号(或名称)
(二)扩展功能
.可通过功能键选择乐曲,暂停,播放。
.显示乐曲播放时间或剩余时间。
二、设计原理
(一)单片机产生不同频率脉冲信号的原理:
()要产生音频脉冲,只要算出某一音频的脉冲(频率),然后将此周期除以,即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的反相,然后重复计时此半周期的时间再对反相,就可以在脚上得到此频率的脉冲。
()利用的内部定时器使其工作在计数器模式下,改变计数值及以产生不同频率的方法如下:
例如,频率为,其周期天,因此只要令计数器计时,在每计数次时就将反接,就可得到中音()。
计数脉冲值与频率的关系公式如下:
(:
计数值,:
内部计时一次为,故其频率为,:
要产生的频率)
()其计数值的求法如下:
计算举例:
设,求低音()、中音()、高音()的计数值。
低音的
中音的
高音的
()调个音符频率与计数值的对照表如下表所示:
表调各音符频率与计数值的对照表
音符频率()简谱码(值)音符频率()简谱码(值)
低
中
低
中
低
低中
高
低
高
低
高
低高
中
()节拍:
每个音符使用个字节,字节的高位代表音符的高低,低位代表音符的节拍,下表为节拍码的对照。
但如果拍为秒,拍是秒,只要设定延迟时间就可求得节拍的时间。
假设节拍为,则拍应为,以此类推。
所以只要求得拍的时间,其余的节拍就是它的倍数,如下表为和节拍的时间设定。
表节拍码对照表
节拍节拍
节拍码节拍数节拍码节拍数
拍拍
拍拍
拍拍
拍拍
又拍拍
又拍拍
又拍拍
拍拍
又拍又拍
又拍又拍
又拍又拍
拍又拍
又拍又拍
又拍又拍
又拍又拍
表各调节拍的时间设定表
节拍
节拍
曲调值
曲调值
调
毫秒
调
毫秒
调
毫秒
调
毫秒
调
毫秒
调
毫秒
拍的延迟时间毫秒
:
:
:
$
()移调
一般的歌曲,有、、、等节拍类型,但不管有几拍,基本上是在调下演奏的。
如果是调,则音名唱,音名唱,音名唱,音名唱,音名唱,音名唱,音名唱,音名唱等。
但是,并不是所有的歌曲都是在调下演奏的,还有调、调、调、调等。
调是将调各音符上升一个频率实现的,即调下的音名在调下唱,调下的音名在调下唱,大调的音名在调下上升高半音符唱,调下的音名在调下唱,调下的音名在调下上升高伴音符唱。
这种唱法称为移调。
表调在各调中的音名
音名
调
调
调
调
调
调
调
调
三、方案与论证
.单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
概括的讲,一块芯片就成了一台计算机。
单片机是美国公司于年推出的产品,与单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达条,单片机可以算是相当成功的产品,一直到现在,系列或其兼容的单片机仍是应用的主流产品,各高校及专业学校的培训教材仍与单片机作为代表进行理论基础学习。
系列单片机主要包括、和等通用产品。
单片机仿真实验仪是由广州致远电子有限公司设计的系列单片机仿真实验仪之一,是一种功能强大的单片机应用技术学习、调试。
.基于单片机的音乐播放器可应用于,,扩音器等很多方面,并可作为很多系统的辅助功能,作为单片机的重要硬件资源之一,利用定时器可以产生各种固定频率的方波信号,也可以产生包括""、""、""等音阶在内的各种频率声音。
将各个音阶连接在一起,便可组成一支曲子或是演奏一段旋律。
基于这个思想,我设计了一款特殊的"音乐播放器",本播放器可实现播放、暂停、复位等功能。
为了体现乐曲播放过程中的动态效果,增加了只,作随机闪烁以指示旋律的节奏。
由于时间及条件限制,本设计实现了一种简单的音乐播放器,其核心器件采用单片机,本播放器具有电路简单,功能强大,易于拓展等特点。
在此基础上,可以添加按键,显示屏等模块,实现切换歌曲,歌名显示,动感音乐屏等功能。
四、设计内容
(一)系统框图和设计原理图
.电路原理图
图中,为复位键,为键盘电路,可以进行选择曲目。
扬声器在每个操作后把程序中存储的信号进行放大还原成音乐播放出来,可以在死机等情况下进行系统复位。
.矩阵键盘电路设计
由于设计要求使用键盘的按键数目较多,所以本设计采用行列式键盘,同时也能减少键盘与单片机接口时所占用的线的数目,在按键比较多的时候,通常采用这样方法。
其原理如图所示。
每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要条行线和条列线,即可组成具有×个按键的键盘。
在这种行列式矩阵式键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
当确认有按键按下后,下一步就要识别哪一个按键按下。
对键的识别通常用逐行扫描查询法。
首先辨别键盘中有无键按下,有单片机口向键盘送全扫描字,然后读入行线状态来判断。
方法是:
向行线输出全扫描字,把全部行线置为低电平,然后将列线的电平状态读入累加器中。
如果有按键按下,总会有一根列线电平被拉至低电平,从而使列线不全为。
判断键盘中哪一个键被按下使通过将行线逐列置低电平后,检查行输入状态来实现的。
方法是:
依次给行线送低电平,然后查所有列线状态,如果全为,则所按下的键不在此行;如果不全为,则所按下的键必在此行,而且是在与零电平行线相交的交点上的那个键。
.程序流程框图
总体程序流程图
根据硬件设计结果,为满足要求,程序应有主程序、按键处理程序、中断服务程序和发声程序等部分构成。
主程序中主要是程序各部分的初始化;按键处理程序处理五个按键的操作,包括各个按键的响应程序以及发声输出等;
(二)软件设计流程图
.音乐软件的设计
音乐代码库的建立方法
()先找出乐曲的最低音和最高音范围,然后确定音符表的顺序。
()把值表建立在,构成发音符的计数值放在“”。
()简谱码(音符)为高位,节拍为(节拍数)为低位,音符节拍码放在程序的“”处。
()音符节拍码为音乐结束标记。
选曲
在一个程序中,需要演奏两首或两首以上的歌曲时,音乐代码库的建立有两种方法:
()将每首歌曲建立相互独立的音符表和发音符计数值。
()在建立公用音符表后,再写每首歌的发音计数值中的代码
不管采用那种方法,每首歌曲结束时,在中均需加上音乐结束符。
歌曲的设计
下面以歌曲《送别》和《三个和尚》的设计为例,讲述歌曲在单片机中的实现。
曲谱如下图所示
从两首歌中可看出,最低音为低,最高音为高。
根据音乐软件的设计方法,简谱对应的简谱码、值、节拍数如表所示。
表简谱对应的简谱码、值、节拍数
简谱
发音
简谱码
值
节拍码
节拍数
低
低音
中音
中音
中音
中音
中音
中音
中音
高
高音
低
低音
低
低音
五、总结
芯片有多组引脚,可实现多种拓展功能,由于知识,能力,时间,条件所限,我只实现了播放自编歌曲的功能,其实,还可以同时拓展点阵屏幕,按键选歌,以及多组灯光闪亮等功能,换用更高档的芯片后,甚至可以实现的丰富功能,在补充了相应知识后我将尝试实现更多的功能。
附录:
程序源代码如下:
工作在方式
;中断使能
:
;设简谱码指针初始值
:
;简谱码指针暂存累加器
;设简谱码
;取到的简谱码不是结束码,传取节拍码
;是结束码,退出
:
暂存简谱码
;取节拍码
节拍码暂存
;取音符码
;音符码不为,调发音子程序
;音符码为,不发音
;取相应计数值
;暂存高位字节
;取相应计数值的低位字节
;暂存低位字节
;启动定时器
:
;指向下一个简谱码
:
;停止计时器
;现场保护
反相输出,演奏音乐
;重设计数值
曲调,演示子程序
$
;简码值
;歌曲《送别》
;歌曲《三个和尚》