音乐播放系统设计大学论文.docx
《音乐播放系统设计大学论文.docx》由会员分享,可在线阅读,更多相关《音乐播放系统设计大学论文.docx(34页珍藏版)》请在冰豆网上搜索。
音乐播放系统设计大学论文
音乐播放系统的设计
摘要:
在如今这个快速发展时代里,生活节奏的加快让人们长期处于一种工作、学习的压力状态,人们更需要一种简单方式调节生活和排解压力,对于调节心理压力而言音乐对于每一个人都十分重要,由此音乐播放器在国内已经开始普及。
本文介绍了一种以STC89C52RC型单片机为基础元件设计的智能音乐播放器。
该设计利用单片机编成技术对芯片进行功能设定,实现音乐的播放。
同时,利用单片机的定时器中断,在单片机内部产生所需要的音乐频率,并通过LM386音频功率放大器将音频信号放大,再通过扬声器连续播放一段音乐.而且还可以通过调节蓝白电位器控制音乐的音量。
本设计还增加了LCD1602液晶屏显示每一首歌曲和歌曲顺序。
该系统设计结构简单,音乐声清晰响亮,节拍正常。
关键词:
单片机,音乐播放器,LCD1602液晶屏,音频功率放大器。
1引言:
在当今快节奏的生活下,人们都有着各种各样的工作和学习压力,每天都在忙碌于各种各样的事物当中。
在身体和心理上都处于一种疲惫状态。
在这种状态下,为了调节这种疲惫,一种简单而又享受的方式就尤为重要了。
音乐自古以来都是一种陶冶情操、排解压力的好方式。
在身心疲惫的时候听上一曲美妙的音乐,可以让人们的身体放松,大脑得到休息,工作,学习的效率大大增加。
而且音乐播放器系统结构设计简单,元器件价格低廉非常容易获得,可以批量生产。
因此在国内,音乐播放器已经推广到各个领域,并应用于生活中的各个方面。
本文介绍一种以STC89C52RC型单片机为基础元件设计的音乐播放系统。
以单片机为基础,具有操作简单,环节较少,实现功能多样等优点。
利用单片机编成技术产生一定频率方波信号,经音频电路放大并变换成正弦信号驱动扬声器,实现音乐的播放。
而且通过多次测试,音乐声音清晰响亮,节拍正常,无任何杂音。
学校的铃声,宿舍里早晨的闹钟,都将会由美妙的音乐代替。
公共场所中的计时报警装置也逐渐开始采用音乐来充当铃声。
该音乐播放系统不仅方便人们日常生活,而且为目前快节奏的生活增添了乐趣。
2音乐播放器发音原理
单片机不能演奏出多种音色的声音,更没有相应幅度的谐振频率。
单片机音乐播放器所能演奏的都是单音节频率。
所以单片机演奏出音乐声音是比较简单的音乐调调。
所以只要弄明白“音调”和“节拍”两个基本概念就可以了。
不同频率的方波信号在单片机内部的定时器产生后,经音频放大电路驱动扬声器发出不同音调的音乐,发音时间的长短可用延迟来控制。
把音乐的乐谱翻译成相应的定时常数后,再经发音设备中演奏出美妙的音乐。
音调代表一个音符的频率高度,节拍代表一个音符的时间长短。
音阶表示音调的高低,不同的音阶对应不同的频率。
因此,不同频率的方波信号就可以产生音阶,音阶与频率的关系见表1所示。
由于周期是频率的倒数,因此方波的周期可由单片机内部的定时器控制。
当定时器计数溢出时产生中断。
获取与扬声器连接的单片机P1.0口输出的方波信号的周期,取反后得到所需音乐频率,即得到控制音阶的目的。
表1音阶与频率的关系及方式1下定时器的初值
音阶
频率(Hz)
定时器初值
音阶
频率(Hz)
定时器初值
音阶
频率(Hz)
定时器初值
1
2
3
4
5
6
7
0
131
147
165
175
196
220
247
0
0F85EH
0F933H
0F9F0H
0FA49H
0FAE6H
0FB74H,
0FBF4H
0100H
1
2
3
4
5
6
7
0
262
294
330
349
392
440
494
0
0FC2FH
0FC99H
0FCF8H
0FD22H
0FD73H
0FDBAH
0FDFAH
0100H
1
2
3
4
5
6
7
0
523
587
659
698
784
880
988
0
0FE17H
0FE4CH
0FE7CH
0FE91H
0FEB9H
0FEDDH
0FEFDH
0100H
注:
0表示简谱中的空拍
获取一个音符的频率后,相应频率的方波信号便可以由单片机产生,从而产生相应的音符声音。
再有单片机的定时器进行定时中断,在中断服务程序中,将单片机上完结单片机I/O口来回置高电平或者是低电平的,从而让扬声器发出声音。
通过节拍计算出每个音符所需要的时间,采用循环延时的方法来实现控制一个音符唱多长的时间,从而构成一首完整的音乐。
当晶体振荡频率为12MHz,定时器工作在方式1下时,若各音阶相对应的定时器计数初值为X,则可根据下式计算X:
1/(f×2)=(216-X)×12/(12×106)
(1)
音调的长短用节拍数表示(例如1/4拍、2/4拍、……),不同节拍数的不同音符的组合形成乐谱。
程序中,音的节拍可由延时子程序实现。
以标准高音A的频率F=440HZ,其对应的周期为:
T=1/F=1/440=2272us
(2)
因此需要在单片机I/O端口输出周期为T=2272us的方波脉冲,也就是
t=T/2=2272/2=1136us(3)
也就是说,单片机上定时器的中断出发时间为1136us。
如果单片机采用定时器为工作方式1,它以振荡器的十二分频信号为计数脉冲。
设外接晶振的振荡器频率为f,则定时器的预置初始值为:
Temp=65536-(50000/CurrentFre)*10/(12000000/SYSTEM_OSC)(4)
TH=Temp/256(5)
TL=Temp%256(6)
3硬件电路设计
3.1系统的方案设计
图1系统组成框图
本文设计是基于STC89C52RC型单片机为基础元件设计的音乐播放器。
分别由复位电路、按键电路、晶振电路、音频电路、显示电路、电源电路以及单片机核心电路组成。
单片机核心电路以STC89C52RC单片机为核心,兼有复位电路、晶振电路。
具有容量适中、功能丰富、性能可靠、价格低等优点。
电源电路具有指示正常上电和供电的作用,为每一个基础模块进行供电。
按键电路可实现切换上一首,下一首和暂停/播放的功能;操作简单,使用方便。
音频电路主要以LM386功率放大器为核心,驱动扬声器播放美妙的音乐,并且可以实现对音量大小的调控。
显示电路是选用LCD1602液晶作为显示播放的音乐名称和音乐序号,同时也能够对液晶显示的清晰度进行调节。
3.2单片机简介
STC89C52RC单片机引脚如图2所示。
STC89C52RC单片机拥有4KB的片内ROM和128B的片内
图2STC89C52RC引脚
RAM。
ROM和RAM的片外寻址范围都为64KB。
单片机拥有32个并行口和1个串行口。
在STC89C52RC单片机中存在5个中断源,其中有两个外部中断源、两个内部中断源和一个串行中断源。
STC89C52RC是标准的40引脚双列直插式集成电路芯片。
XTAL1和XTAL2:
晶振外接引脚符。
当使用芯片内部时钟时,此二引脚端用于外接晶振和30PF电容;当使用外部时钟时,则用于接外部时钟脉冲信号。
RST/VPD:
复位信号。
用以完成单片机的复位初始化操作;当单片机掉电时,此引脚上可接备用电源,由VPD向片内RAM提供备用电源,保持片内RAM中的数据不丢失。
P3口线的第二功能。
P3的8条口线都定义有第二功能,如表2所示。
表2P3口各引脚与第二功能表
引脚
第二功能
信号名称
P3.0
RXD
串行数据接收
P3.1
TXD
串行数据发送
P3.2
INT0
外部中断0申请
P3.3
INT1
外部中断1申请
P3.4
T0
定时/计数器0的外部输入
P3.5
T1
定时/计数器1的外部输入
P3.6
WR
外部RAM写选通
P3.7
RD
外部RAM读选通
3.3晶振电路
单片机的晶振电路,如图3所示,在STC89C52RC芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。
而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。
图3晶振电路
时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。
一般地,电容C1和C2取30pF左右,晶体的振荡频率范围是1.2~12MHz。
晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。
STC89C52RC在通常应用情况下,使用振荡频率为6MHz或12MHz。
3.4按键电路
图4按键电路
每个按键的功能分别为:
AJ3播放\暂停,AJ2上一首歌,AJ4下一首歌。
其中AJ2接入单片机的P1.3引脚,AJ3接入单片机的P3.2引脚,AJ4接入单片机的P3.5引脚。
3.5音频发生及放大电路
图5LM386功率放大电路
LM386功率放大电路如图5所示。
LM386具有静态功耗低,约为4mA,可用于电池供电。
工作电压范围宽,4-12V或5-18V。
外围元件少,电压增益可调范围为20-200,低失真度等优点。
本设计音频放大电路为使外围元件最少,选用放大增益为20倍LM386功率放大器。
且电压增益20为LM386的内置电压增益。
经LM386放大的正弦波信号再经一定的容值的电容改变成正弦波驱动扬声器。
图6音频发声及放大电路
音频发声及放大电路如图6所示。
利用STC89C52RC的I/O口产生一定频率的方波脉冲,由STC89C52RC单片机的P1.0输出,与音频放大电路的R610K电阻相连接。
通过LM386功率放大电路驱动扬声器发出不同的音调从而演凑乐曲。
其中RT1104为阻值范围为10k的可调蓝白电位器,接入LM3863号引脚同相输入端。
通过调节RT1接入阻值可改变LM386同相电压输入值,使得LM386功率放大器在放大倍数不变的情况下,进而增大或减小LM386的电压输出值,由此即可调节音乐的音量大小。
3.6液晶显示电路
LCD1602的接口信号说明如表7所示
图7液晶显示电路
LCD1602显示当前播放的音乐名,音乐序号。
3号引脚为液晶屏驱动电源。
该管脚的电平决定了液液晶屏的对比度,接正电时对比度最弱,接地时对比度最高,可用W1103为阻值范围为1k的可调蓝白电位器,可用于调整液晶屏对比度。
从而控制LCD1602液晶显示屏的清晰度。
3.7整体电路
整体电路原理图如图8所示。
本设计整体电路由电源电路,液晶显示电路,按键电路,显示电路,音频放大电路和单片机核心电路组成。
图8整体电路
单片机核心电路以STC89C52RC单片机为核心,兼有复位电路和晶振电路。
电源电路具有指示正常上电和供电的作用。
STC89C52RC单片机P1.3,P3.2,P3.5引脚与按键电路的AJ3播放\暂停,AJ2上一首歌,AJ4下一首歌相连接。
实现暂停/播放,上一首和下一首功能。
音频放大电路主要以LM386功率放大器为核心,单片机P1.0引脚与音频放大电路的R6相连接,使音频放大电路接收并放大单片机P1.0发出的信号,进而驱动扬声器播放美妙的音乐。
显示电路是选用LCD1602液晶作为显示音乐的名称,音乐序号。
单片机P0口与LCD16027—14引脚相连接,作为数据接收端,读取单片机P0口发出的数据,显示相应的数字,字母等字符。
单片机P2.5口与LCD1602的4号引脚相连接,作为数据/命令选择端,单片机P2.6口与LCD16025号引脚相连接,作为读/写选择,P2.7与LCD1602的6号引脚相连接,作为使能信号。
4软件程序设计
4.1程序流程图
(1)程序设计流程图如图9所示。
首先要对音乐的输出口及按键进行初始化。
(2)控制电路中,AJ2与P1.3相连、AJ3与P3.2相连、AJ4与P3.5相连。
当按键按下时输入为低电平,从而实现对音乐播放器的控制。
图9程序流程图
AJ4与P3.5相连,实现下一曲更换,AJ2与P1.3相连,实现上一曲更换,AJ3与P3.2相连实现开始/暂停操作。
按键控制子程序主要由下一曲子程序、上一曲子程序、播放/暂停子程序组成,分别由一个计数器中断和两个外部中断实现。
(3)查找歌曲数据表的地址,根据当前状态播放相应歌曲,判断播放/暂停按键是否按键,若判断为‘是’进行播放处理,音频放大电路中的扬声器播放第1首音乐,LCD1602液晶显示第一首歌曲名称YanHuaYiLeng。
(3)若本次判断为‘否’则继续判断上一曲键是否按下,若判断为‘是’,则进行上一曲音乐播放。
(4)若本次判断为‘否’则继续判断下一曲键是否按下,若判断为‘是’,则进行下一曲音乐播放。
(5)本次判断为‘否’则继续判断是否按下暂停/播放键,若判断为‘否’则进行循环判断上一曲,下一曲按键是否按下,直至有上一曲、下一曲按键按下。
(6)若本次判断为‘是’则进行暂停播放处理。
再进行判断是否按下暂停/播放键,本次判断为‘否’,则循环判断是否有暂停/播放按键按下,直至暂停/播放按键按下。
本次判断为‘是’,则继续播放当前音乐,
按键判断到此为一个循环,此时要返回最初按键判断,循环执行以上程序流程。
5测试
开机后,电源电路指示灯亮起,电路正常供电,液晶屏上电进入welcome界面。
此时如图10所示
图10初始界面
按下播放按键,扬声器播放第1首音乐YanHuaYiLeng.LCD1602液晶显示如图11所示。
图11第1首音乐播放
连续按下下一首按键3次,播放第4首音乐ZhiYouMaMaHao。
LCD1602液晶显示如图12所示
图12第4首音乐播放
按下复位按键后,单片机进行重启,音频放大电路中的扬声器暂停播放,LCD1602液晶显示屏进入WELCOME界面,此时等待播放按键按下。
如图13所示。
图13初始界面
播放按键按下后,播放第一首音乐的基础上,按下上一首按键可播放最后一首音乐,第8首音乐LangManDeShi。
如图13所示
图13第8首音乐播放
6总结
通过本系统设计,更深层次的学习了单片机的知识。
对单片机的基本原理、内部结构、各引脚功能、定时器和中断的应用都有了更深刻的理解。
对STC89C52RC单片机的性能和应用进一步充分了解和学习。
并且,我能够用单片机为核心设计一个简单的系统,实现自动控制。
在显示电路的清晰度调节设计中,我查找LCD1602显示屏的基本原理,引脚特性,最终将显示模块的液晶屏变为可调。
在音频放大电路中,我对LM386功率放大器的基本原理也做了进一步学习,设计出可调节音量的音乐播放系统。
本设计中还有改进的空间。
例如:
可以外接USB储存。
一方面可以增大歌曲的储存量,另一方面可以更换不同的歌曲,使用更加方便。
可以使用触屏操作系统,按键模块和显示模块都在触屏上完成。
使得整个音乐播放系统朝着智能化,美观化,操作简单化方向发展。
参考文献
[1]王亭亭,葛熠,李峰,基于AT89S52单片机的音乐播放器[J],科技信息,2012(25),96-97。
[2]常书惠,基于单片机控制的音乐播放器[J],电子商务,2013(9),70-71。
[3]田媛,单片机音乐播放器功能多样性的设计与实现[J],湖南工业职业技术学院学报,2013(4),1-3。
[4]罗卫星,单片机音乐播放器设计[J],科学之友,2010(21),137-138。
[5]汪本慧,基于单片机控制的多功能音乐播放器的设计与制作[J],智能计算机与应用,2010(5),33-35。
[6]远飞,基于单片机的音乐播放器的仿真与制作[J],电子元器件应用,2010(12),47-49。
[7]黄振杰,卢小冰,基于AT89S52单片机的多功能音乐播放器[J],电子设计工程,2009,17
(2),17-18。
[8]LiaoFC,ChenS,ThemicrophonearrayspeechenhancementsystemdesignebaseonDSbeamformerandAT89C52singlechip[C]//WaveletActiveMediaTechnologyandInformationProcessing(ICWAMTIP),2012InternationalConferenceon.IEEE,2012:
207-211。
TheDesignofmusicplayer
QinWeilong
(SchoolofPhysicsandElectricalEngineering,AnqingNormalCollege,Anqing246011)
Abstract:
Intoday'srapiddevelopmentera,theacceleratingrhythmoflifemakespeopleinalong-termstateofworkandstudypressures.Peopleneedasimplewaytoadjustthelifestress.Musicisveryimportanttoeveryoneforadjustingpsychologicalpressure,andmusicplayershavebeguntospreadinChina.ThispaperintroducesanintelligentmusicplayerbasedonSTC89C52RCMCU.Thesinglechipmicrocomputerisusedinthedesignforthepurposeofsettingofthefunctionofthechip,andrealizesofplayingthemusic.Theneededmusicfrequencyisgeneratedinthemicrocontrollerbyusingtimeinterrupt,andaudiosignalisamplifiedbytheLM386audiopower,andthemusicisplayedbythespeaker.Thevolumeofthemusiccanbecontrolledbyadjustingtheblueandwhitepotentiometer.LCD1602isusedinthedesigntodisplaytheorderofeachsongandthenameofeachsong.Thesystemhasthemeritsofsimplestructure,clearandloudsound,andnormalrhythm.
Keywords:
Singlechipmicrocomputer,Musicplayer,LCD1602LCDscreen,Audiopoweramplifier
附录A
//////////////////////////////////////////////
//51单片机音乐播放器程序
//AT89S52+11.0592MHz+无源蜂鸣器
//共三个按键:
上一曲、一下曲、播放\暂停
//注意:
按键必须按下约1S才有相应动作,播放完一首歌曲无按键按下时顺序播放
//////////////////////////////////////////////
#include
sbitplay_up=P1^3;//上一首歌
sbitplay_down=P3^5;//下一首歌
sbitpause=P3^2;//播放\暂停
sbitspeaker=P1^0;//无源蜂鸣器
sbitRS=P2^7;
sbitRW=P2^6;
sbitEN=P2^5;
//////////////////////////////////////////////
unsignedchartimer0h,timer0l,time;//timer0h,timer0l为定时器T0的高低位初值,time为对应的节拍时间
unsignedcharmusic_num;//music_num为歌曲编号,music_num=0表示刚开机时的状态,num是查找歌曲数据表的地址
unsignedintnum;
unsignedcharcodelist[8][16]={"YanHuaYiLeng",
"FaRuXue",
"JianDanAi",
"ZhiYouMamaHao",
"DangNiGuDan",
"XiangJianXiaoLu",
"SongBie",
"LangManDeShi"};
signedintfre;//对应频率数据表的地址
bitplay_enable;//歌曲播放的使能标志位,用于播放\暂停
voiddelay(unsignedchart);//延时子函数,控制发音的时间长度
voiddelayms(unsignedintt);//普通延时子程序,可用于按键消抖
voidsong(void);//演奏一个音符
voidmusic_play(void);//播放歌曲
//////////////////////////////////////////////
//每三个数字,代表一个音符
//第一个数字是音符的数值1234567之一(第几个音),代表哆来咪发...
//第二个数字是0123之一,代表低音\中音\高音\超高音(第几个八度)
//第三个数字是时间长度,以半拍为单位,乐曲数据表的结尾是三个0
//////////////////////////////////////////////
//《烟花易冷》
unsignedcharcodesong1[]={
5,2,1,3,2,1,2,2,2,2,2,4,3,2,1,1,2,1,2,2,1,3,2,4,
5,2,1,3,2,1,2,2,2,2,2,2,5,1,1,3,2,1,4,2,1,3,2,4,
3,2,1,3,2,1,7,2,1,3,2,1,2,2,2,1,2,1,7,1,1,1,2,1,
2,2,1,3,2,1,6,2,3,6,1,1,1,2,1,3,2,1,2,2,1,6,1,1,
1,2,1,7,1,1,5,1,1,6,1,6,5,2,1,3,2,1,2,2,2,2,2,1,
2,2,1,3,2,1,1,2,1,2,2,1,3,2,4,5,2,1,3,2,1,2,2,2,
2,2,1,2,2,1,5,1,1,3,2,1,4,2,1,3,2,4,3,2,1,3,2,1,
7,2,3,3,2,1,2,2,2,1,2,1,7,1,1,1,2,1,2,2,1,3,2,1,
6,2,3,6,1,1,1,2,1,3,2,1,2,2,1,6,1