数字音乐盒.docx

上传人:b****8 文档编号:10512261 上传时间:2023-02-17 格式:DOCX 页数:44 大小:478.79KB
下载 相关 举报
数字音乐盒.docx_第1页
第1页 / 共44页
数字音乐盒.docx_第2页
第2页 / 共44页
数字音乐盒.docx_第3页
第3页 / 共44页
数字音乐盒.docx_第4页
第4页 / 共44页
数字音乐盒.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

数字音乐盒.docx

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

数字音乐盒.docx

数字音乐盒

数字音乐盒的设计

中文摘要

数字音乐盒可以发出美妙的旋律,给人一种愉悦的感觉,在现代,各种音乐软件深受人们欢迎。

本设计是基于AT89C52单片机的音乐盒,不仅能发出美妙的音乐,还能通过功能按键对不同乐曲进行选择、暂停、播放。

本设计是用单片机为主控制,通过电路仿真实现的,在Proteus软件中绘制硬件电路原理图,用Keil软件进行编程与调试,最终生成hex文件,载入单片机,从而实现仿真效果。

关键词:

音乐盒;单片机;Proteus;Keil

StudyonInhibitingAflatoxinsofCoatingtoPeanuts

ABSTRACT

Digitalmusicboxcanbeabeautifulmelody,givepeopleafeelingofpleasure,inmoderntimes,avarietyofpopularmusicsoftware.ThisdesignisbasedonAT89C52SCMmusicbox,notonlycanmakebeautifulmusic,butalsothroughthefunctionkeytoselectdifferentmusic,pause,play.ThisdesignistouseSCMthemaincontrol,throughcircuitsimulation,drawthehardwarecircuitprinciplediagraminProteussoftware,programminganddebuggingofKeilsoftware,finallygeneratethehexfile,loadedsingle,soastorealizethesimulationresults.

KeyWords:

Musicbox;MCU;Proteus;Keil

一.概述1

1.1设计任务1

1.2设计内容1

二.系统总体方案介绍2

2.1.系统组成框图2

2.2音乐盒功能介绍图2

2.3主要软件介绍3

2.3.1PROTEUS软件简介3

2.3.2KEIL简介4

三.硬件设计5

3.1各部分硬件设计及其原理5

3.1.1AT89C52简介5

3.1.2LCD1602液晶显示电路设计与原理5

3.1.3时钟振荡电路7

3.2硬件电路图及功能8

四.软件设计9

4.1音调、节拍以及编码的确定方法10

4.1.1音调的确定10

4.1.2节拍的确定11

4.1.3编码12

4.2软件程序设计13

4.2.1主程序13

4.2.2播放音乐子程序14

4.2.3程序源代码(见附录A)15

五.调试15

5.1检查硬件连接16

5.2检查软件系统16

5.3测试结果16

5.3.1.总体运行图16

5.3.2.显示屏显示图16

5.3.3.选择仿真图17

5.3.4.花样灯3种花样图17

5.3.5.硬件实物图18

5.4测试结果与分析19

5.4.1测试结果19

5.4.2结果分析20

六.项目总结与心得21

6.1项目总结22

6.2心得体会22

参考文献23

附录A程序源代码及注释24

引言

人类的日常生活离不开音乐,音乐可以陶冶人的情操,给人带来美好的回忆,提高人们的精神文化享受。

随着科学技术的进步和社会的发展,人类所接触的信息也在不断增加并且日益复杂。

面对浩如烟海的信息,人们已经能够利用计算机等工具高效准确地对之进行处理,但要想将处理完的信息及时,清晰地传递给别人,还必须通过寻求更加卓越的显示技术来实现。

单片机技术与液晶显示技术的结合,使信息传输交流向着智能可视化方向迅速发展。

随着科技的发展,电子技术和计算机应用领域不断扩大,特别是单片机的出现,是近代计算机技术发展史上的一个重要里程碑。

单片机的出现,给人类生活带来极大的方便,使控制系统简单化。

本设计是以单片机为核心元件的电子式音乐盒,体积小,重量轻,能演奏不同的四首乐曲,还能在不同乐曲之间进行切换,暂停,具有较多功能。

该设计具有结构简单,性能可靠方便等优点。

本设计是以AT89C52芯片的电路为基础,外部加上放音设备,以此来实现音乐演奏控制器的硬件电路,通过软件程序来控制单片机内部的定时器使其演奏出优美动听的音乐。

用户可以按照自己的喜好选择音乐并将其转换为机器码存入单片机的存储器内。

对于不同型号的单片机只需要相应的改变一下地址就可以。

该软、硬件系统具备很好的通用性,以很好的使用价值,为广大的单片机和音乐爱好者提供了很好的借鉴。

 

一.概述

1.1设计任务

音乐盒的系统结构以AT89C52单片机最小系统版为控制核心,加上按键切换电路、蜂鸣器播放电路、LCD显示模块电路和LED灯的花样变换电路。

单片机负责接收按键的输入,根据输入控制音乐播放曲目和音乐暂停模式以及蜂鸣器发音。

1.2设计内容

音乐盒可以发出美妙的音乐旋律,能给生活增加不少的乐趣。

用52系列单片机设计一个音乐盒。

功能如下:

利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少3首乐曲,每首不少于30s)。

采用LCD显示信息。

开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称)。

可通过功能键选择乐曲、暂停、播放。

 

二.系统总体方案介绍

2.1.系统组成框图

音乐盒的系统结构以AT89C52单片机为控制核心,加上几个按键、蜂鸣器、LCD模块组成。

单片机负责接收按键的输入,根据控制音乐播放曲目和音乐暂停模式以及蜂鸣器发音。

系统组成框图如下:

图1系统组成框图

2.2音乐盒功能介绍图

音乐盒的功能结构图如图2.2所示,第1个开关负责LED灯的花样变换。

第2个开关负责切换播放歌曲,播放歌曲共四首,分别是千年之恋,寂寞沙洲冷,感恩的心和七子之歌。

 

 

 

 

 

图2音乐盒功能介绍图

2.3主要软件介绍

本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试,两种软件的简介如下:

2.3.1PROTEUS软件简介

Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。

它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。

它是目前最好的仿真单片机及外围器件的工具。

虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。

Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。

在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

在编译方面,proteus软件它也支持IAR、Keil和MPLAB等多种编译器。

Proteus软件具有其它EDA工具软件(例:

multisim)的功能。

这些功能是:

1.原理布图;2.PCB或人工自动布线;3.SPICE电路仿真

2.3.2KEIL简介

KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

用过汇编语言后再使用C来开发,体会更加深刻。

KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。

另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。

机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。

运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。

掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

 

三.硬件设计

3.1各部分硬件设计及其原理

3.1.1AT89C52简介

AT89C52为8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。

功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。

主要管脚有:

XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。

RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。

VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。

P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。

外形及引脚排列如下图所示:

图3AT89C52引脚

3.1.2LCD1602液晶显示电路设计与原理

1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。

它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。

1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。

LCD1602液晶显示屏各脚接口作用:

第1脚:

GND为电源地。

第2脚:

VCC接5V电源正极。

第3脚:

V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。

第4脚:

RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

第5脚:

RW为读写信号线,高电平

(1)时进行读操作,低电平(0)时进行写操作。

第6脚:

E(或EN)端为使能(enable)端,高电平

(1)时读取信息,负跳

变时执行指令。

第7~14脚:

D0~D7为8位双向数据端。

第15~16脚:

空脚或背灯电

源。

15脚背光正极。

16脚背光负极。

具体接口如下:

图4LCD1602引脚

3.1.3时钟振荡电路

AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。

这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构成自然振荡器。

外接石英晶体及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。

对外接电容C1,C2虽然没有什么严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。

如果使用石英晶体,我们推荐电容使用30PF

10PF,而如果使用陶瓷振荡器建议选择40PF

10PF。

用户也可以采用外部时钟。

采用外部时钟的电路如图示。

这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。

由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。

振荡器电路图如下:

图5单片机内部、外部振荡电路

3.2硬件电路图及功能

总体硬件电路实现功能如下,如下图所示:

(1)电路中用P3.2、P3.3控制按键。

(2)P0.0~P0.7控制LED。

(3)P3.7控制蜂鸣器。

(4)电路为12MHZ晶振频率工作,起振电路中C1、C2均为30PF。

图6整体仿真电路

 

四.软件设计

4.1音调、节拍以及编码的确定方法

一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能像电子琴那样能奏出多种音色的声音。

因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和节拍表示一个音符唱多长的时间。

4.1.1音调的确定

不同音高的乐音是用C、D、E、F、G、A、B来表示,这7个字母就是音乐的音名,它们一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成简谱的1、2、3、4、5、6、7,相当于汉字“多来米发梭拉西”的读音,这是唱曲时乐音的发音,所以叫“音调”,即Tone。

把C、D、E、F、G、A、B这一组音的距离分成12个等份,每一个等份叫一个“半音”。

两个音之间的距离有两个“半音”,就叫“全音”。

在钢琴等键盘乐器上,C–D、D–E、F–G、G–A、A–B两音之间隔着一个黑键,他们之间的距离就是全音;E–F、B–C两音之间没有黑键相隔,它们之间的距离就是半音。

通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它们的左上角加上﹟号或者b号的叫变化音。

﹟叫升记号,表示把音在原来的基础上升高半音,b叫降记音,表示在原来的基础上降低半音。

例如高音DO的频率(1046Hz)刚好是中音DO的频率(523Hz)的一倍,中音DO的频率(523Hz)刚好是低音DO频率(266Hz)的一倍;同样的,高音RE的频率(1175Hz)刚好是中音RE的频率(587Hz)的一倍,中音RE的频率(587Hz)刚好是低音RE频率(294Hz)的一倍。

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

利用定时器计时这半个周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。

2)利用AT89C51的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法。

此外结束符和休止符可以分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产生相应的停顿效果。

3)例如频率为523Hz,其周期T=1/523=1912us,因此只要令计数器计时956us/1us=956,在每次技术956次时将I/O反相,就可得到中音DO(523Hz)。

计数脉冲值与频率的关系公式如下:

N=Fi

2

Fr

N:

计算值;Fi:

内部计时一次为1us,故其频率为1MHz;

其计数值的求法如下:

T=65536-N=65536-Fi

2

Fr

例如:

设K=65536,F=1000000=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/1047=65059

C调各音符频率与计数值T的对照表如表4.1所示。

表4.1C调各音符频率与计数值T的对照表

4.1.2节拍的确定

若要构成音乐,光有音调是不够的,还需要节拍,让音乐具有旋律(固定的律动),而且可以调节各个音的快满度。

“节拍”,即Beat,简单说就是打拍子,就像我们听音乐不自主的随之拍手或跺脚。

若1拍实0.5s,则1/4拍为0.125s。

至于1拍多少s,并没有严格规定,就像人的心跳一样,大部分人的心跳是每分钟72下,有些人快一点,有些人慢一点,只要听的悦耳就好。

音持续时间的长短即时值,一般用拍数表示。

休止符表示暂停发音。

一首音乐是由许多不同的音符组成的,而每个音符对应着不同频率,这样就可以利用不同的频率的组合,加以与拍数对应的延时,构成音乐。

了解音乐的一些基础知识,我们可知产生不同频率的音频脉冲即能产生音乐。

对于单片机来说,产生不同频率的脉冲是非常方便的,利用单片机的定时/计数器来产生这样的方波频率信号。

因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。

表4.2节拍与节拍码对照

每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,图5.2为节拍码的对照。

如果1拍为0.4秒,1/4拍实0.1秒,只要设定延迟时间就可求得节拍的时间。

假设1/4拍为1DELAY,则1拍应为4DELAY,以此类推。

所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如图5.3为1/4和1/8节拍的时间设定。

表4.31/4和1/8节拍的时间设定

4.1.3编码

doremifasolasi分别编码为1~7,重音do编为8,重音re编为9,停顿编为0。

播放长度以十六分音符为单位(在本程序中为165ms),一拍即四分音符等于4个十六分音符,编为4,其它的播放时间以此类推。

音调作为编码的高4位,而播放时间作为低4位,如此音调和节拍就构成了一个编码。

以0xff作为曲谱的结束标志。

举例1:

音调do,发音长度为两拍,即二分音符,将其编码为0x18。

举例2:

音调re,发音长度为半拍,即八分音符,将其编码为0x22

歌曲播放的设计。

先将歌曲的简谱进行编码,储存在一个数据类型为unsignedchar的数组中。

程序从数组中取出一个数,然后分离出高4位得到音调,接着找出相应的值赋给定时器0,使之定时操作蜂鸣器,得出相应的音调;接着分离出该数的低4位,得到延时时间,接着调用软件延时。

表4.4简谱对应的简谱码、T值、节拍数

4.2软件程序设计

4.2.1主程序

 

表4.5主程序

Count1的值

程序代码

LED状态

 

Count1值为1

 

按照花样1依次亮起

 

Count1值为2

 

按照花样2依次亮起

 

Count1值为3

 

按照花样3依次亮起

 

Count1值为4

 

按照花样4依次亮起

4.2.2播放音乐子程序

表4.6子程序

Count2的值

程序代码

LCD状态

 

Count2值为0

显示开机界面

“Welcome”

“YinYueHe”

 

Count2值为1

播放界面

“music”

“QNZL”

正在播放千年之恋

 

 

Count2值为2

播放界面

“music”

“JMSZL”

正在播放寂寞沙洲冷

 

Count2值为3

播放界面

“music”

“GEDX”

正在播放感恩的心

 

Count2值为4

播放界面

“music”

“QZZG”

正在播放七子之歌

4.2.3程序源代码(见附录A)

 

五.调试

5.1检查硬件连接

在PROTUES检查各硬件管脚是否连接正确,线路逻辑是否正确,例如:

晶振电路的连接,复位电路是否设计正确。

5.2检查软件系统

1.根据系统的原理结构检查各流程图是否正确,再根据流程图来检查程序是否也正确。

2.将所有程序组织起来,在软件环境下运行,检查程序是否正确。

通过对硬件和软件系统的认真检查,反复测试,如果没有出现问题即可把源程序编译成HEX文件装载到单片机中,对硬件进行仿真。

5.3测试结果

5.3.1.总体运行图

图7整体运行电路

5.3.2.显示屏显示图

在运行时,1602显示屏上显示的内容如下图所示:

图8音乐盒开始运行时显示内容

图9第一二首歌显示内容:

千年之恋、寂寞沙洲冷

图10第四首歌显示内容:

感恩的心、七子之歌

5.3.3.选择仿真图

图11按键

第一个按键功能:

变换灯,第二个按键功能:

歌曲切换以及暂停

5.3.4.花样灯3种花样图

由于截图只能看到静态图,不能看到整体图样,下面画图说明:

(1)第一种花样灯显示方式为:

从D1移向D2,然后D1熄灭,再从D2移向D3,然后D2熄灭,以此类推,往复循环。

图12第一种花样灯

(2)第二种花样灯显示方式为:

从中间向两边移动,首先从D5移向D4,再从D4移向D6,再从D6移向D3,再从D3移向D7,以此类推,往复循环。

具体如图5.3。

图13第二种花样灯

(3)第三种花样灯显示方式为:

依次从D1至D8亮灯。

与第一种方式的不同之处为:

当D1移向D2时,D1不熄灭,再从D2移向D3时,D2也不熄灭,以此类推。

图14第三种花样灯

 

5.3.5.硬件实物图

图15硬件实物图

5.4测试结果与分析

 

5.4.1测试结果

表5.1测试结果显示

按键2

实验结果

显示

按键2未按

开机界面

按键2按了1次

播放第一首歌曲“千年之恋”

按键2按了2次

播放第二首歌曲“寂寞沙洲冷”

按键2按了3次

播放第三首歌曲“感恩的心”

按键2按了4次

播放第四首歌曲“七子之歌”

按键2按了5次

歌曲暂停

界面停留在最后一首歌的显示界面

5.4.2结果分析

(1)在硬件测试时,显示屏亮起,但并未显示内容,经过检查并调节LCD1602显示屏第三脚所接的滑动变阻器,在顺时针调节时,显示屏内容显示,完成显示屏调试过程。

(2)完成电路板的所有焊接后,进行最后的调试,在调试过程中,蜂鸣器虽有声音,但并未听出音调,并夹杂着尖锐声音,经过检查以及硬件调试,最后将蜂鸣器模块电路的滑动变阻器逆时针调节,失真变小,尖锐声消除。

(3)由于最后的硬件测试并未听出音调,经检查为程序问题,将程序中每个音调的节拍时间缩短,同时将f

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

当前位置:首页 > 高等教育 > 管理学

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

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