单片机音乐播放器课程设计总结.docx

上传人:b****4 文档编号:4819176 上传时间:2023-05-07 格式:DOCX 页数:29 大小:96.34KB
下载 相关 举报
单片机音乐播放器课程设计总结.docx_第1页
第1页 / 共29页
单片机音乐播放器课程设计总结.docx_第2页
第2页 / 共29页
单片机音乐播放器课程设计总结.docx_第3页
第3页 / 共29页
单片机音乐播放器课程设计总结.docx_第4页
第4页 / 共29页
单片机音乐播放器课程设计总结.docx_第5页
第5页 / 共29页
单片机音乐播放器课程设计总结.docx_第6页
第6页 / 共29页
单片机音乐播放器课程设计总结.docx_第7页
第7页 / 共29页
单片机音乐播放器课程设计总结.docx_第8页
第8页 / 共29页
单片机音乐播放器课程设计总结.docx_第9页
第9页 / 共29页
单片机音乐播放器课程设计总结.docx_第10页
第10页 / 共29页
单片机音乐播放器课程设计总结.docx_第11页
第11页 / 共29页
单片机音乐播放器课程设计总结.docx_第12页
第12页 / 共29页
单片机音乐播放器课程设计总结.docx_第13页
第13页 / 共29页
单片机音乐播放器课程设计总结.docx_第14页
第14页 / 共29页
单片机音乐播放器课程设计总结.docx_第15页
第15页 / 共29页
单片机音乐播放器课程设计总结.docx_第16页
第16页 / 共29页
单片机音乐播放器课程设计总结.docx_第17页
第17页 / 共29页
单片机音乐播放器课程设计总结.docx_第18页
第18页 / 共29页
单片机音乐播放器课程设计总结.docx_第19页
第19页 / 共29页
单片机音乐播放器课程设计总结.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机音乐播放器课程设计总结.docx

《单片机音乐播放器课程设计总结.docx》由会员分享,可在线阅读,更多相关《单片机音乐播放器课程设计总结.docx(29页珍藏版)》请在冰点文库上搜索。

单片机音乐播放器课程设计总结.docx

单片机音乐播放器课程设计总结

摘要

本文将介绍一种以89C51型单片机为基础元件设计的自动音乐播放器。

在当今这个科技高速发展的时代,生活节奏的加快,人们长期迖于工作、学习压力过大的状态,对于调节心理压力而言音乐对于每一个人都十分重要,由此音乐播放器在国内已经开始普及。

校园里的上下课的铃声,宿舍内早晨的起床号声音,都由以前枯燥刺耳的铃音转变成了好听的音乐,公路・广场中的计时装置也逐渐开始采用音乐来充当铃声。

此装置不仅为人们日常生活的计时提供了方便,同时也为目前快节奏的生活带来了乐趣。

本文是应用MCS-5单片机原理和控制理论设计音乐演奏控制器的硬件电路,并利用C语言进行程序设计。

通过控制单片机内部的定时器来产生不同频率的方波,驱动蜂鸣器发出不同音调的音乐,再利用延迟来控制发音时间的长短。

把乐谱转化成相应的定时常数就可以从发音设备中演奏出悦耳动听的音乐。

这种控制电路结构简单,可读性高,应用性强;软件程序适应范围广,对于不同的音乐只需要改变相应的定时常数即可。

矣键词:

单片机;音乐播放器;C语言。

绪论1

第1章音乐盒的设计总体方案2

第2章硬件电路设计3

2.1总体设计框图3

2.2时钟电路3

2.3复位电路3

2.4选曲按键电路3

2.5音频发生及放大电路4

第3章软件程序设计5

3.1单片机发声概述5

3.2程序流程图6

3.3音乐的产生7

第4章KEIL仿真软件的应用8

第5章调试与故障分析9

5.1软件程序调试9

5.2硬件电路调试9

总结10

致谢11

参考文献12

附录1:

原理图13

附录2:

源程序14

绪论

单片机,更确切地说应称为作微控制器,是20世纪70年代中期发展起来的一种面向控制的大规模集成电路模块,其特点是功能强、体积小、可靠性高、价格低廉。

它一面世便在工业控制、数据采集、智能仪表化、机电一体化、家用电器等领域得到了广泛应用,极大地提高了这些领域的技术水平和自动化程度。

因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。

本文将介绍一种以89C51型单片机为基础元件设计的自动音乐播放器。

在当今这个科技高速发展的时代,生活节奏的加快,人们长期处于工作、学习压力过大的状态,对于调节心理压力而言音乐对于每一个人都十分重要,由此音乐播放器在国内已经开始普及。

校园里的上下课的铃声,宿舍内早晨的起床号声音,都由以前枯燥刺耳的铃音转变成了好听的音乐,公路、广场中的计时装置也逐渐开始采用音乐来充当铃声。

此装置不仅为人们日常生活的计时提供了方便,同时也为目前快节奏的生活带来了乐趣。

本次设计以89C51单片机为基础,利用单片机编成技术对芯片进行功能设定,实现音乐的播放。

同时,利用单片机的定时器中断,在单片机内部产生所需要的音乐频率,并通过音频功率放大器将音频信号放大,通过蜂鸣器连续播放一段音乐。

此设计通过多次测试,音乐声音宏亮清晰,节拍正常,达到预期效果。

本文将围绕基于单片机的自动音乐播放器,介绍一些尖于单片机的基础知识、音乐播放器的制作原理及方法(其中包括了音乐编程原理)、定时器的设定,以及仿真软件(Keil、Proteus)的使用方法。

第1章音乐盒的设计总体方案

单片机音乐播放器控制系统结构简单,环节较少,因此,单片机音乐播放器包括LED

彩灯、数码管的显示。

除了播放音乐有按键外,其余的硬件组成大体相同;对于单月机音乐播放器声音的读出除了蜂鸣器以外>还要配置合适的放大器播放出响亮的声音。

图1-1结构总图

单片机音乐播放器电路板向着小型化、低功耗、抗千扰、低成本、实用功能方向发展。

因此在对

单片机的选择趋向于容量适中、功能丰富、性能可靠、价格低的元件。

因此本设计中应用最为广泛的

MCS-51系列8位单片机8051。

R2

10K

RT1

W-

总体设计框图

S2

S3

R3

1K

IN

BYPASS

GND

LM386

第2章硬件电路设计

P12

VCC

扬声器

扬声器

P12一——

P^Ouf

P35

R5

10K

S0

80c51

1

2

3

4

5

6

7

"8

单片机

9-MO时钝

P

2.2

VCCD1

时钟电路

2.2R2

10K

VOUTGAINGAIN

P10/T

P11/T

P12

P13

P14——

P3212

13

图2-1总设计图二

14P3515

一16Q

C2社212MHZ386运族・Q吧殼

I工±30p

C3I

1K

18

»'IN+a1M

IN-

C、/L>OHc

M图

i2-2时钟电路

1

2.3

复位电路

2

P12

3

VCC

4

C1so

5

S1

——0

0

6

P12

7

S2

8

P32

I10uf

9

S3

10

P35

R5

图2-3复位电路

11

10K

P32

12

2.4

选曲按键电路

13

14

P35

15

VCC

D1

16

C2

30p

18

19

C3

12MHZ

20

R

1

2.2K

30p

LM386

89C52RC

RT

1

104

STC89C51/52

胡电源

P16—

P17歌曲制按钿

RESET

RXD

TXD

INTOINT1

TOT1WR

RD”腹

OXTGAGND

89C52RC=o

5

1

8

VCCC7

R4

10

R4

10

C6

Vcc

POO

P01

P02

P03

P04

P05

P06

P07

EA/VP

ALE/P

PSEN

P27

P26

P25

P2Uf

P23

P22

104

P21

P20C5

47

3

40

P10/T

Vcc

39

P11/T

POO

STC89C51/52

38

P12

P01

37

P13

P02

36

P14

P03

35

P15

P04

34

P16

P05

33

P17

P06

32

RESET

P07

31

RXD

EA/VP

30

TXD

ALE/P

29

INTO

PSEN

28

INT1

P27

27

TO

P26

26

T1

P25

25

WR

P24

24

RD

P23

23

X2

P22

22

X1

P21

GND

P20

21

 

S1

P12

S2

S3

P32

P35

图2・4选曲电路

其中P3.2播放暂停,P1.2上一首歌,P3.5下一首歌。

2・5音频发生及放大电路

10uf

R3

1K

RT1

104

VCCC7

图2・5音频发生及放大电路

C8

C5卄

1+

BEEP

100uf

473

0.25W

利用STC89C51的I/O□产生一定频率的方波脉冲‘通过LM386功放电路驱动喇叭发

出不同的音调从而演凑乐曲

第3章软件程序设计

3.1单片机发声概述

一般来说,单片机不像其他专业乐器那样能奏出多种音色的声音,即不包含相应幅度的谐振频率。

单片机演奏的音乐基本都是单音频率。

因此单片机演奏音乐比较简单,只需能清楚“音调”和“节拍”两个概念即可。

音调表示一个音符唱多高的频率。

节拍表

示一个音符唱多长的时间。

知道了一个音符的频率后,便可以让单片机发出相应频率的振荡信号,从而产生相应的音符声音。

通过单片机的定时器进行定时中断,在中断服务程序中将单片机上完结单片机I/O□来回置高电平或者是低电平的,从而让扬声器发出声音。

通过节拍计算出每个音符所需要的时间,采用循环延时的方法来实现控制一个音符唱多长的时间,从而构成一首完整的音乐。

音调主要由声音的频率决定。

对一定强度的纯音,音调随频率的升降而升降;对一定频率的纯音、低频纯音的音调随响度增加而下降,高频纯音的音调却随响度增加而上升。

以标准高音A的频率F=440HZ其对应的周期为:

T=1/F=1/440=2272us

因此需要在单片机I/O端口输出周期为T=2272us的方波脉冲,也就是t=T/2=2272/2=1136us

也就是说,单片机上定时器的中断出发时间为1136us。

如果单片机采用定时器为工作方式1,

f,则定时

它以振荡器的十二分频信号为计数脉冲。

设外接晶振的振荡器频率为

器的预置初始值有以下公式来确定:

Temp=65536-(50000/CurrentFre)*10心2000000/SYSTEM_OSC)

TH=Temp/256

TL=Temp%256

3.2程序流程图

初始化堆栈

1r

 

3.3音乐的产生

一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单月机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器TO来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率尖系弄正确即可。

若要产生音频脉冲,只要算出某一音频的周期(”频率),再将此周期除以2,即为半周期的时间。

利用定时器计时半周期时间,每当计时终止后就将P1-0反相,然后重复计

时再反相。

就可在P1.0引脚上得到此频率的脉冲。

利用AT89C51的内部定时器使其工作计数器模式(MODE1下,改变计数值THO及TLO以产生不同频率的方法产生不同音阶,例如,频率为523Hz其周期T=1/523=1912卩s,,则半周期为1912/2=956卩s,因此只要令计数器计时956卩s,每计数956次时将I/O反相,就可得到中音DO(523HO则初始值为65535-956=64579=0xFC43。

计数脉冲值与频率的矢系式(如式3-1所示)是:

N=fi-2-fr(3-1)

式中,N是计数值;fi是机器频率(晶体振荡器为12MHZ寸,其频率为1MHZ;fr是想要产生的频率。

其计数初值T的求法如下:

T=65536-N=65536-fi-2-fr

例如:

设K二65536,fi=1MHz求低音DO(261Hz)>中音DO(523Hz)、高音DO(1046Hz)的计数值。

T=65536一N=65536一fi-2-fr=65536一1000000-2-fr=65536一

500000/fr

低音DO的T=65536-500000/262=63627

中音DO的T=65536-500000/523=64580

高音DO的T=65536-500000/1046=65059

第4章KEIL仿真软件的应用

硬件与软件的设计一般都要分别借助一些软件,如我们通常用作电路设计与制版的

Protel,MCS-51程序开发工具KEIL等。

KeilC51uVision2集成开发环境是基于80C51内核的软件开发平台,支持工程建立、程序的编译与链接、软件仿真、硬件仿真、目标代码的生成等功能。

KeilC51编译器在产

生代码的准确性和效率方面达到了较高的水平。

与大多数集成开发环境类似,KeilC51集成开发环境也是用工程的方法来管理文件,在一个工程文件中源程序(C51程序、汇编程序)、头文件等都可以进行统一管理。

安装运行KEIL51,使用KEIL的开发工具进行项目开发过程,与其他软件开发项目的过程基本上相同:

创建C语言或汇编语言的源程序。

编译或汇编源文件。

纠正源文件中的错误。

从编译器和汇编器连接目标文件。

测试连接的应用程序。

第5章调试与故障分析

5.1软件程序调试

本次设计的软件部分由音乐播放程序组成。

尖于音乐播放程序的调试,我首先采用Preteus软件来仿真,但是该仿真软件中没有喇叭或蜂鸣器等声音播放工具。

于是本人将图3-4中的单片机的P1.0处接了一个示波器,想通过这样来仿真并调试音乐播放程序,但是效果不是很理想。

程序运行的时候,能看见示波器有不同频率的波形交替出现,但是频率变换得很快,无法确认是否显示的是所需要的频率,并且无法辨别音频变换的节奏是否正确。

此方法并不适用。

接着,我制作了一个简单的单月机播放器电路。

即在实验板上焊接实验电路,电路由单片机89C51、按钮外围电路组成,并在单月机的P1.0处用三极管连接一个简单的音频放大器,再外接一个蜂鸣器。

将程序写入单月机中,这样就能听出声音和音乐节奏是否正确。

5・2硬件电路调试

本次设计的硬件电路主要由单月机89C51组成,在调试电路的过程中也碰到了一些问题。

问题一:

单片机无法正常下载程序。

调试步骤:

(1)检查单月机和串□电路是否连接错。

(2)检查焊接电路是否有虚焊和漏焊。

问题二:

下载音频程序后无法播放音乐。

调试步骤:

检查电源是否正常接入电路中。

利用示波器測试单片机输出端是否有信号输出,发现信号输出正常,说明单月机正常工作。

利用示波器測试音频放大电路输出端是否有信号输出,发现信号输出正常,说明音频放大电路工作正常,同时说明是蜂鸣器部分出现了问题。

故障原因:

焊接时将发声器件烧坏了,导致发不出声音。

解决方案:

重新换一个无源蜂鸣器,即可正常播放音乐。

经过这次创新设计,我觉得自己学到了不少东西。

归纳起来,主要有以下几点:

(1)通过这次创新设计,我能将以前四年所学到的专业知识与实践相联系,将所学到的知识充分运用到本次设计中。

同时,我也认识到自己知识上不足的地方,体会到了所学理论知识的重要,性,知识掌握得越多,设计得就更全面、更顺利、更好。

(2)进一步熟悉了单片机的知识。

通过本次设计,我对单片机的基本原理、内部结构、各引脚功能、定时器和中断的应用都有了更深刻的理解。

并且,能够以单片机为基础元件设计一个简单的系统。

(3)通过本次设计,熟悉了设计一个项目所必经的几个阶段。

本次设计从理论研究到硬件原理图设计,从元器件的选择到PCB板的制作,从软件编程到最后的调试过程都由我独立完成。

这不仅锻炼了我独立完成设计工作的能力,更重要的是了解了一个电子产品的设计流程,为将来投入工作增加了宝贵的经验,奠定了坚实的基础。

(4)提高了自己查找资料的能力。

在设计过程中,我碰到了一些暂时无法解决的问题,于是我通过上网查阅和图书馆借阅资料,或是通过与老师同学交流一步步地解决了。

从中我懂得了我们这个专业的知识面相当广泛,我们需要不断通过各种途径更新自己的知识,不断充实自己,同时要懂得与他人交流意见,积极听取别人的建议,懂得不断学习的重要性。

致谢

在枣庄学院的求学生涯在师长、亲友的大力支持下,走得辛苦却也收获满囊,在论文即将付梓之际,思绪万千,心情久久不能平静。

伟人、名人为我所崇拜,可是我更急切

地要把我的敬意和赞美献给一位平凡的人,我的导师。

我不是您最出色的学生,而您却是我最尊敬的老师。

您治学严谨,学识渊博,思想深邃,视野雄阔,为我营造了一种良好的精神氛围。

授人以鱼不如授人以渔,置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了宏伟的学术目标,领会了基本的思考方式,从论文题目的选定到论文写作的指导,经由您悉心的点拨,再经思考后的领悟,常常让我有“山重水复疑无路,柳暗花明又一村”。

感谢我的爸爸妈妈,焉得谖草,言树之背,养育之恩,无以回报,你们永远健康快乐是我最大的心愿。

在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里谓接受我诚挚谢意!

最后再一次感谢所有在创新设计中曾经帮助过我的良师益友和同学,以及在设计中被我引用或参考的论著的作者。

参考文献

[1]郑郁正•单片机原理及应用•四川大学出版社,2003

[2]谭浩强.C程序设计(第二版)•清华大学出版社,1999

[3]王晓君•安国臣等.MCS—51及兼容单片机原理与选型•北京・电子工业出版社,2003

[4]李启炎.Protel99SE应用教程.上海•同济大学出版社2005.2

⑸胡幣姚鹏翼,江思敏.Protel99SE电路设计与仿真教程.北京•机械工业出版社

2006

⑹张义和,陈敌北。

例说8051。

北京:

人民邮电出版社,2006

[7]张洪润,张亚凡。

单片机原理及应用。

清华大学出版社,2004

[8]AT89C51DATASHEEPPhilipsSemiconductors1999.dec

[9]Yang.Y.,Yi.J.,Woo,Y.Y.,andKim.B.:

'Optimumdesignforlinearityand

efficiencyofmicrowaveDohertyamplifierusinganewloadmatchingtechnique'Microw.J.,2001,44,(12),pp.20一36

[10]Vizimuller,P.:

'RFdesignguide-systems,circuits,andequations'

(ArtechHouse,Boston,MA,1995)

附录1:

原理图

R3

1K

rt1

386运放

IN+

VccI

llN-

VOUT

|aBYPASS

GAIN

kGND

GAIN

3

LM386

VCCC7

—R4

To

rl

C6

10uf

HR2

27

22

21

36

35

26

25

I

33

32

31

30

VCC

SWITCH

246

 

附录2:

源程序

#include

#definesound_amount5//歌曲的数量

sbitplay_up=P1A3;//上一首歌

对应频率数据表的地址

歌曲播放的使能标志位,用于播放暂停

//延时子函数,控制发音的时间长度

〃普通延时子程序,可用于按键消抖

//播放歌曲

〃第一个数字是音符的数值1234567之一(第几个音),代表哆来咪发…

〃第二个数字是0123之一,代表低音中音高音超高音(第几个八度)

〃第三个数字是时间长度,以半拍为单位,乐曲数据表的结尾是三个0

//《烟花易冷》

unsignedcharcodesong1[]={

5,2,1,3,2,1,2,222,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,324,

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.2.2.1,5,1,1,3,2,1,4,2,1,3,2,4,3,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,2,

5.1.2,6,1,6,0,0,0};

//《发如雪》

unsignedcharcodesong2Q={

5,1,1,2,2,1,3,2,2,2,2,1,3,2,1,5,2,1,6,2,1,5,2,3,1,2,1,2,2,1,

3.2.1.6.2.1,5,2,1,3,2,1,5,2,3,5,2,1,6,2,1,1,3,2,6,2,1,5,2,1,

3.2.1.5.2.1,3,2,2,1,2,1,2,2,1,3,2,1,1,2,1,6,1,1,3,2,1,2,2,1,

5.1.1.2.2.1,3,2,2,2,2,1,3,2,1,5,2,1,6,2,1,5,2,3,1,2,1,2,2,1,

5.2.1.3.2.1,5,2,1,3,2,2,1,2,1,6,1,1,3,2,1,2,2,1,1,2,1,6,1,1,

1.2.1.2.2.1.2.2.1,1,2,4,0,0,0};

//《简单爱》

unsignedcharcodesong3Q={

5,1,1,1,2,1,2,2,1,3,2,1,2,2,1,3,2,1,4,2,1,5,2,1,5,2,1,5,2,1,

4.2.1.3.2.1.2.2.3,5,1,1,1,2,1,2,2,1,3,2,1,4,2,1,5,2,1,5,2,1,

5.2.1.621,5,2,2,2,2,1,3,2,1,1,2,2,

1,2,1,6,",2,2,1,2,2,1,

3.2.1,3,2,1,1,2,1,5,2,1,1,2,1,5,2,1,1,2,1,7,1,1,1,2,1,

1.2.1,

6.1.1.2.2.1.2.2.1,3,2,1,3,2,1,5,2,1,5,2,1,4,2,1,3,2,1,2,2,3,

5.1.1,1,2,1,2,2,1,3,2,1,2,2,1,3,2,1,4,2,1,5,2,1,

521.5.2.2,

2.2.1.3.2.1,1,2,2,1,2,1,6,1,122,1,2,2,1,3,2,1,3,2,1,1,2,2,

5.2.1,121,5,2,1,5,2,1,7,1,1,1,2,1,0,0,0};

//《世上只有妈妈好》

unsignedcharcodesong4Q={

6,2,3,5,2,1,3,2,2,5,2,2,1,3,2,6,2,1,

//6,2,3代表6,中音,3个半拍;

//5,2,1代表5,中音,1个半拍;

//3,2,2代表3,中音,2个半拍;

115,2,2代表5,中音,2个半拍;

//1,3,2代表高音,2个半拍;

1,2,4,5,2,3,3,2,1,2,2,1,1,2,1,6,1,1,1,2,1,5,1,6,0,0,0};

//《当你孤单你会想起谁》

unsignedcharcodesong5[]={

3.2.2,321,4,2,1,3,2,2,2,2,1,1,2,1,2,2,2,5,2,2,2,2,2,2,2,3,

6.1.2,2,2,1,3,2,1,2,2,1,1,2,1,6,1,2,5,1,2,2,2,1,3,2,1,2,2,1,

1.2.1.6.1.2,6,1,2,2,2,1,3,2,1,2,2,1,1,2,1,6,1,1,7,1,1

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

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2