《基于单片机设计的音乐播放器》由会员分享,可在线阅读,更多相关《基于单片机设计的音乐播放器(28页珍藏版)》请在金锄头文库上搜索。
1、.摘要二十世纪九十年代以来,计算机、信息、电子、控制、通信等技术得到迅速发展,促使了社会生产力的提高,也使人们的生产方式和生活方式产生了日新月异的变化。随着人们生活水平的提高及对音乐的喜爱,对音乐播放器的品质,功能,品种等提出了越来越多的要求,表现在对控制系统性能、可靠性等要求越来越高。而品质的提高,功能的更新,可靠性的增强,品种的变化无不于产品的核心控制部分水平的提高密不可分。家用音乐播放器产品及其它有关消费电器产品都是一些开环或闭环控制系统,都由核心控制部分,执行部分与人机界面三部分组成。而最为重要的控制部分一般是由单片机来执行完成的,这就必将导致和促进单片机在音乐领域应用的发展。现在这些
2、由单片机实现的音乐播放器的功能越来越强、费用越来越低。例如,就市场上的mp3目前的功能越来越强大体积却越来越小,价格也逐渐便宜,被大多数人所能接受。但这些音乐播放器也或多或少的存在着一些问题,解决这些问题,还除智能化的单片机莫属。本文是基于单片机控制的音乐播放器的设计, 它可以实现音乐的播放,可以通过功能键来选择乐曲,播放或暂停。共有K1到K3三个功能键,K1-K2分别播放两首不同音乐,K3为复位键。主控芯片采用AT89C52,辅以必要的电路,采用C语言进行编程,编程后利用KEIL C51来进行编译,再将生成的HEX文件装入芯片中,采用proteus软件来仿真,检验功能得以正常实现。通过烧写不
3、同的程序,可以实现多首不同音乐的更换。关键词:单片机AT89C52,音乐播放,proteus 目录摘要2第一章 概述4第二章 系统设计5A硬件设计52.1硬件结构图52.2最小系统52.2.1单片机52.2.2电源电路62.2.3晶振电路62.2.4复位电路6B软件设计72.3主程序72.4子程序82.4.1放音子程序82.4.2延时子程序92.4.3显示子程序102.4.4键盘子程序11第三章 仿真与调试133.1软件调试133.2硬件调试15第四章 操作说明16第五章 参考文献17第六章 课程小结18第七章 附录197.1元器件清单197.2原理图207.3实物217.4程序22第一章 概
4、述近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入。同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,智能仪器就是以单片机为核心开发的一系列产品。随着科技的发展,智能仪器和单片机被各个领域所重视,工业方面、冶金方面都存在着许多控制难题,为了提高工作效率这就需要智能仪器和单片机技术的快速发展。为此为提高本科生的设计创新能力开设了智能仪器和单片机的课程设计。 本设计的目的是培养理论联系实际的学习方法以及独立解决工程实际问题的能力。主要内容是利用89C51单片机及其他一些器件来构成音乐播放器。从而实现按键控制播放音乐的效果
5、导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。现在利用AT89C52系列单片机设计的音乐播放器,依据单片机技术原理,通过硬件电路设计以及软件编译,设计出一个多功能音乐播放器。该音乐播放器主要由按键电路、晶振电路、复位电路以及扬声器组成。智能简便,方便使用,深受人们的喜爱。第二章 系统设计A硬件设计2.1硬件结构图本系统主要由稳压电源、A
6、/D转换器、单片机、译码显示等一系列电路组成,主要完成电压显示(02.55V)。其硬件结构图如图2-1。图2-1硬件结构图2.2最小系统2.2.1单片机本次设计使用的单片机芯片型号为:STC89C52图2-2 STC89C52管脚图2.2.2电源电路集成稳压器7805的简介: 7805集成稳压器是常用的固定输出为5V电压的集成稳压器。它的内部含有过流、过热及调整管的保护电路,采用了噪声低,温度漂移小的基准电压源,工作稳定可靠,而且价格便宜。 7805集成稳压器为三端器件,其管脚如图2-3所示:1脚为输入端,2脚为接地端,3脚为输出端,使用十分方便。 78系列的稳压集成块的极限输入电压是36V,
7、最低输入电压比输出电压高3-4V。还要考虑输出与输入间压差带来的功率损耗,所以一般输入为9-15V之间。当输出电压较大时,7805应配上散热板。直流5V电源电压产生的过程: 将直流9V经过稳压器使输出电压为直流5V。 IC采用集成稳压器7805,C3和C4为输入端的滤波电容,C5和C6为输出端的滤波电容。2.2.3晶振电路 本次设计采用的是12MHZ的晶振。 晶振电路两只电容在20pF100pF之间取值,其取值在60pF70pF时振荡器频率稳定性较高,按照一般经验,外接晶体时两个电容的取值为30pF;外接陶瓷振荡器是两电容的典型值是47pF。2.2.4复位电路 在时钟电路工作后,只要在单片机的
8、RST引脚上出现24个时钟振荡脉冲(2个机器周期)以上的高电平,单片机便可实现初始化状态服务。为保证应用系统可靠的复位在设计复位电路时,通常使RST引脚保持4ms以上的高电平,只要RST保持高电平,STC89C52单片机就会循环复位;当RST从高电平变为低电平时,单片机就从0000H地址开始执行程序,在单片机复位的有效期间,ALE、PSEN引脚输出高电平。B软件设计2.3主程序 本系统的主模块程序框图如图3-1所示。开始系统初始化,判断是否有键按下,当K1键按下时,播放第一首歌,当K2键按下时,播放第二首歌。K3键按下停止播放,并返回到系统初始化,再判断是否有键按下。图2-3主程序流程图2.4
9、子程序 单片机发音原理:单片机演奏音乐基本是单音频率,它不包含相应幅度的谐波频率,也就是说不能象电子琴那样能奏出多种音色的声音,但一定要弄清楚两个概念即可,也就是“音调”和“节拍” 。音调:表示一个音符唱多高的频率。节拍:表示一个音符唱多长的时间。2.4.1放音子程序 在音乐中所谓“音调”,其实就是我们常说的“音高”。在音乐中常把中央C上方的A音定为标准音高,其频率f=440Hz,其余与其比较。f1和f2为两个音符,当这两个音符的频率相差一倍时,也即f2=2f1时,则称f2比f1高一个倍频程。以1i八音区为例,12个半音是:11、12、22、23、34、44,45、5一5、56、66、67、7
10、i 。这12个音阶的分度基本上是以对数关系来划分的。如果我们只要知道了这十二个音符的音高,也就是其基本音调的频率,我们就可根据倍频程的关系得到其他音符基本音调的频率。确定一个频率所对应的定时器的定时初值的方法: 以标准音高A为例:标准音高A的频率f = 440 Hz,其对应的周期为: T = 1/ f = 1/440 =2272s。因此,需要在单片机I/O端口输出周期为T =2272s的方波脉冲,如图3-2所示。图2-4 方波脉冲由上图可知,单片机上对应蜂鸣器的I/O口来回取反的时间应为:t = T/2 = 2272/2 = 1136s 这个时间t也就是单片机上定时器应有的中断触发时间。一般情
11、况下,单片机奏乐时,其定时器为工作方式1,它以振荡器的十二分频信号为计数脉冲。设振荡器频率为f0,则定时器的予置初值由下式来确定:t = 12 *(TALL THL)/ f0 式中TALL = 216 = 65536,THL为定时器待确定的计数初值。因此定时器的高低计数器的初值为:TH = THL / 256 = ( TALL t* f0/12) / 256TL = THL % 256 = ( TALL t* f0/12) %256 将t=1136s代入上面两式(注意:计算时应将时间和频率的单位换算一致),即可求出标准音高A在单片机晶振频率f0=12Mhz,定时器在工作方式1下的定时器高低计数
12、器的予置初值为 :TH440Hz = (65536 1136 * 12/12) /256 = FBHTL440Hz = (65536 1136 * 12/12)%256 = 90H2.4.2延时子程序 以为例加以说明,它表示乐谱中以四分音符为节拍,每一小结有三拍。如图3-3所示。图2-5 音乐节拍 其中1 、2 为一拍,3、4、5为一拍,6为一拍共三拍。1 、2的时长为四分音符的一半,即为八分音符长,3、4的时长为八分音符的一半,即为十六分音符长,5的时长为四分音符的一半,即为八分音符长,6的时长为四分音符长。那么一拍到底该唱多长呢?一般说来,如果乐曲没有特殊说明,一拍的时长大约为400500
13、ms 。我们以一拍的时长为400ms为例,则当以四分音符为节拍时,四分音符的时长就为400ms,八分音符的时长就为200ms,十六分音符的时长就为100ms。 通过上面关于一个音符音调和节拍的确定方法,我们就可以在单片机上实现演奏音乐了。具体的实现方法为:将乐谱中的每个音符的音调及节拍变换成相应的音调参数和节拍参数,将他们做成数据表格,存放在存储器中,通过程序取出一个音符的相关参数,播放该音符,该音符唱完后,接着取出下一个音符的相关参数,如此直到播放完毕最后一个音符,根据需要也可循环不停地播放整个乐曲。另外,对于乐曲中的休止符,一般将其音调参数设为FFH,FFH,其节拍参数与其他音符的节拍参数
14、确定方法一致,乐曲结束用节拍参数为00H来表示。下面给出部分音符(三个八度音)的频率以及以单片机晶振频率f0=12Mhz,定时器在工作方式1下的定时器高低计数器的予置初值,如下表3-1所示。表2-1 音符频率与定时器初值关系表C调音符11#22#344#55#66#7频率Hz262277293311329349370392415440466494TH/TLF88BF8F2F9B7FA14FA66FAB9FB03FB4AFB8FFBCFFBCFFC0BC调音符11#22#344#55#66#7频率Hz 523553586621658697739783830879931987TH/TLFC43FC78FCABFCDBFD08FD33FD5BFD81FDA5FDC7FDE7FE05C调音符11#22#344#55#66#7频率Hz104511061171124113161393147615631658175518601791TH/TLFB21FE3CFE55FE6DFE84FE99FEADFEC0FE02FEE3FEF3FF02表2-1音符频率与定时器初值关系表2.4.3显示子程序显示子程序流程图