本科毕业设计mp3音乐盒设计.docx
- 文档编号:24005093
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:38
- 大小:281.12KB
本科毕业设计mp3音乐盒设计.docx
《本科毕业设计mp3音乐盒设计.docx》由会员分享,可在线阅读,更多相关《本科毕业设计mp3音乐盒设计.docx(38页珍藏版)》请在冰豆网上搜索。
本科毕业设计mp3音乐盒设计
MP3音乐盒设计
引言
21世纪,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。
单片机应用的重要意义还在于它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
随着科学技术的进步和社会的发展,人类所接触的信息也在不断增加并且日益复杂。
面对浩如烟海的信息,人们已经能够利用计算机等工具高效准确地对之进行处理,但要想将处理完的信息及时,清晰地传递给别人,还必须通过寻求更加卓越的显示技术来实现。
单片机技术与液晶显示技术的结合,使信息传输交流向着智能可视化方向迅速发展。
随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。
小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。
传统音乐盒多是机械型的,体积笨重,发音单调,不能实现批量生产。
本文设计的音乐盒是以单片机为核心元件的电子式音乐盒,体积小,重量轻,能演奏和旋音乐,功能多,外观效果多彩,使用方便,并具有一定的商业价值。
1绪论
1.1概述
本设计是以AT89C51芯片的电路为基础,外部加上放音设备和按键设备,以此来实现音乐演奏控制器的硬件电路,通过软件程序来控制单片机内部的定时器使其演奏出优美动听的音乐。
用户可以按照自己的喜好选择音乐并将其转化成机器码存入单片机的存储器中。
对于不同型号的单片机只需要相应的改变一下地址即可。
该软、硬件系统具有很好的通用性,很高的实际使用价值,为广大的单片机和音乐爱好者提供了很好的借鉴。
1.2目的意义
为了更好地熟悉和掌握单片机的基本功能和编程,我们以AT89C51为基础设计电子音乐盒。
AT89C51单片机电子音乐盒集成多个硬件资源模块,每个模块各自可以成为独立的单元,也可以相互组合,因此,可以为不同阶层的单片机爱好者所用。
同时,电子音乐盒的设计具有很重要的现实意义。
我们根据学习和实践的需要,进行了电子音乐盒功能设计。
我们在制作电子音乐盒的过程中会学习到很多的东西,能够最大限度的了解我们自制的这一个单片机电子音乐盒,这样以后调试程序的时候便得心应手,效率要提高很多。
1.3设计的概要思路
制定音乐盒控制系统需要完成功能,并根据此来制定设计方案;根据设计方案来进行硬件电路图的设计和软件模块的开发。
2设计方案简述
2.1设计功能要求
1利用扬声器,发出不同的音调,从而演奏乐曲(本设计中含有10首歌曲)
2.采用LCD显示信息(歌曲序号,播放时间等)
3.开机时有英文欢迎提示字符,播放时显示歌曲序号
4.可通过4*4键盘选择乐曲,暂停,播放,上一曲,下一曲,开机画面。
2.2总体设计原理
原理说明:
当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。
同时启动定时器T1,显示乐曲播放的时间,并驱动LCD,显示歌曲号及播放时间。
也可在LED显示歌曲号。
硬件电路中用P1.0~P1.7控制4*4键盘,其中P1.0~P1.3扫描行,P1.4~P1.7扫描列。
用P2.0~P2.2作为LCD的RS,R/W,E的控制信号。
用P0.0~P0.7作为LCD的D0~D7的控制信号。
用P3.7口控制扬声器
电路为12MHZ晶振频率工作,起振电路中C1,C2均为30pf。
流程图:
2.3总体设计框图
单片机接+5V电源供电,晶振电路产生单片机所需时钟信号,通过4*4键盘产生外部中断,控制音乐盒的上一首和下一首曲目,再由P3.7口输出控制扬声器发声,LCD显示。
另外,复位电路在于营造一个程序运行的初始状态,在程序出错时,重新启动单片机工作。
编程设置好定时时间,通过编程器写入AT89C51单片机系统。
由AT89C51单片机的定时器每秒钟通过P0.0-P0.7口控制LCD显示,复位信号由按钮输入,每按下一次,系统恢复原设定状态。
3、详细设计
3.1AT89C51简介
AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如图3.1所示
3.2时钟振荡电路
AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构成自然振荡器。
外接石英晶体及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。
对外接电容C1,C2虽然没有什么严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。
如果使用石英晶体,我们推荐电容使用30PF
10PF,而如果使用陶瓷振荡器建议选择40PF
10PF。
用户也可以采用外部时钟。
采用外部时钟的电路如图示。
这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。
由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。
振荡器电路图如下:
3.3扬声器部分
扬声器是一种把电信号转换成声音信号的电声器件。
确切地说,扬声器的工作实际上是把一定范围内的音频电功率讯号通过换能方式转变为失真小并具有足够声压级的可听声音。
我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单处机某个口线的“高”电平或低电平,则在该口上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调。
3.4显示部分
本设计方案采用液晶显示屏1602作为显示器。
选用单片机的P0口作为液晶数据输入口,P2.1、P2.2分别接液晶的数据和时钟引脚。
用液晶作为显示器,极大地简化了硬件电路,同时增强了系统的显示能力。
4、仿真、调试
4.1仿真
(1)按照设计的硬件电路在PROTUSE上画好电路图。
(2)电路检查无误后,双击AT89C51单片机,打开编辑元件对话框如下图所示,将调试好的程序HEX文件加载到单片机。
(3)点击运行按钮后,按下F键,LCD上得到开机画面“WELCOMEHERE”的字样,如下左图所示
(4)按下1-A中的某一键,即播放该歌曲,LCD显示当前歌曲序列号,如上右图为播放第二首歌曲的画面
(5)按C键即终止当前播放,进入下一首歌曲的播放
C键动作
(6)按下D键,蜂鸣器演奏上一首歌曲,LCD也显示上一首歌曲序列号
D键动作
(7)E键为暂停/播放键
E建动作
4.2调试
在XL600中通过不同功能的按键实现不同的功能实现曲目选择,上一首和下一首及暂停播放,同时有LCD显示当前播放歌曲的序号,扬声器播放出音乐。
5、课程设计总结
通过这次课程设计,也让我们学习到了很多新的东西,这些都让我们受益匪浅。
单片机的定时器功能,LCD显示,4*4键盘的设计,这些内容都颇为丰富。
有以前学习过的旧知识,也有很多未曾注意到得新知识,这些都曾使我们的设计出错,通过自己的努力,老师指导和同学的帮助,终于克服了一个一个的困难,把硬件实物顺利做好,把软件调试顺利完成。
但通过此次课程设计,却改变了很多,首先对于硬件电路的工作原理有了进一步的学习,同样就有了进一步的认识;其次软件方面,在程序的设计,程序的调试方面都学到了很多东西,很有成就感。
总体来说本次课程设计总体符合预期要求,能够成功实现按1-A按键能演奏不同的乐曲的基本功能,并添加了通过按键控制上一首,下一首,暂停/播放的功能。
在播放乐曲的过程中,还增加了显示歌曲演奏时间的功能。
另外,采用了液晶显示技术,简化了硬件电路,还能显示英文的开机画面等当然,此设计过程中碰到了很多问题。
如:
(1)有时会出现程序一点错误也没有,但就是不能正常运行的现象,最后我们发行是因为程序中有的指令书写得不规范导致的,例如有的RET返回指令一定要按正确格式书写或在两行指令间最好不要留空行。
错程序无法正常运行的现象。
当用JNZ指令时,跳转范围比较少,这时要用一个标号中转。
(3)编程时要注意,在程序开始时,要写入各定时器中断的入口地址。
编程过程中要注意加注释或分割线,否则,在程序过长时容易变得很乱,不便于查找或更改。
(4)刚开始LCD显示的时间不正确,走了几秒之后直接跳到分位。
经过查阅资料之后,了解到是由于设置的延时时间和LCD编码的不同造成的,略作修改之后得到了解决。
(5)在播放过程中,音乐的频率和走的时间略微过快,分析得这可能和单片机上不同的晶振有关。
(6)程序的结构要设计的合理,避免上下乱调用的现象,这样会使程序更加清晰化。
(7)编程前要加流程图,这样会使思路清晰,例如数字音乐盒的设计思路完全可以按着MP3的工作方式列写流程图。
LCD计时正常显示的解决办法
a.两个定时器同时工作,存在中断时序问题,刚开始时我们把定时器1设定在方式3,计250us,由于定时中断过于频繁,使CPU负载过大,导致音乐不能正常播放,时间不能正常显示。
解决办法:
将定时器1设定在工作方式1,16位计数,计50ms,效果有很大改观。
但还有问题。
b.当音乐为全4拍起始时,此时音乐节奏与定时器T1中断频率错开,LCD显示和音乐播放都会好一些。
c.另外,在歌曲中,当遇到一个音符发音为4拍,在编曲中为*CH,托因时间较长,当定时器T1此时来中断时,就会对歌曲播放产生影响,若改为发音一拍,中断对歌曲播放影响减弱,但音乐效果变差。
d.改进方案:
若采用可以定时时间更长的单片机,可以避免所有问题。
音乐盒设计是一项趣味性很强的设计,能激发我们的浓厚兴趣。
同时要求我们从程序编程,调试,软件仿真和绘制开始,到硬件的调试,再到修改程序,在这期间我们了解到了单片机开发的大致流程。
另外在一个好的氛围里才能踏下心来做东西,在这几天课设的时间里,实验室的氛围对我们的影响很大,大家一起努力,这也是我们能完成课设的动力。
此外在编程中出现问题时,一定要戒骄戒躁,脚踏实地,认真看书,仔细分析,仔细调试,就一定会发现错误,克服困难,我们也是这么做的,这在课程设计中十分重要。
当然在这次宝贵的毕业设计活动中,经验才是对于我们最大的收获,而且还增强了自身对未知问题以及对知识的深化认识的能力,用受益匪浅这个词语来概括这次难忘的活动我觉得再合适不过了。
但是,光是完成了作品还是不可以自我满足的,在从一开始的时候就怀着将作品制作得更加人性化,更加令人满意,更加地使功能完美又方便地被应用领域这个最终目的下,随着对单片机这门学科的认识加深,到达了拓展的程度,我想这个目的将在不远的时期内被实现。
最后,衷心感谢这次对我们的课程设计提供无私帮助的所有老师和同学!
6参考文献
[1]阎石.数字电子技术基础.北京:
高等教育出版社,1998
[2]张毅刚.单片机原理及应用.北京:
清华大学出版社,2004.3
[3]张俊谟.单片机中级教程-原理与应用.北京:
北京航空航天大学出版社,2006
[4]黄菊生.单片机原理与接口技术.北京:
国防工业出版社2007.09
[5]杨西明、朱骐主.单片机编程与应用入门.北京:
机械工业出版社2004.06
[6]徐爱钧单片机原理实用教程(基于Proteus虚拟仿真).北京:
电子工业出版社2009.01
安徽师范大学皖江学院
课程设计成绩评定单
题目:
MP3音乐盒设计
学生姓名
吴慧慧郭宝峰郑奎昂
指导教师
张辉
指导教师评语:
指导教师评定
设计成绩等级
指导教师(签章):
200年月日
代码部分
RSBITP2.0;定义液晶显示端口标号
RWBITP2.1
EBITP2.2
L50MSEQU60H
L1MSEQU61H
L250MSEQU62H
SECEQU65H
MINEQU64H
HOUEQU63H
org0000h
ljmpmain
ORG000BH
LJMPTT0
ORG001BH
LJMPT1INT
org1000h
main:
MOVSP,#70H
MOVP0,#01H;清屏
LCALLENABLE
MOVP0,#38H;8位,2行显示
lCALLENABLE
MOVP0,#0FH;屏显on,光标on,闪烁on
lCALLENABLE
MOVP0,#06H;计数地址加1,显示幕on
lCALLENABLE
lcallinitil
key1:
lcallkey
lcallmodd
ljmpkey1
key:
nop
nop
lcallks
jnzk1;有按键转到K1
lcallkaiji
lcallSOP
xn:
ljmpkey
k1:
lcallmodd
lcallmodd
lcallks
jnzk2
ljmpkey
k2:
movR2,#0feh;读键盘
movR4,#00h
k3:
movA,R2
movP1,A
movA,P1
JBACC.4,L1;为1跳转,第一行无按键
mova,#00h
ljmplk
L1:
jbacc.5,L2
mova,#04h
ljmplk
L2:
jbacc.6,L3
mova,#08h
ljmplk
L3:
jbacc.7,next1
mova,#0ch
lk:
adda,R4
pushacc
k4:
lcalldelay1;若同时有其他按键,则等待
lcallks
jnzk4
movr3,#07h
clra
movr0,#30h
movr1,#31h
mm1:
mova,@r1
mov@r0,a
incr0
incr1
djnzr3,mm1
popacc
mov@r0,a
RET
next1:
incR4;------列扫描
mova,R2
JNBacc.3,n2
ljmpn1
n2:
ljmpkey
n1:
rla
movR2,a
ljmpk3
ks:
mova,#0f0h;判断P1口
movP1,a
nop
nop
mova,P1
cpla
anla,#0f0h
RET
DELAY1:
SETBRS0
dl:
movR5,#0ah
dl2:
movR6,#63
dl3:
nop
nop
djnzR6,dl3
djnzR5,dl2
CLRRS0
RET
initil:
movr3,#08h
movr0,#30h
m1:
mov@r0,#00h
incr0
djnzr3,m1
RET
Modd:
MOVP0,#8EH
CALLENABLE
movA,37H
movDPTR,#TABLE3
MOVCA,@A+DPTR
CALLWRITE2
RET
kaiji:
mova,37h
cjnea,#0fh,DFF
MOVP0,#80H;设光标地址
CALLENABLE
MOVDPTR,#TABLE1;写数据
CALLWRITE1
DFF:
RET
SOP:
mova,37h
cjnea,#01h,A11
LCALLMODD
MOV52H,#HIGHTABLE10
MOV53H,#LOWTABLE10
LCALLINITILE2
lcallMAIN0
A11:
CJNEA,#02H,A22
LCALLMODD
MOV52H,#HIGHTABLE20
MOV53H,#LOWTABLE20
LCALLINITILE2
lcallMAIN0
A22:
CJNEA,#03H,A33
LCALLMODD
MOV52H,#HIGHTABLE30
MOV53H,#LOWTABLE30
LCALLINITILE2
lcallMAIN0
A33:
CJNEA,#04H,A44
LCALLMODD
MOV52H,#HIGHTABLE40
MOV53H,#LOWTABLE40
LCALLINITILE2
lcallMAIN0
A44:
CJNEA,#05H,A55
LCALLMODD
MOV52H,#HIGHTABLE50
MOV53H,#LOWTABLE50
LCALLINITILE2
lcallMAIN0
A55:
CJNEA,#06H,A66
LCALLMODD
MOV52H,#HIGHTABLE60
MOV53H,#LOWTABLE60
LCALLINITILE2
lcallMAIN0
A66:
CJNEA,#07H,A77
LCALLMODD
MOV52H,#HIGHTABLE70
MOV53H,#LOWTABLE70
LCALLINITILE2
lcallMAIN0
A77:
CJNEA,#08H,A88
LCALLMODD
MOV52H,#HIGHTABLE80
MOV53H,#LOWTABLE80
LCALLINITILE2
lcallMAIN0
A88:
CJNEA,#09H,A99
LCALLMODD
MOV52H,#HIGHTABLE90
MOV53H,#LOWTABLE90
LCALLINITILE2
lcallMAIN0
A99:
CJNEA,#0AH,AAA
LCALLMODD
MOV52H,#HIGHTABLE100
MOV53H,#LOWTABLE100
LCALLINITILE2
lcallMAIN0
AAA:
RET
INITILE2:
MOVL50MS,#20
MOVL1MS,#00H
MOVL250MS,#00H
MOVSEC,#00H
MOVMIN,#00H
MOVHOU,#00H
MOVA,HOU
MOVB,#10
DIVAB
ADDA,#30H;将BCD吗转化为ASIIC码
MOVP0,#0C8H;显示小时十位
LCALLENABLE
LCALLWRITE2
MOVA,B
ADDA,#30H
MOVP0,#0C9H;显示小时个位
LCALLENABLE
LCALLWRITE2
MOVA,#3AH
MOVP0,#0DH;显示冒号
LCALLENABLE
LCALLWRITE2
MOVA,MIN
MOVB,#10
DIVAB
ADDA,#30H
MOVP0,#0CBH;显示分十位
LCALLENABLE
LCALLWRITE2
MOVA,B
ADDA,#30H
MOVP0,#0CCH;显示分个位
LCALLENABLE
LCALLWRITE2
MOVA,#3AH
MOVP0,#0CDH;显示冒号
LCALLENABLE
LCALLWRITE
MOVA,SEC
MOVB,#10
DIVAB
ADDA,#30H
MOVP0,#0CEH;显示秒十位
LCALLENABLE
LCALLWRITE2
MOVA,B
ADDA,#30H
MOVP0,#0CFH;显示秒个位
LCALLENABLE
LCALLWRITE2
MOVP0,#0C0H;设光标地址
LCALLENABLE
MOVDPTR,#TABLE2;写数据
LCALLWRITE1
RET
ENABLE:
CLRRS
CLRRW
CLRE
LCALLDELAY
SETBE
RET
WRITE1:
MOVR1,#00H
A1:
MOVA,R1
MOVCA,@A+DPTR
CALLWRITE2
INCR1
CJNEA,#0FEH,A1;未到字符串末尾继续
RET
WRITE2:
MOVP0,A
SETBRS
CLRRW
CLRE
CALLDELAY
SETBE
RET
DELAY:
MOVR4,#05
D1:
MOVR5,#0FFH
DJNZR5,$
DJNZR4,D1
RET
TAB:
db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h
db80h,90h,88h,83h,0c6h,0a1h,86h,8eh
TAB1:
db89h,86h,0c7h,0c7h,0c0h
TAB2:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 本科 毕业设计 mp3 音乐盒 设计