单片机音乐播放器课程设计分析.pdf
《单片机音乐播放器课程设计分析.pdf》由会员分享,可在线阅读,更多相关《单片机音乐播放器课程设计分析.pdf(25页珍藏版)》请在三一文库上搜索。
1、I 摘要 本文将介绍一种以 89C51 型单片机为基础元件设计的自动音乐播放器。在当今这个科 技高速发展的时代,生活节奏的加快,人们长期处于工作、学习压力过大的状态,对于调 节心理压力而言音乐对于每一个人都十分重要,由此音乐播放器在国内已经开始普及。校 园里的上下课的铃声,宿舍内早晨的起床号声音,都由以前枯燥刺耳的铃音转变成了好听 的音乐,公路、广场中的计时装置也逐渐开始采用音乐来充当铃声。此装置不仅为人们日 常生活的计时提供了方便,同时也为目前快节奏的生活带来了乐趣。 本文是应用 MCS-51 单片机原理和控制理论设计音乐演奏控制器的硬件电路,并利用C 语言进行程序设计。通过控制单片机内部的
2、定时器来产生不同频率的方波,驱动蜂鸣器发 出不同音调的音乐,再利用延迟来控制发音时间的长短。把乐谱转化成相应的定时常数就 可以从发音设备中演奏出悦耳动听的音乐。 这种控制电路结构简单,可读性高, 应用性强;软件程序适应范围广,对于不同的音 乐只需要改变相应的定时常数即可。 关键词:单片机;音乐播放器;C语言。 II 目录 绪论 . . 1 第 1 章音乐盒的设计总体方案. . 2 第 2 章硬件电路设计 . . 3 2.1 总体设计框图 . 3 2.2 时钟电路 . 3 2.3 复位电路 . 3 2.4 选曲按键电路 . 3 2.5 音频发生及放大电路 . . 4 第 3 章软件程序设计 .
3、. 5 3.1 单片机发声概述 5 3.2 程序流程图 . . 6 3.3 音乐的产生 . . 7 第 4 章 KEIL 仿真软件的应用. 8 第 5 章调试与故障分析 . . 9 5.1 软件程序调试 . 9 5.2 硬件电路调试 . 9 总结 . 10 致谢 . 11 参考文献 . 12 附录 1:原理图 . 13 附录 2:源程序 . 14 1 绪论 单片机,更确切地说应称为作微控制器,是20 世纪 70 年代中期发展起来的一种面向 控制的大规模集成电路模块,其特点是功能强、体积小、可靠性高、价格低廉。它一面世 便在工业控制、数据采集、智能仪表化、机电一体化、家用电器等领域得到了广泛应用
4、, 极大地提高了这些领域的技术水平和自动化程度。因此,单片机的开发应用已成为高科技 和工程领域的一项重大课题。 本文将介绍一种以89C51型单片机为基础元件设计的自动音乐播放器。在当今这个科 技高速发展的时代,生活节奏的加快,人们长期处于工作、学习压力过大的状态,对于调 节心理压力而言音乐对于每一个人都十分重要,由此音乐播放器在国内已经开始普及。校 园里的上下课的铃声,宿舍内早晨的起床号声音,都由以前枯燥刺耳的铃音转变成了好听 的音乐,公路、广场中的计时装置也逐渐开始采用音乐来充当铃声。此装置不仅为人们日 常生活的计时提供了方便,同时也为目前快节奏的生活带来了乐趣。 本次设计以 89C51单片
5、机为基础,利用单片机编成技术对芯片进行功能设定,实现音 乐的播放。同时,利用单片机的定时器中断,在单片机内部产生所需要的音乐频率,并通 过音频功率放大器将音频信号放大,通过蜂鸣器连续播放一段音乐。 此设计通过多次测试, 音乐声音宏亮清晰,节拍正常,达到预期效果。 本文将围绕基于单片机的自动音乐播放器,介绍一些关于单片机的基础知识、音乐播 放器的制作原理及方法 (其中包括了音乐编程原理) 、定时器的设定, 以及仿真软件(Keil 、 Proteus )的使用方法。 2 第 1 章音乐盒的设计总体方案 单片机音乐播放器控制系统结构简单,环节较少,因此,单片机音乐播放器包括LED 彩灯、数码管的显示
6、。除了播放音乐有按键外,其余的硬件组成大体相同;对于单片机音 乐播放器声音的读出除了蜂鸣器以外,还要配置合适的放大器播放出响亮的声音。 图 1-1 结构总图 单片机音乐播放器电路板向着小型化、低功耗、抗千扰、低成本、实用功能方向发展。 因此在对单片机的选择趋向于容量适中、功能丰富、性能可靠、价格低的元件。因此本设 计中应用最为广泛的MCS-51系列 8 位单片机 8051。 单 片 机 按键电路复位电路 晶振电路发声电路 时钟电路电源电路 3 第 2 章硬件电路设计 2.1 总体设计框图 图 2-1 总设计图 2.2 时钟电路 EA/VP X1 19 X2 18 RESET 9 RD 17 W
7、R 16 INT0 12 INT1 13 T0 14 T1 15 P10/T 1 P11/T 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 P01 P02 P03 P04 P05 P06 P07 P20 P21 P22 P23 P24 P25 P26 P27 PSEN ALE/PTXD 11 RXD 10 GND 20 Vcc STC89C51/52 89C52RC C1 10uf S0 VCC C3 30p C2 30p 12MHZ D1 S1 S2 S3 R5 10K P32 P35 P12 P32 P35 P12 IN- GND 4 V OUT GA
8、IN 1 GAIN 8 BYPASS 7 LM386 R2 10K R3 1K R4 10RT1 104 R1 2.2K VCC 图 2-2 时钟电路 2.3 复位电路 EA/VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10/T 1 P11/T 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25
9、 26 P26 27 P27 28 PSEN 29 ALE/P 30 TXD 11 RXD 10 GND 20 Vcc 40 STC89C51/52 89C52RC C1 10uf S0 VCC C3 30p C2 30p 12MHZ D1 S1 S2 S3 R5 10K P32 P35 P12 P32 P35 P12 IN+ 3 IN- 2 GND 4 V OUT 5 GAIN 1 GAIN 8 BYPASS 7 Vcc 6 386运放 LM386 C7 10uf C6 104 C5 473 VCC R2 10K R3 1K R4 10RT1 104 R1 2.2K VCC 图 2-3 复位
10、电路 2.4 选曲按键电路 80c51 单片机 扬声器 歌曲制按钮 电源 复位 晶振 时 钟 4 S1 S2 S3 P12 P32 P35 图 2-4 选曲电路 其中 P3.2 播放 暂停, P1.2上一首歌, P3.5 下一首歌。 2.5 音频发生及放大电路 IN+ 3 IN- 2 GND 4 V OUT 5 GAIN 1 GAIN 8 BYPASS 7 Vcc 6 386运 放 LM386 C7 10uf C8 100uf C6 104 C5 473 VCC + - BEEP 0.25WR2 10K R3 1K R4 10RT1 104 图 2-5 音频发生及放大电路 利用 STC89C5
11、1 的 I/O 口产生一定频率的方波脉冲,通过LM386功放电路驱动喇叭发 出不同的音调从而演凑乐曲。 5 第 3 章软件程序设计 3.1单片机发声概述 一般来说,单片机不像其他专业乐器那样能奏出多种音色的声音,即不包含相应幅度 的谐振频率。单片机演奏的音乐基本都是单音频率。因此单片机演奏音乐比较简单,只需 能清楚“音调”和“节拍”两个概念即可。音调表示一个音符唱多高的频率。节拍表 示一个音符唱多长的时间。 知道了一个音符的频率后,便可以让单片机发出相应频率的振荡信号,从而产生相应 的音符声音。通过单片机的定时器进行定时中断,在中断服务程序中将单片机上完结单片 机 I/O 口来回置高电平或者是
12、低电平的,从而让扬声器发出声音。通过节拍计算出每个音 符所需要的时间,采用循环延时的方法来实现控制一个音符唱多长的时间,从而构成一首 完整的音乐。 音调主要由声音的频率决定。对一定强度的纯音,音调随频率的升降而升降;对一定 频率的纯音、低频纯音的音调随响度增加而下降,高频纯音的音调却随响度增加而上 升。 以标准高音 A的频率 F=440HZ ,其对应的周期为:T=1/F=1/440=2272us 因 此 需 要 在 单 片 机I/O端 口 输 出 周 期 为T=2272us 的 方 波 脉 冲 , 也 就 是 t=T/2=2272/2=1136us 也就是说,单片机上定时器的中断出发时间为11
13、36us。如果单片机采用定时器为工作 方式 1,它以振荡器的十二分频信号为计数脉冲。设外接晶振的振荡器频率为f ,则定时 器的预置初始值有以下公式来确定: Temp = 65536-(50000/CurrentFre)*10/(12000000/SYSTEM_OSC) TH = Temp /256 TL = Temp %256 6 3.2 程序流程图 开始 初始化堆栈 初始化音乐输出口及按钮 暂停 / 播放键是 否按下 上 一 曲 键 是 否 按下,并且在开 机 后 有 一 次 按 下暂停 / 播放键 根据当前状态播放相应歌曲的某个音 按键处理 是 否 下一曲键是否按 下,并且在开机 后有一次
14、按下暂 停/ 播放键 按键处理 是 否 按键处理 是 否 开机后是否按 下 过 暂 停 / 播 是 按键处理 否 7 3.3 音乐的产生 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以 利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频 率非常方便,我们可以利用单片机的定时/ 计数器 T0来产生这样方波频率信号,因此,我 们只要把一首歌曲的音阶对应频率关系弄正确即可。 若要产生音频脉冲,只要算出某一音频的周期(1/ 频率) ,再将此周期除以 2,即为半 周期的时间。利用定时器计时半周期时间,每当计时终止后就将P1.0 反相,然后重复计 时
15、再反相。就可在P1.0 引脚上得到此频率的脉冲。 利用 AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值 TH0及 TL0 以产生不同频率的方法产生不同音阶,例如,频率为 523Hz ,其周期 T1/5231912s, , 则半周期为 1912/2=956s, 因此只要令计数器计时956s,每计数 956 次时将 I/O 反相, 就可得到中音 DO (523Hz )则初始值为 65535-956 = 64579 = 0xFC43 。 计数脉冲值与频率的关系式(如式 3-1 所示) 是: Nfi 2fr(3-1) 式中, N是计数值; fi是机器频率(晶体振荡器为12MH
16、z时,其频率为 1MHz ) ;fr 是 想要产生的频率。 其计数初值 T 的求法如下: T65536N65536fi 2fr 例如:设 K65536,fi 1MHz ,求低音 DO (261Hz ) 、中音 DO (523Hz) 、高音 DO (1046Hz )的计数值。 T 65536 N 65536 fi 2fr 65536 10000002fr 65536 500000/fr 低音 DO的 T65536500000/26263627 中音 DO的 T65536500000/52364580 高音 DO的 T65536500000/104665059 8 第 4 章KEIL 仿真软件的应
17、用 硬件与软件的设计一般都要分别借助一些软件,如我们通常用作电路设计与制版的 Protel ,MCS-51程序开发工具 KEIL 等。 Keil C51 uVision2 集成开发环境是基于80C51内核的软件开发平台,支持工程建立、 程序的编译与链接、软件仿真、硬件仿真、目标代码的生成等功能。Keil C51编译器在产 生代码的准确性和效率方面达到了较高的水平。 与大多数集成开发环境类似, Keil C51集成开发环境也是用工程的方法来管理文件, 在一个工程文件中源程序(C51程序、汇编程序)、头文件等都可以进行统一管理。 安装运行 KEIL51,使用 KEIL 的开发工具进行项目开发过程,
18、与其他软件开发项目 的过程基本上相同: 创建 C 语言或汇编语言的源程序。 编译或汇编源文件。 纠正源文件中的错误。 从编译器和汇编器连接目标文件。 测试连接的应用程序。 9 第 5 章调试与故障分析 5.1 软件程序调试 本次设计的软件部分由音乐播放程序组成。 关于音乐播放程序的调试,我首先采用Preteus 软件来仿真,但是该仿真软件中没有 喇叭或蜂鸣器等声音播放工具。于是本人将图3-4 中的单片机的 P1.0 处接了一个示波器, 想通过这样来仿真并调试音乐播放程序,但是效果不是很理想。程序运行的时候,能看见 示波器有不同频率的波形交替出现,但是频率变换得很快,无法确认是否显示的是所需要
19、的频率,并且无法辨别音频变换的节奏是否正确。此方法并不适用。 接着,我制作了一个简单的单片机播放器电路。即在实验板上焊接实验电路,电路由 单片机 89C51 、按钮外围电路组成, 并在单片机的 P1.0 处用三极管连接一个简单的音频放 大器,再外接一个蜂鸣器。 将程序写入单片机中, 这样就能听出声音和音乐节奏是否正确。 5.2 硬件电路调试 本次设计的硬件电路主要由单片机89C51组成,在调试电路的过程中也碰到了一些问 题。 问题一:单片机无法正常下载程序。 调试步骤: (1)检查单片机和串口电路是否连接错。 (2)检查焊接电路是否有虚焊和漏焊。 问题二:下载音频程序后无法播放音乐。 调试步骤
20、: 检查电源是否正常接入电路中。 利用示波器测试单片机输出端是否有信号输出,发现信号输出正常,说明单片机正常 工作。 利用示波器测试音频放大电路输出端是否有信号输出,发现信号输出正常,说明音频 放大电路工作正常,同时说明是蜂鸣器部分出现了问题。 故障原因:焊接时将发声器件烧坏了,导致发不出声音。 解决方案:重新换一个无源蜂鸣器,即可正常播放音乐。 10 总结 经过这次创新设计,我觉得自己学到了不少东西。归纳起来,主要有以下几点: (1)通过这次创新设计,我能将以前四年所学到的专业知识与实践相联系,将所学 到的知识充分运用到本次设计中。同时,我也认识到自己知识上不足的地方,体会到了所 学理论知识
21、的重要性,知识掌握得越多,设计得就更全面、更顺利、更好。 (2)进一步熟悉了单片机的知识。通过本次设计,我对单片机的基本原理、内部结 构、各引脚功能、定时器和中断的应用都有了更深刻的理解。并且,能够以单片机为基础 元件设计一个简单的系统。 (3)通过本次设计,熟悉了设计一个项目所必经的几个阶段。本次设计从理论研究 到硬件原理图设计,从元器件的选择到PCB板的制作,从软件编程到最后的调试过程都由 我独立完成。这不仅锻炼了我独立完成设计工作的能力,更重要的是了解了一个电子产品 的设计流程,为将来投入工作增加了宝贵的经验,奠定了坚实的基础。 (4)提高了自己查找资料的能力。在设计过程中,我碰到了一些
22、暂时无法解决的问 题,于是我通过上网查阅和图书馆借阅资料,或是通过与老师同学交流一步步地解决了。 从中我懂得了我们这个专业的知识面相当广泛,我们需要不断通过各种途径更新自己的知 识,不断充实自己,同时要懂得与他人交流意见,积极听取别人的建议,懂得不断学习的 重要性。 11 致谢 在枣庄学院的求学生涯在师长、亲友的大力支持下,走得辛苦却也收获满囊,在论文 即将付梓之际,思绪万千,心情久久不能平静。伟人、名人为我所崇拜,可是我更急切 地要把我的敬意和赞美献给一位平凡的人,我的导师。我不是您最出色的学生,而您却是 我最尊敬的老师。您治学严谨,学识渊博,思想深邃,视野雄阔,为我营造了一种良好的 精神氛
23、围。授人以鱼不如授人以渔,置身其间,耳濡目染,潜移默化,使我不仅接受了全 新的思想观念,树立了宏伟的学术目标,领会了基本的思考方式,从论文题目的选定到论 文写作的指导 , 经由您悉心的点拨, 再经思考后的领悟, 常常让我有“山重水复疑无路, 柳 暗花明又一村”。 感谢我的爸爸妈妈,焉得谖草,言树之背,养育之恩,无以回报,你们永远健康快乐 是我最大的心愿。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺 利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚谢意! 最后再一次感谢所有在创新设计中曾经帮助过我的良师益友和同学,以及在设计中被 我引用或参考的论著的作者
24、。 12 参考文献 1 郑郁正 . 单片机原理及应用 . 四川大学出版社, 2003 2 谭浩强 .C 程序设计(第二版) . 清华大学出版社, 1999 3 王晓君 . 安国臣等 . MCS51 及兼容单片机原理与选型 . 北京- 电子工业出版社 , 2003 4 李启炎 . Protel 99SE应用教程 . 上海-同济大学出版社 2005.2 5 胡烨, 姚鹏翼 , 江思敏 . Protel 99 SE电路设计与仿真教程 . 北京-机械工业出版社 , 2006 6 张义和,陈敌北。例说8051。北京:人民邮电出版社,2006 7 张洪润,张亚凡。单片机原理及应用。清华大学出版社,2004
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 音乐 播放 课程设计 分析
链接地址:https://www.31doc.com/p-4735702.html