MP3音乐盒设计毕业设计.docx

上传人:b****5 文档编号:28978194 上传时间:2023-07-20 格式:DOCX 页数:45 大小:205.98KB
下载 相关 举报
MP3音乐盒设计毕业设计.docx_第1页
第1页 / 共45页
MP3音乐盒设计毕业设计.docx_第2页
第2页 / 共45页
MP3音乐盒设计毕业设计.docx_第3页
第3页 / 共45页
MP3音乐盒设计毕业设计.docx_第4页
第4页 / 共45页
MP3音乐盒设计毕业设计.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

MP3音乐盒设计毕业设计.docx

《MP3音乐盒设计毕业设计.docx》由会员分享,可在线阅读,更多相关《MP3音乐盒设计毕业设计.docx(45页珍藏版)》请在冰豆网上搜索。

MP3音乐盒设计毕业设计.docx

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:

db

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 工作计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1