音乐播放器

  • 格式:doc
  • 大小:673.59 KB
  • 文档页数:27

目录第1章音乐播放器的功能与组成11.1音乐播放器的功能 (1)1.2音乐播放器的组成 (1)第2章系统总体设计与关键技术22.1系统总体设计 (2)2.1.1 音乐播放器的工作原理 (2)2.1.2 音阶对应频率计数初值的计算 (3)2.1.3 乐曲节拍的计算 (4)2.2系统中应用的关键技术 (4)第3章音乐播放器的硬件设计53.1单片机最小系统 (5)3.1.1 单片机复位电路 (5)3.1.2 单片机晶振电路 (6)3.2 键盘接口电路的设计 (6)3.3LED显示接口电路的设计 (6)3.4 扬声器控制电路的设计 (7)3.5硬件原理图 (8)第4章音乐播放器的软件设计94.1主控软件的设计与流程图 (9)4.2定时中断服务子程序的设计与流程图 (9)4.3键盘控制模块的设计与流程图 (10)4.4演奏乐曲模块的设计与流程图 (12)第五章结论13附录系统原程序14第1章音乐播放器的功能与组成1.1 音乐播放器的功能基于单片机的定时和控制装置在许多行业中有着广泛的应用,而音乐播放器是其应用之一。

在基于单片机的音乐播放器电路中,除了基本的单片机系统和外围电路外,还需要外部的控制和显示装置。

在本设计中,输入装置是按键开关,由于控制音乐播放器的运行模式,显示装置是LED七段数码管[5]。

此次设计的音乐播放器要求具有以下功能:·音乐播放器按照从头到尾的顺序自动播放预先设定的1~4共4首乐曲,全部乐曲播放完毕则停止。

·音乐播放器按照从头到尾的顺序自动循环播放预先设定的全部乐曲。

·选定某一乐曲,随即输入选定乐曲的序列号(1~4),即按下1~4数字键之一,音乐播放器对选定的某一乐曲开始循环播放。

·选定某一乐曲,随即输入选定乐曲的序列号(1~4),即按下1~4数字键之一,音乐播放器就从选定的某一乐曲开始播放,按照顺序自动播放到最后一首乐曲,乐曲播放完毕则停止。

·当用户按下暂停键时,音乐播放器打断正在播放的某一乐曲,用户再次按下暂停键时,该乐曲继续播放。

·当用户按下复位键时,音乐播放器终止正在播放的某一乐曲。

1.2 音乐播放器的组成根据系统音乐播放器的功能要求,一个完整的音乐播放器电路相当于一个简单的单片机系统,该系统由按键开关、单片机、LED显示电路、扬声器控制电路4个方面构成。

·51单片机。

51单片机为整个系统的核心部分,是带动整个系统工作的重要部件。

·键盘输入。

键盘输入用来控制输入指令,发出指令至单片机,使单片机按照指令工作。

·扬声器。

扬声器作为输出部分按照键盘给单片机的指令发出乐曲。

·LED 显示电路。

LED 显示器也作为输出部分,按照键盘给单片机的指令,显示正在演奏的乐曲。

音乐播放器的系统组成框图如图2-1所示:图2-1 音乐播放器的系统组成框图第2章 系统总体设计与关键技术2.1 系统总体设计根据系统的功能与组成,进行系统分析,系统除CPU 核心部分外还需要与键盘连接以接收输入指令,连接LED 显示器将要演奏的乐曲序号显示出来,通过连接扬声器使其发出音乐。

系统总体结构如图3-1所示。

晶振、复位电路 单片机 键盘输入控制 LED 显示电路CPU AT89C51 键盘输入 扬声器 LED 显示电路图2-1 系统总体结构框图2.1.1 音乐播放器的工作原理音乐播放器可利用单片机的定时器构成电子振荡器来发声。

振荡器是电子乐曲播放器的声源,专门用来制造音响,也称信号发生器,其作用相当于常规乐器的琴弦、簧片、哨片。

振荡器在音乐播放器的应用中有两个特点,可产生声音的频率与不同波形的振荡。

通过对单片机的定时器设置不同的定时初值,可发出音乐的不同音阶,通过调整振荡波形与泛音的分布,可产生和变换各种音色。

在我们所设计的音乐播放器中,是通过单片机的定时器,产生不同频率的方波信号,而没有调整振荡波形,因此音乐播放器发出的声音,是矩形波产生的音响,纯粹的矩形波声音类似于单簧管的音色。

一首乐曲演奏的原理是:一首乐曲是由音阶和节拍两大要素构成,不同音阶分别对应不同的频率,发出不同的音调,而节拍则控制发出音调时间的长短;若将乐曲的音调连续发出,并使其按相应的节拍变化,即可演奏一首乐曲。

根据这一特点,我们采用单片机辅以相应的接口来设计音乐播放器。

2.1.2 音阶对应频率计数初值的计算单片机的振荡频率为f osc =12MHz ,通过定时器T0溢出后对P3.0口取反产生方波,故定时器溢出时间为1/2f 。

由:n osc n f f X ⨯=⨯-2112)2(16 , 则定时初值为:16224osc n n f X f =-以音阶“1”为例:f =523 Hz ,则T =1/f定时初值:6161612102264580442424523osc n n f X FC H f ⨯=-=-==⨯用同一方法可求出其它音阶所对应的频率定时初值,将其制表放在程序中,通过查表向定时器T0装入所要求的定时初值,即可产生某一音阶所对应的频率的方波信号。

C 调的音阶及其频率、在单片机中的定时初值对应如下:扬声器音 名 C D E F G A B简谱音阶 1 2 3 4 5 6 7频率/ Hz 262 294 330 349 392 440 494定时初值 63628 63835 64021 64103 64260 64400 64524表中序号 1 2 3 4 5 6 7音 名 C D E F G A B简谱音阶 1 2 3 4 5 6 7频率/ Hz 523 587 659 698 784 880 988定时初值(Hex) 64580 64684 64777 64820 64898 64968 65030表中序号 8 9 10 11 12 13 14音 名 C D E F G A B简谱音阶 1 2 3 4 5 6 7频率/ Hz 1046 1175 1318 1397 1568 1760 1967定时初值(Hex) 65058 65110 65157 65178 65217 65252 65283表中序号 15 16 17 18 19 20 212.1.3 乐曲节拍的计算取乐曲节拍的长度为0.4s ,即1拍=0.4s ,由定时器T1控制延时。

设置定时器T1的定时中断T =50ms ,采用定时方式1。

由:T f X osc =⨯-12)2(16 ,则定时初值X =3C0BH因此1拍=0.4s =8*50ms ,即通过定时器T1的定时中断8次,产生8*50ms 的定时,就可以满足1节拍的定时要求。

以此类推,通过定时中断N 次,可产生N*50ms 的定时以满足1/4拍、1/2拍、1拍、2拍等不同节拍的定时要求。

由此可知,节拍值只能是整数值。

不同节拍在单片机中的中断次数(音长)对应如下:节 拍 1/8 1/4 1/2 3/4 1 3/2 2 3 4时间长度 0.05s 0.1s 0.2s 0.3s 0.4s 0.6s 0.8s 1.2s 1.6s音长(Dec) 1 2 4 6 8 12 16 24 32音长(Hex) 01H 02H 04H 06H 08H 0CH 10H 18H 20H2.1.4 乐谱在程序中的编制将乐谱转换为代码,应包含乐曲的总长度、音阶、音长(节拍)等信息。

具体设计如下:(1) 将音阶代码组成一个字节,节拍代码组成一个字节,按照:音阶代码,节拍代码,音阶代码,节拍代码……的顺序,将一个乐谱转换为一定长度的代码数据表。

(2) 在程序执行时顺序查此表,取出音阶代码,并根据音阶代码查频率表,以得到该音阶对应的频率,随后将对应的定时初值送定时器T0,使定时器T0产生该音阶对应的频率,并通过P3.0口输出,驱动外接扬声器发声。

(3) 取出节拍代码N,由定时器T1控制延时,通过定时中断N次,产生N*50ms的定时。

T0、T1启动后,根据乐谱表,某一个音阶发出相应频率的声音,并持续相应的节拍,连续起来,我们就可以听到一个完整乐曲的演奏。

2.2 系统中应用的关键技术基于单片机的音乐播放器在设计时需要解决以下4个方面的问题:·有关单片机中定时器的使用。

·利用键盘控制实现对单片机的控制。

· LED显示模块的驱动和编制。

·扬声器控制电路,用于发出不同频率的音调。

第3章音乐播放器的硬件设计一个完整的音乐播放器电路相当于一个简单的单片机系统,该系统由按键开关、单片机、晶振和复位电路、LED显示电路、扬声器控制电路5个方面构成。

其中,除了单片机是集成的IC芯片,而其他4个部分则需根据应用要求而设计。

3.1 单片机最小系统单片机芯片,配以必要的外部器件就能构成单片机最小系统。

单片机具有较强的外部扩展、通信能力,能方便地扩展至应用系统所要求的规模。

当使用带ROM或EPROM的MCS-51系列单片机时,只要一个芯片即可构成一个单片机的最小系统。

选用80C51或8051或AT89C51单片机作为主机,它们都具有4K片内ROM,128字节片内RAM,片外ROM寻址范围达64K,片外RAM寻址范围达64K,2个16位计数器,5个中断源,4个并行口,1个串行口。

简易自动乐曲播放器采用单片机最小系统足以满足系统设计要求,同时要设计单片机最小系统的晶振和复位电路。

3.1.1 单片机复位电路复位是单片机的初始化操作,其作用是使CPU中的各个部件都处于一个确定的初始状态,并从这个状态开始工作。

当8051的ALE及两脚输出高电平,RST引脚高电平时,单片机复位。

8051单片机的复位电路有上电复位和手动按钮复位两种形式,RST/VPD端的高电平直接由上电瞬间产生高电平则为上电复位;若通过按钮产生高电平复位信号称为手动按钮复位。

图4-1为兼有上电复位与按钮复位的电路。

图中,上电瞬间RST端的电位与Vcc相同,随着电容充电电流的减小,+5V立即加到了RST/VPD端,该高电平使8051复位。

若运行过程中,需要程序从头开始执行,这只需按图4-1中的按钮即可。

按下按钮则直接把+5V加到了RST/VPD端从而复位,这称为手动复位。

在实际应用系统中,有些外围芯片也需要复位,如果这些复位端的复位电平要求与单片机的要求一致,则可以与之相连。

3.1.2 单片机晶振电路晶振是给单片机提供工作信号脉冲的,这个脉冲就是单片机的工作速度。

比如 12M晶振,单片机工作速度就是每秒 12M。

当然,单片机的工作频率是有范围的,不能太大,一般 24M就不上去了,不然不稳定。

图4-2为晶振电路。

图3-1复位电路图3-2晶振电路3.2键盘接口电路的设计在单片机应用系统中,为了控制系统的工作状态以及向系统中输入数据,应用系统设置键盘,用于系统复位,功能转换以及数字输入。