基于51单片机的音乐播放系统设计报告.docx
- 文档编号:8629384
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:26
- 大小:148.26KB
基于51单片机的音乐播放系统设计报告.docx
《基于51单片机的音乐播放系统设计报告.docx》由会员分享,可在线阅读,更多相关《基于51单片机的音乐播放系统设计报告.docx(26页珍藏版)》请在冰豆网上搜索。
基于51单片机的音乐播放系统设计报告
单片机原理及系统课程设计
评语:
考勤(10)
守纪(10)
过程(40)
设计报告(30)
答辩(10)
总成绩(100)
专业:
自动控制
班级:
1002
姓名:
杨文博
学号:
201008706
指导教师:
武晓春
兰州交通大学自动化与电气工程学院
2013年3月7日
摘要
随着科技的不断发展,目前市场上出现了许许多多的音乐播放器,人们对播放器的需求也越来越广泛,对其要求也越来越高。
本文分析了基于单片机的音乐播放器的工作原理,详细介绍了音乐播放系统的功能及其硬件设计和软件设计的方法,给出了基于MCS-51单片机的音乐播放系统的具体实现方案并重点讲述了其硬件实现与软件编写,实现了单片机音乐播放系统对音乐的演奏。
关键字:
音乐播放器;MCS-51单片机;LED显示器
Abstract
Withthecontinuousdevelopmentofscienceandtechnology,themarketappearedmanymusicplayers,thedemandofplayershasbecomeincreasinglyextensiveandincreasingtheirdemands.
ThispaperanalyzestheSCM-basedmusicplayer’sworkingprinciple,describedindetailthefunctionofmusicplayeranditshardwaredesignandsoftwaredesignmethods,givenMCS-51single-chipbasedonthemusicplayertoachievethespecificprogramandfocusontheachievementofitshardwareandsoftwaredevelopment,toachieveasinglechipmusicplayerforplayingmusic.
Keywords:
musicplayer;MCS-51Single-ChipMicrocomputer;LED
1引言
目前单片机的应用渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械了[1]。
本课题即是在这种背景下,对基于MCS-51单片机的音乐播放器的设计与实现进行了硬件及软件的设计,并给出了一套完整的解决方案,实现了单片机音乐播放器对音乐的演奏。
2设计内容
本设计以AT89C51单片机为核心。
通过对其定时器的设定来实现音乐播放,通过对键盘的设置可以实现人机对话,借助键盘可以向计算机系统输入程序,置数、送操作命令、控制程序执行走向等,并最终通过数码管显示出播放的乐曲。
2.1设计要求
音乐播放系统要求具有以下功能:
按顺序从头至尾播放全部设置的乐曲;按顺序从头至尾自动循环播放全部设置的乐曲;选择循环播放某一首乐曲;从某一乐曲开始播放,直到最后一首乐曲;具有暂停/播放功能;具有停止播放功能。
根据音乐播放系统的功能设计系统的硬件电路,包括单片机最小系统的设计;电源电路的设计;定时中断电路的设计;定时器优先级判别;扬声器控制电路的设计;键盘输入以及LED显示电路的设计。
根据系统功能和硬件电路的设计,编写系统主控软件、音乐播放软件、乐曲软件、键盘控制软件、数码管显示软件,并进行软件调试。
之后进行硬件与软件的系统联调,以解决系统软件、硬件存在的问题,最后将软件下载到CPU,实现音乐播放系统的预定功能。
2.2设计方案
该系统用按键开关、单片机、数码管显示电路、扬声器控制电路4个部分构成。
51单片机:
51单片机为整个系统的核心部分,是带动整个系统工作的重要部件。
键盘输入:
键盘输入用来控制输入指令,发出指令至单片机,使单片机按照指令工作。
扬声器:
扬声器作为输出部分按照键盘给单片机的指令发出乐曲。
LED显示电路:
LED显示器也作为输出部分,按照键盘给单片机的指令,显示正在演奏的乐曲编号。
音乐播放系统组成框图如图2-1所示:
图2-1C51音乐播放系统组成框图
3硬件电路设计
一个完整的音乐播放系统电路相当于一个简单的单片机系统,该系统由按键开关、单片机、晶振和复位电路、数码管显示电路、扬声器控制电路5个方面构成。
其中,除了单片机是集成的IC芯片,其他4个部分需根据应用要求而设计。
完整的硬件电路连接图见附录A图6-1。
3.1键盘接口电路的设计
单片机应用系统中的人机对话通道是用户为了对应用系统进行干预以及了解应用系统运行状态所设置的通道。
主要有键盘、显示器等通道接口。
在单片机应用系统中,为了控制系统的工作状态以及向系统中输入数据,应用系统设置键盘,用于系统复位,功能转换以及数字输入。
键盘的设置可以实现人机对话,借助键盘可以向计算机系统输入程序、置数、送操作命令、控制程序的执行走向等。
在本次设计中键盘由P1口输入,按键设置:
1~4四个数字键,A~F六个功能键。
数字键(1~4):
用于输入1~4共4首乐曲的序列号
功能键(A~F):
A键:
乐曲从1~4按顺序播放
B键:
乐曲从1~4循环播放
C键:
循环播放某一乐曲
D键:
从某一乐曲开始播放至最后一首乐曲
E键:
暂停/播放
F键:
停止播放
各功能键(A~F)的意义与操作:
A键:
乐曲从1~4按顺序播放
当按下A键后,LED显示器清屏,音乐曲播放系统按照从头到尾的顺序自动播放预先设定的1~4共4首乐曲,全部乐曲播放完毕则停止。
B键:
乐曲从1~4循环播放
当按下B键后,LED显示器清屏,音乐曲播放系统放器按照从头到尾的顺序自动循环播放预先设定的全部乐曲。
C键:
循环播放某一乐曲
当按下C键后,并选定某一乐曲,随即输入选定乐曲的序列号(1~4),即按下1~4数字键之一,音乐曲播放系统对选定的某一乐曲循环播放。
D键:
从某一乐曲开始播放至最后一首乐曲
当按下D键后,并选定某一乐曲,随即输入选定乐曲的序列号(1~4),即按下1~4数字键之一,音乐曲播放系统就从选定的某一乐曲开始播放,直到乐曲播放完毕则停止。
E键:
暂停/播放。
当按下E键时,音乐曲播放系统打断正在播放的某一乐曲,再次按下E键时,该乐曲继续播放。
F键:
停止播放。
当按下F键时,音乐曲播放系统终止正在播放的某一乐曲。
本设计中按键作为输入部分,由P1口输入。
3.2LED显示接口电路的设计
在单片机应用系统中,使用的显示器主要有LED显示器(发光二极管显示器)。
这种显示器成本低廉,配置灵活,与单片机接口方便。
在本系统的设计中采用LED显示器。
[2]
LED显示器由8位LED数码管组成,用于显示系统在各种不同条件下的状态。
用单片机驱动LED数码管有很多方法,按显示方式分,有静态显示和动态显示,按译码方式分为硬件译码和软件译码。
静态显示是显示驱动电路具有输出锁存功能,单片机将要显示的数据送出后不再控制LED,直到下次显示时再传送一次新的显示数据。
静态显示的数据稳定,占用CPU时间少。
动态显示要CPU时刻对显示器件进行数据刷新,显示数据会有闪烁,占用的CPU时间多。
这两种显示方式各有利弊:
静态显示虽然数据显示稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的电路硬件较多;动态显示虽然闪烁,占用的CPU时间多,但使用的硬件少,能节省线路板空间。
在本设计中由于显示部分比较简单,所以选用了静态显示方式,LED显示器由74LS373来驱动,为了扩展外部存储器需一块74LS373(地址锁存器)。
LED发光器件一般常用的有两类:
数码管和点阵。
常用的数码管一般为8字型数码管,分为A、B、C、D、E、F、G、DP八段,其中DP为小数点。
数码管常用的有10根管脚,每一段有一根管脚,另外两根管脚为一个数码管的公共端,两根之间相连通。
数码管从电路上来看可分为共阴和共阳两种,在本设计中用了共阴的数码管。
3.3扬声器控制电路的设计
扬声器控制电路用于发出不同频率的音调,是在P3.0口加一反相器再连接到喇叭这样就可够成。
4软件部分设计
4.1主程序模块设计
主模块是系统软件的框架。
本系统的主模块的程序框图可用图4-1来表示。
主控模块用于控制系统的工作。
该模块先初始化,接着接受到复位信号后读取键盘信号,再调用各键子程序。
图4-1主程序流程图
4.2定时中断服务子程序的设计
定时器T0用于产生不同频率的音阶,如图4-2为定时器T0的中断服务子程序。
而定时器T1控制延时来实现不同的节拍,定时时间设定为50ms,图4-3为定时器T1的中断服务子程序。
图4-2INT0中断模块流程图图4-3定时器T1中断服务流程图
4.3键盘控制模块的设计
键盘控制模块分为6个功能键和读4个数字键。
下面分别介绍各个键的流程图和程序:
4.3.1E键和D键子模块
E键用于实现对乐曲的暂停和播放
当按下D键后,并选定某一乐曲,随即输入选定乐曲的序列号(1~4),即按下1~4数字键之一,音乐曲播放系统就从选定的某一乐曲开始播放。
图4-4D键子程序流程图图4-5E键子程序流程图
4.3.2数字键模块
读取正在播放乐曲的序号,读取键盘后消去键盘抖动接着显示和保存数据。
图4-7GETWORD子程序(读数字键0-4)流程图
5仿真
按下A键实现乐曲顺序播放,按下B键实现乐曲循环播放,数码管显示正在播放的乐曲编号,如图5-1。
图5-1乐曲顺序播放及循环播放仿真
当按下C键,然后按下乐曲序号实现单曲循环播放,如图5-2。
图5-2乐乐曲单曲循环播放仿真
当按下D键后,并选定某一乐曲,系统就从选定的乐曲开始播放,直到乐曲播放完毕停止,如图5-3。
图5-3选定任一乐曲顺序播放仿真
当按下E键时数码管显示P,暂停当前正在播放的乐曲,再次按下E键时继续播放,如图5-4。
图5-4暂停任一乐曲播放仿真
当按下F键时系统中断当前播放的乐曲复位,数码管显示F
图5-5系统复位仿真
6总结
通过这次课程设计我深刻感受到专业知识的缺乏,同时,在整个设计过程中我也感受到自身知识的进步,特别是在单片机控制系统方面。
本文课题是基于单片机的音乐播放器的设计,我选用的器材是AT89C51单片机。
因为用单片机来控制音乐播放器有以下几点优点:
(1)控制电路简单易懂
(2)附加其它功能简单、方便(3)成本低廉,功能强大。
但是在设计过程中,却遇到很多困难。
比如说参考到的许多芯片的资料都是英文的,自己专业知识的匮乏,缺少动手能力等等。
设计的困难重重,常常遇到自己不止到怎么下手的地方,让我意识到了自己的不足之处,也明白了必须深入实践才能获取真知的道理。
但是通过这次课程设计,我感觉收获很大。
刚刚拿到课题时自己的无措,到后来通过交流系统理解框架。
首先指定了计划,设计所要求控制达到的具体的技术指标,再通过谈论和实践来检验计划的可实施性,进而对整个设计系统经过深入的方案论证、计算以及联系具体的情况,确立自己的设计方案。
以及后来的工作对我来说的确是笔宝贵的财富,它将会对我今后的人生有着重要的参考意义。
参考文献:
[1]周向红,《51系列单片机应用与实践教程》,2008年,第一版,北京航空
航天大学出版社,235页。
[2]刘守义,《单片机应用技术》,2007年,第二版,西安电子科技大学出版
社,360页。
附录A:
音乐播放系统电路原理图
图6-1硬件连接原理图
附录B:
主要源程序
ORG0000H
AJMPSTART//Fosc=12MHz
ORG000BH//T0中断入口地址
AJMPINT_T0
ORG001BH//T1中断入口地址
AJMPINT_T1
START:
MOVSP,#60H
MOVTMOD,#11H
MOVIE,#8AH
MOVIP,#08H//T1中断优先于T0中断
MOVTH1,#3CH
MOVTL1,#0BH//以上为系统初始化,T=60ms
W1:
MOVP2,#01110001B//等待提示"F"
LCALLGETKEY
CJNEA,#0FFH,W1
MOVA,B
CJNEA,#0AH,W2
LCALLKEY_A//输入键是'A',转KEY_A
SJMPW1
W2:
CJNEA,#0BH,W3
LCALLKEY_B//输入键是'B',转KEY_B
W3:
CJNEA,#0CH,W4
LCALLKEY_C//输入键是'C',转KEY_C
W4:
CJNEA,#0DH,W5
LCALLKEY_D
SJMPW1//输入键是'D',转KEY_D
W5:
SJMPW1
KEY_A:
//从1~4按顺序播放
LCALLMUSIC1//乐曲《我和你》
LCALLMUSIC2//乐曲《万水千山总是情》
LCALLMUSIC3//乐曲《送别》
LCALLMUSIC4//乐曲《北京欢迎您》
RET
KEY_B:
//从1~4循环播放
T11:
LCALLKEY_A
SJMPT11
RET
KEY_C:
//循环播放某一乐曲
T3:
LCALLGETWORD
CJNEA,#0FFH,T3
MOVA,B
CJNEA,#00H,D1
SJMPE0
D1:
CJNEA,#01H,D2
SJMPE1
D2:
CJNEA,#02H,E3
SJMPE2
E0:
LCALLMUSIC1//乐曲《我和你》
SJMPE0
E1:
LCALLMUSIC2//乐曲《万水千山总是情》
SJMPE1
E2:
LCALLMUSIC3//乐曲《送别》
SJMPE2
E3:
LCALLMUSIC4//乐曲《北京欢迎您》
SJMPE3
RET
KEY_D:
//从某一乐曲开始播放,播放完后停止
T2:
LCALLGETWORD
CJNEA,#0FFH,T2
MOVA,B
CJNEA,#00H,B1
SJMPC0
B1:
CJNEA,#01H,B2
SJMPC1
B2:
CJNEA,#02H,C3
SJMPC2
C0:
LCALLMUSIC1//乐曲《我和你》
C1:
LCALLMUSIC2//乐曲《万水千山总是情》
C2:
LCALLMUSIC3//乐曲《送别》
C3:
LCALLMUSIC4//乐曲《北京欢迎您》
RET
MUSIC1:
//第一首《我和你》
MOVP2,#00000110B//显示1
MOVR5,#00000110B
MOV52H,#HIGHTABLE10
MOV53H,#LOWTABLE10
LCALLmusic
RET
MUSIC2:
//第二首《万水千山总是情》
MOVP2,#01011011B//显示2
MOVR5,#01011011B
MOV52H,#HIGHTABLE20
MOV53H,#LOWTABLE20
LCALLmusic
RET
MUSIC3:
//第三首《送别》
MOVP2,#01001111B//显示3
MOVR5,#01001111B
MOV52H,#HIGHTABLE30
MOV53H,#LOWTABLE30
LCALLmusic
RET
MUSIC4:
//第四首《北京欢迎您》
MOVP2,#01100110B//显示4
MOVR5,#01100110B
MOV52H,#HIGHTABLE40
MOV53H,#LOWTABLE40
LCALLmusic
RET
music:
MOVR3,#00H//音乐解码器
NEXT20:
MOVA,R3
MOVDPH,52H
MOVDPL,53H
MOVCA,@A+DPTR
MOVR2,A
JZSTOP
ANLA,#0FH
MOVR1,A
MOVA,R2
SWAPA
ANLA,#0FH
JNZSING
CLRTR0
JMPW11
//----------------------------------------------------------
SING:
DECA
MOV22H,A
RLA
MOVDPTR,#TABLE00
MOVCA,@A+DPTR
MOVTH0,A
MOV21H,A
MOVA,22H
RLA
INCA
MOVCA,@A+DPTR
MOVTL0,A
MOV20H,A
SETBTR0
SETBTR1
W11:
LCALLDELAY3
INCR3
LJMPNEXT20
//-----------------------------------------------------------
STOP:
CLRTR0
CLRTR1
RET
//***************************************************
//定时器0中断子程序
//***************************************************
INT_T0:
CLRTR0
MOVTL0,20H
MOVTH0,21H
CPLP3.0
SETBTR0
RETI
//***************************************************
//定时器1中断子程序
//***************************************************
INT_T1:
CLRTR1
CLRTR0
LCALLKEY_E
MOVTH1,#3CH
MOVTL1,#0BH
DJNZ60H,OUT
MOV60H,#20
OUT:
SETBTR1
RETI
KEY_E:
JBP3.1,L2//中断键盘检测
LCALLDELAY2//消除抖动
JBP3.1,L2//如果是高电平就跳到L2
JNBP3.1,$//如果仍然是低电平就执行中断程序
MOVP2,#01110011B//让LED显示E
L3:
JBP3.1,$//检测低电平,直到低电平时才跳出该指令
LCALLDELAY2
JBP3.1,L3
JNBP3.1,$//如果再来一个高电平才跳出中断
MOVP2,R5
L2:
SETBTR0
RET
GETKEY:
//读ABCD键盘子程序
SA:
JBP1.0,SB;读A
JBP1.0,SA
JNBP1.0,$
MOVP2,#01110111B//显示A
MOVR5,#01110111B
MOVA,#0FFH
MOVB,#0AH
RET
SB:
JBP1.1,C11//读B
LCALLDELAY2
JBP1.1,SB
JNBP1.1,$
MOVP2,#01111100B//显示B
MOVR5,#01111100B
MOVA,#0FFH
MOVB,#0BH
RET
C11:
JBP1.2,ED1//读C
LCALLDELAY2
JBP1.2,C11
JNBP1.2,$
MOVP2,#00111001B//显示C
MOVR5,#00111001B
MOVA,#0FFH
MOVB,#0CH
RET
ED1:
JBP1.3,L0//读D
LCALLDELAY2
JBP1.3,ED1
JNBP1.3,$
MOVP2,#01011110B//显示D
MOVR5,#01011110B
MOVA,#0FFH
MOVB,#0DH
L0:
RET
GETWORD:
//读音乐序号子程序
S1:
JBP1.4,S2//读1键
LCALLDELAY2
JBP1.4,S1
JNBP1.4,$
MOVP2,#00000110B//显示1
MOVR5,#00000110B
MOVA,#0FFH
MOVB,#00H
RET
S2:
JBP1.5,S3//读2键
LCALLDELAY2
JBP1.5,S2
JNBP1.5,$
MOVP2,#01011011B//显示2
MOVR5,#01011011B
MOVA,#0FFH
MOVB,#01H
RET
S3:
JBP1.6,S4//读3键
LCALLDELAY2
JBP1.6,S3
JNBP1.6,$
MOVP2,#01001111B//显示3
MOVR5,#01001111B
MOVA,#0FFH
MOVB,#02H
RET
S4:
JBP1.7,L1//读4键
LCALLDELAY2
JBP1.7,S1
JNBP1.7,$
MOVP2,#01100110B//显示4
MOVR5,#01100110B
MOVA,#0FFH
MOVB,#03H
L1:
RET
DELAY:
;延时子程序
PUSH0;保存现场
PUSH1
MOV0,#0H
DELAY1:
MOV1,#0H
DJNZ1,$
DJNZ0,DELAY1
POP1//恢复现场
POP0
RET
DELAY2:
MOV41H,#100//延时子程序2
F1:
MOV42H,#250
DJNZ42H,$
DJNZ41H,F1
RET
DELAY3:
//延时子
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 音乐 播放 系统 设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)