您的当前位置:首页正文

基于单片机控制音乐播放

2020-01-15 来源:好走旅游网


硅湖职业技术学院毕业论文(设计)

题 目 基于单片机控制的音乐播放器

年 级 08级

专 业 机电一体化

姓 名 李耘

学 号 *********

指导老师 李巧红

2011 年 5 月 1 日

硅湖职业技术学院毕业论文(设计)

基于单片机控制的音乐播放

李耘

【摘要】在电子技术日月更新、不断换代,计算机程序设计语言应用广泛,特别是单片机技术日趋发达的情况下,为了培养并增强设计自主性和动手能力强的人才,了解单片机强大的设计功能。在此次设计中主要采用单片机AT89C52和一个SOUNDER(喇叭)来实现音乐的播放。

【关键词】单片机 音乐播放器 控制

一、 绪论

现在各种各样的音乐播放器呈现在我们面前,外观越来越精美,功能越来越多,体积越来越小,重量也越来越小、价格越来越便宜。同时,随着当代手机行业的快速发展,许多手机厂商为了能够吸引广大的客户受到消费者的青睐,致此他们开始研究在手机上实现音乐和视频的播放,因此现在的手机都能够轻松的播放音乐了。这样人们就更很容易携带,随时随地都可以听,以便来缓解人们的疲劳、压抑、愉快人们的心情等,甚至有时还可以借着音乐来抒发自己的感情,传达我们对朋友的祝福。因此,在不知不觉中它成为了人们生活的一样必需品,无论到哪里、无论什么时候都可以听到我们想听的音乐。

在实际中参照单片机相关资料,就可容易的利用单片机设计出一个音乐发生器。在设计过程中人们还可考虑用多种方法进行实现,这样不但很好的发挥了人们的创新精神,还提高了动手能力、综合分析能力及专业知识运用能力。

二、 音乐基础知识

1

硅湖职业技术学院毕业论文(设计)

音作为一种物理现象,是由于物体振动而产生的,振动产生的声波作用于人耳,听觉系统将神经冲动传达给大脑,进而产生听觉。人耳能听到的声音频率大约在11—20000Hz,而音乐使用的音一般在27—4100Hz。

一首音乐就是由许多不同的音符组成的,而每一个音符对应着不同的频率,这样就可以利用不同的频率的组合,加以拍数对应的延时来构成不同的音乐。

音乐的产生需要不同频率的音频脉冲,对于单片机而言,可以利用它的定时/计数器产生这样的方波频率信号。在本设计中,单片机工作在12MHz时钟频率下,其时钟周期为1us,因此可以利用AT89C52的内部定时/计数器T0,使其工作模式为1,根据对应音符的不同频率求出计数器的初值T(即是TH0和TL0的值),则TH0=T/256,TL0=T%256。

三、系统方案设计

3.1设计任务

设计一音乐发生器:

(1)用单片机作为开发工具,至少能储存3首乐曲; (2)能按键选择乐曲序号,每按一次加1键乐曲序号加1,每按一次减1键乐曲序号减1;

(3)能进行仿真音乐发生器。

3.2设计过程

在毕业设计题目选择后,我积极的查阅相关资料。经过分析、思考及其指导老师的悉心的指导,我最终设计出了二种方案,并对每一种方案进行分析与考虑及各个方案的比较,选择了第一种方案——用

2

硅湖职业技术学院毕业论文(设计)

AT89C52单片机和蜂鸣器来实现音乐的播放。确定好设计方案后,将整个设计分成了三个步骤:一是设计的硬件电路图的绘制;二是程序的设计;三是硬件电路仿真与程序的编译、连接及运行。

3.3方案设计与选择

方案一用AT89C52单片机、八段数码管及蜂鸣器来实现音乐发生器。

主要运用单片机AT89C52、一个共阴极的八段数管及蜂鸣器三部分组成。它的主要思想就是将定时器0用于定时,作音符发生器用;定时器1用计数,这里用作中断;同时将所要播放的歌曲存放在指定的地址单元中,单片机来直接驱动蜂鸣器来实现音乐的播放。还实现上一曲、下一曲,就能够选择所要的乐曲了。该设计方案的硬件电路图的设计如下所示。

方案二用单片机AT89C51、LM386(音频功放) 和扬声器实现音乐发生器。

主要运用AT89C51单片机、音频功放芯片(LM386)和扬声器三部分组成。此方案中电路原理图也是由两部分组成:一是ATMEL公司的AT89C51单片机外接晶振电路(单片机的工作时钟12MHz)及复位电路来实现的;二是美国国家半导体公司的音频功率放大器(LM386)

3

硅湖职业技术学院毕业论文(设计)

电路。将单片机AT89C51的P0.0作为音频脉冲输出脚,输入到由LM386组成的音频功放电路中,经过处LM386处理后,从LM386的输出引脚,经过补偿网络(与蜂鸣器相并)主要是为了防止高频自激和过压现象,再输入到扬声器中,这样单片机发出的不同频率的音频信号就可以通过蜂鸣器发出我们所想要的乐曲。该设计方案的硬件电路图的设计如下所示。

综合以上二种方案都可以实现音乐的播放,比较二种设计方案来说:从电路原理图实现相对来说二种方案之中的第二方案比较简单,但是它没有实现音乐播放的其他功能,只能够循环的播放你所存储的音乐。而第一方案与第二方案大同小异,用的单片机不同一个是AT89C52、另一个是AT89C51,并同时方案利用了一个音频功放电路来放大输入的脉冲信号,这样就比第二方案中产生的音乐好听些,再利用开关按钮来控制音乐播放上一曲及下一曲和对待机时背景音乐的加速和减速。因此,在此次设计中我选择了第一种方案来实现音乐发生器。

四、硬件电路设计

4

硅湖职业技术学院毕业论文(设计)

4.1电路组成及工作原理

4.1.1电路组成

对于整个设计的电路由单片机、驱动发声电路及歌曲播放控制电路等部分组成,其中单片机AT89C52主要是将各个模块连接起来并控制各个模块;时钟电路则是用来产生时钟频率,一般是12MHz;驱动发声电路则是来播放音乐的;歌曲播放控制电路则是来控制歌曲的上一曲、下一曲以及待机时背景音乐的加速和减速;而整个电路组成框图则是用来控制歌曲的选择及音乐的播放。

4.1.2工作原理

利用单片机AT89C52直接来产生音频脉冲来驱动喇叭来完成音乐的播放 。利用了该单片机的内部定时器/计数器T0来定进行定时,同时利用定时器/计数器T1用业计数,并同时利用了该单片机的P2口的P2.0来作为音频脉冲的输出端。

4.2发声驱动电路

主要是采用一个三极管来驱动蜂鸣器来产生音乐。在单片机的P2口上的P2.0的端子上连接发声驱动电路,其中要先连接一个10k的电阻主要是用业限制电流过大,然后连接一个三极管来驱动蜂鸣器以致放出的音质较好,再连接蜂鸣器,因为用到一个蜂鸣器所以就可以不能区分它的正负极性了。

4.3控制电路

这部分电路主要是用来控制歌曲的上一曲、下一曲以及待机时背景音乐的加速和减速。采用了三个按钮来共同实现了音乐播放歌曲的

5

硅湖职业技术学院毕业论文(设计)

控制。

五、软件设计

5.1部分源程序设计

unsigned char * SelectMusic(unsigned char SoundIndex) {

unsigned char *MusicAddress = 0; switch (SoundIndex) {

case 0x00:

MusicAddress = &Music_Girl[0]; //挥着翅膀的女孩

break; case 0x01:

MusicAddress = &Music_Same[0]; //同一首歌

break; case 0x02:

MusicAddress = &Music_Two[0]; //两只蝴蝶 break; case 0x03: break; case 0x04: break; case 0x05: break; case 0x06:

6

硅湖职业技术学院毕业论文(设计)

break; case 0x07: break; case 0x08: break; case 0x09: break; default:break; }

return MusicAddress; }

void PlayMusic(void) {

Delay1ms(200);

Play(SelectMusic(MusicIndex),0,3,360); }

//***********************************************************************************

main() {

unsigned char Key; InitialCPU(); InitialSound(); InitialTimer2();

while(1) {

Key = GetKey();

7

硅湖职业技术学院毕业论文(设计)

if(RunMode==0x09) {

PlayMusic(); BeepIO = 1; }

if(Key!=0x00) {

KeyDispose(Key); } } }

5.2程序流程图

8

开 始 设置歌曲的入口地址及对变最初始化 判断按键的值及歌曲是否播放? 结束 硅湖职业技术学院毕业论文(设计)

六、系统调试

打开电路仿真的应用程序ISIS Professional,在其中选择该设计所需的的单片机或是元件,然后将其放置到要画图的区域中,可以双击该元件改变它相应的属性及参数。用带电气性的连接线来连接各个元件,从而构成了完整的电路图并保存在为.DSN为后缀名的文件,放在你所需的地方。打开程序仿真或调试应用程序Keil uVision2, 首先要建一个工程,再将程序添加到该工程中,再保存。再进行程序的编译与连接,检查程序是否正确,如果不正确,则进行分析直到正确为止;如果正确,则可以生成.hex文件。点击project菜单,选择options for target项或是直接点击常用工具栏中的图标打开对话框进行设置, 则就可以生成.hex文件了。再打开电路仿真的应用程序ISIS Professional,然后双击该电路图中的主的单片机,同时弹出一个对话框,在对话框中进行选择所生成的.hex文件,并还可以进行单片机的频率设置,再单击确定。点击运行检查是否可以运行正确。

七、总结

通过这次比较完整的单片机音乐发生器的设计,我摆脱了单纯的理论知识学习状态,和实际设计的结合锻炼了我的综合运用所学的专业基础知识,同时也提高我查阅文献资料、设计规范以及电脑画图等其他专业能力水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,经验得到了丰富,并且意志品质力。这是我们都希望看到的也正是我们进行毕业设计的目的所在。

9

硅湖职业技术学院毕业论文(设计)

致谢

经过两个多月的努力,我的毕业设计顺利完成了。在这里,我向所有指导过我的老师、帮助过我的同学和一直关心支持着我的家人,对他们表示深深的谢意。在整个毕业设计过程中,李老师不断对我得到的结论进行总结,并提出新的问题,使得我的毕业设计课题能够深入地进行下去,也使我接触到了许多理论和实际上的新问题,使我做了许多有益的思考。正如古人云:“师者传道授业解惑者也”,这正是李老师的写照,对于导师授予的做学术和做人的道理,我将会铭记在心对今后学习和生活中定会大有裨益 在此谨向尊敬的导师致以由衷的感谢和崇高的敬意。

【参考文献】

[1] 胡汉才.《单片机接口技术与运用》.清华大学出版社,2001 [2] 何立民.《单片机高级教程》.北京航空航天大学出版社,2001 [3] 赵晓安.《MCS-51单片机原理及应用》.天津大学出版社,2001.3 [4] 李广第.《单片机基础》.北京航空航天大学出版社,1999 [5] 谢嘉奎.《电子线路》.高等教育出版社,2002

10

因篇幅问题不能全部显示,请点此查看更多更全内容