音乐盒设计.docx
- 文档编号:24943078
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:32
- 大小:1.04MB
音乐盒设计.docx
《音乐盒设计.docx》由会员分享,可在线阅读,更多相关《音乐盒设计.docx(32页珍藏版)》请在冰豆网上搜索。
音乐盒设计
机电学院单片机课程设计
任务书
设计名称:
音乐盒的设计
学生姓名:
***指导教师:
*****
起止时间:
自***年*月*日起至***年*月*日止
一、课程设计目的
利用AT89C51系列单片机,实现两首歌曲的依次、循环播放,并在播放歌曲的同时,与之对应的LED灯亮起,形成三种绚丽的灯光效果,制作成一个简单的音乐盒。
二、课程设计任务和基本要求
设计任务:
1.运用AT89C51系列单片机的技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能音乐盒;
2.运用2N2905三极管放大技术,对扬声器音频信号进行放大,实现音乐播放功能;
3.8个LED灯对应音乐的不同音阶,实现伴随音乐播放,发出不同的花样效果的功能。
基本要求:
1.能够实现设计任务的基本功能;
2.至少设计两种音乐的播放和三种灯光效果的制作;
3.能够完成音乐盒实物的焊接;
4.完成设计后独立撰写3000字左右的设计报告。
目录
摘要1
关键字1
1概述2
1.1设计意义2
1.2设计方案2
1.3设计内容2
2硬件设计3
2.1音乐盒的结构框图3
2.2单片机模块3
2.2.1AT89C51系列单片机介绍3
2.2.2最小系统4
2.3扬声器模块4
2.4LED显示模块5
2.5按键模块5
3软件设计6
3.1音乐盒的功能框图6
3.2音调、节拍以及编码的确定方法6
3.2.1音调的确定6
3.2.2节拍的确定7
3.2.3编码8
3.3软件程序设计9
3.3.1程序流程图9
3.3.2程序源代码10
4调试10
4.1实验环境10
4.1.1PROTEUS软件简介10
4.1.2KEIL简介11
4.2仿真调试11
4.3花样灯3种效果12
4.4实物调试13
5总结14
参考文献14
附录15
附录1仿真电路图15
附录2实物图15
附录3元器件清单16
附录4程序源代码及注释17
基于单片机的音乐盒设计
摘要:
本设计是一个基于AT89C51系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能音乐盒。
该音乐盒主要由按键电路、复位电路、时钟电路、LED显示电路以及扬声器组成。
使用两个按键控制音乐盒,一个用来切换歌曲,另一个用来切换8路LED的变化花样,本音乐盒共有两首歌曲,花样灯花样共计3种。
播放歌曲时,扬声器发出某个音调,与之对应的LED亮起。
本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试,节约了设计时间。
关键字:
音乐盒;AT89C51单片机;KEIL;PROTEUS;音调
1概述
本课程设计是以AT89C51芯片的电路为基础,外部加上放音设备,以此来实现音乐演奏控制器的硬件电路,通过软件程序来控制单片机内部的定时器使其演奏出优美动听的音乐。
可以按照自己的喜好选择音乐并将其转化成机器码存入单片机的存储器中。
对于不同型号的单片机只需要相应的改变一下地址即可。
该软、硬件系统具有很好的通用性,很高的实际使用价值,为广大的单片机和音乐爱好者提供了很好的借鉴。
1.1设计意义
音乐盒的起源,可追溯至中世纪欧洲文艺复兴时期。
当时为使教会的钟塔报时,而将大小的钟表装上机械装置,被称为“可发出声音的组钟”。
音乐盒有着300多年的发展历史,是人类文明发展的历史见证。
传统的音乐盒多是机械音乐盒,其工作原理是通过齿轮带动一个带有铁钉的铁桶转动,铁桶上的铁钉撞击铁片制成的琴键,从而发出声音。
但是,机械式的音乐盒体积比较大,比较笨重,且发音单调。
水、灰尘等外在因素,容易使内部金属发音条变形,从而造成发音跑调。
另外,机械音乐盒放音时为了让音色稳定,必须放平不能动摇,而且价格昂贵,不能实现大批量生产。
本课程设计的音乐盒,是基于单片机设计制作的电子式音乐盒。
与传统的机械式音乐盒相比更小巧,音质更优美且能演奏和弦音乐。
电子式音乐盒动力来源是电池,制作工艺简单,可进行批量生产,所以价格便宜。
基于单片机制作的电子式音乐盒,控制功能强大,可根据需要选歌,使用方便。
根据存储容量的大小,可以尽可能多的存储歌曲。
另外,可以设计彩灯外观效果,使音乐盒的功能更加丰富。
1.2设计方案
设计一个基于AT89C51系列单片机的音乐盒,利用按键切换演奏出不同的乐曲。
扬声器发出某个音调,与之相对应的LED亮起。
使用两个按键,一个用来切换歌曲,另一个切换八路LED的变化花样。
1.3设计内容
1)电路有两种工作模式:
演奏音乐模式和花样灯模式。
演奏音乐模式:
演奏完整的一首歌曲,八路LED随着音乐变化。
花样灯模式:
八路LED变化出各种花样。
2)按下按键1进入LED花样灯模式,再按切换花样,共三种花样。
3)按下按键2进入演奏歌曲模式,再按切换歌曲,共两首歌。
2硬件设计
本课程设计“简单的音乐盒”是以AT89C51单片机为核心,主要包括AT89C51单片机模块、按键输入模块、扬声器模块、LED显示模块、电源模块五个模块,通过两个按键的输入,一方面来控制音乐的切换,音乐包括两首歌曲:
挥着翅膀的女孩和寂寞沙洲冷;另一方面控制流水灯的变换,主要包括三种花样:
(1)单灯流水
(2)从两边向中间移动(3)从第一个亮到最后一个,中间不熄灭。
主控单片机负责接收按键的输入,根据输入的按键信号,控制音乐播放曲目和音乐花样灯的显示样式,从而达到音乐的播放并伴随灯光闪烁的功能。
2.1音乐盒的结构框图
图2-1系统结构框图
2.2单片机模块
2.2.1AT89C51系列单片机介绍
AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器,其可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
其外形及引脚排列如图3.1所示,40只引脚功能可分为3类:
电源及时钟引脚——Vcc、Vss、XTAL1、XTAL2;控制引脚——PSEN、ALE/PROG、EA/Vpp、RST;I/O口引脚——P0、P1、P2与P3,为4个8位I/O的外部引脚。
它作为主控芯片,控制按键信号、歌曲播放信号等,并发出相应的命令。
2.2.2最小系统
最小系统:
给单片机提供稳定的震荡频率和在上电时可靠的复位信号(如下图3.2所示)。
其中含有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
X1晶体振荡器,它的作用是提供稳定的时钟脉冲,C1和C2是晶振的匹配电容。
C3和R1是复位电路,在刚上电一瞬间,电源电压不稳定,这样会使单片机工作在不稳定的状态下,从而使单片机的指令乱飞,会让单片机不能从正确的地方开始执行程序。
其作用就是在这段电压不稳定的时间内,使单片机一直处于复位的状态,使单片机正常工作。
图2-2单片机最小系统
2.3扬声器模块
蜂鸣器,是电容性的器件,三极管通断,间歇充电,充满了播放,声音较小。
且是有源器件,只能发出嘀嘀声,声音频率固定,因此采用扬声器。
扬声器的功率是比较大的,单片机的I/O驱动能力不能让扬声器发出声音,因此要在中间加上驱动电路。
此模块采用2N2905三极管,对驱动电流进行放大。
图2-3音乐播放电路图
2.4LED显示模块
LED显示电路是由8个LED发光二极管组成,连接方式为共阳极,LED一端接到单片机的P1口,另一端接一个排阻,若为低电平,可使LED亮起。
发光二极管的亮、灭由内部程序控制,8个LED发光二极管分别对应不同的音阶,所以LED会随着音阶的变化按规律亮、灭。
图2-4LED显示电路图
2.5按键模块
此模块采用两个独立式按钮,分别与单片机的P3.2、P3.3口连接,按下Key1,花样灯改变样式,按下Key2,歌曲变换。
起到控制花样彩灯的变换、切换歌曲的功能。
图2-5按键电路
3软件设计
3.1音乐盒的功能框图
音乐盒的功能结构如图2.2所示。
Key1负责切换播放歌曲,播放歌曲共2首,分别是挥着翅膀的女孩和寂寞沙洲冷。
Key2负责切换LED显示花样,显示花样共3种,第一种单灯流水,第二种由两边向中间移动然后向两边移动,第三种循环显示。
图3-1音乐盒功能结构图
3.2音调、节拍以及编码的确定方法
一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能像电子琴那样能奏出多种音色的声音。
因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和节拍表示一个音符唱多长的时间。
3.2.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)。
4)C调各音符频率与计数值T的对照表如表4.1所示。
表3.1C调各音符频率与计数值T的对照表
低音
频率
T
参数
中音
频率
T
参数
高音
频率
T
参数
Do
262
1908
229
Do
523
956
115
Do
1046
57
57
Do﹟
277
1805
217
Do﹟
554
903
108
Do﹟
1109
54
54
Re
294
1701
204
Re
587
852
102
Re
1175
51
51
Re﹟
311
1608
193
Re﹟
622
804
97
Re﹟
1245
48
48
Mi
330
1515
182
Mi
659
759
91
Mi
1318
45
45
Fa
349
1433
172
Fa
698
716
86
Fa
1397
43
43
Fa﹟
370
1351
162
Fa﹟
740
676
81
Fa﹟
1480
41
41
So
392
1276
153
So
784
638
77
So
1568
38
38
So﹟
415
1205
145
So﹟
831
602
72
So﹟
1661
36
36
La
440
1136
136
La
880
568
68
La
1760
34
34
La﹟
464
1078
129
La﹟
932
536
64
La﹟
1865
32
32
Si
494
1012
121
Si
988
506
61
Si
1976
30
30
3.2.2节拍的确定
若要构成音乐,光有音调是不够的,还需要节拍,让音乐具有旋律(固定的律动),而且可以调节各个音的快满度。
“节拍”,即Beat,简单说就是打拍子,就像我们听音乐不自主的随之拍手或跺脚。
若1拍实0.5s,则1/4拍为0.125s。
至于1拍多少s,并没有严格规定,就像人的心跳一样,大部分人的心跳是每分钟72下,有些人快一点,有些人慢一点,只要听的悦耳就好。
音持续时间的长短即时值,一般用拍数表示。
休止符表示暂停发音。
一首音乐是由许多不同的音符组成的,而每个音符对应着不同频率,这样就可以利用不同的频率的组合,加以与拍数对应的延时,构成音乐。
了解音乐的一些基础知识,我们可知产生不同频率的音频脉冲即能产生音乐。
对于单片机来说,产生不同频率的脉冲是非常方便的,利用单片机的定时/计数器来产生这样的方波频率信号。
因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。
表3.2节拍与节拍码对照
节拍码
节拍数
节拍码
节拍数
1
1/4拍
1
1/8拍
2
2/4拍
2
1/4拍
3
3/4拍
3
3/8拍
4
1拍
4
2/1拍
5
1又1/4拍
5
5/8拍
6
1又1/2拍
6
3/4拍
8
2拍
8
1拍
A
2又1/2拍
A
1又1/4拍
C
3拍
C
1又1/2拍
F
3又3/4拍
每个音符使用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节拍的时间设定。
表3.31/4和1/8节拍的时间设定
曲调值
DELAY
曲调值
DELAY
调4/4
125毫秒
调4/4
62毫秒
调3/4
187毫秒
调3/4
94毫秒
调2/4
250毫秒
调2/4
125毫秒
3.2.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位,得到延时时间,接着调用软件延时。
表3.4简谱对应的简谱码、T值、节拍数
简谱
发音
简谱码
T值
节拍码
节拍数
5
低音SO
1
64260
1
1/4拍
6
低音LA
2
64400
2
2/4拍
7
低音TI
3
64524
3
3/4拍
1
中音DO
4
64580
4
1拍
2
中音RE
5
64684
5
1又1/4拍
3
中音MI
6
64777
6
1又1/2拍
4
中音FA
7
64820
8
2拍
5
中音SO
8
64898
A
2又1/2拍
6
中音LA
9
64968
C
3拍
7
中音TI
A
65030
F
3又3/4拍
1
高音DO
B
65058
2
高音RE
C
65110
3
高音MI
D
65157
4
高音FA
E
65178
5
高音SO
F
65217
3.3软件程序设计
3.3.1程序流程图
图3-2主程序流程图
在本程序中设置了两个标志——count1和count2,分别初始化为1和0。
按键1使得count1在1和2之间切换,按键2使得count2在1~4之间切换。
程序检测count1的值,count1等于1时播放第一首歌曲,等于2时播放第二首。
另一方面根据count2的值来切换LED的花样。
count1和count2的值是互斥的,设置count1等于1、2时,count2同时设置为0;设置count2等于1~4时,count1也同时设置为0。
3.3.2程序源代码(见附录A)
4调试
4.1实验环境
本课程设计利用Proteus绘图软件对音乐盒的原理图进行绘制、仿真、调试;利用KEIL编程软件对音乐盒源程序进行编程并调试,两种软件的简介如下:
4.1.1PROTEUS软件简介
Proteus它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
图4-1-1PROTEUS环境
4.1.2KEIL简介
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
机器汇编是通过汇编软件将源程序变为机器码,Keil软件是目前最流行开发MCS-51系列单片机的软件,Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。
KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
图4-1-2KEIL环境
4.2仿真调试
1.根据系统的原理结构检查各流程图是否正确,再根据流程图来检查程序是否也正确。
2.将所有程序组织起来,在软件环境下运行,检查程序是否正确。
通过对硬件和软件系统的认真检查,反复测试,如果没有出现问题即可把源程序编译成HEX文件装载到单片机中,对硬件进行仿真。
图4-2仿真调试图
4.3花样灯3种效果
由于截图只能看到静态图,不能看到整体图样,下面画图说明:
图4-3花样灯
(1)第一种花样灯显示方式为:
从D1移向D2,然后D1熄灭,再从D2移向D3,然后D2熄灭,以此类推,往复循环。
图4-3-1第一种花样
(2)第二种花样灯显示方式为:
从两边向中间移动,首先从D1移向D8,再从D8移向D2,以此类推,往复循环。
图4-3-2第2种花样
(3)第三种花样灯显示方式为:
从D1移向D2,D1不熄灭,再从D2移向D3,以此往复循环。
与第一种方式的不同之处为:
当D1移向D2时,D1不熄灭,再从D2移向D3时,D2也不熄灭,以此类推。
图4-3-3第3中花样
4.4实物调试
AT89C51单片机的供电电压范围一般为4.5——5.5V。
通过4节1.5V圆柱电池串联或者用2个3V的锂电池串联,直接为整个系统供电。
图4-4实物运行图
5总结
单片机的设计至今为止已经进入了令人鼓舞的阶段,这次的课程设计使我不仅仅对单片机入门软件与硬件有较好的掌握与使用,还使我了解、掌握对于一项设计研究的制作过程所需要的详细步骤和具体实现方法的力度。
有的时候要说做一件事是很容易的,但是要做好一件事是很不容易的。
此次课程设计可以让我把平时在课堂上学的理论知识很好的运用到实际中,通过自己焊接实物,测试功能,提高自己的动手能力。
不过,通过此次课程设计,才发现自己有好多的地方都很欠缺,于是就要去上网查阅或翻阅各种资料,这又提高了我学习的兴趣,可以加深我们对理论知识的理解,为下一步的学习打下坚实的基础。
此次课程设计,我不仅品味到了结果的喜悦,更明白了过程的弥足珍贵。
我相信这只是对我们的一个小小的考验,人生还有很多的挑战等着我们,只要努力,就会成功。
参考文献
[1]李建忠.单片机原理及应用[M].西安电子科技大学出版社,2008.2.
[2]黄智伟.全国大学生电子设计竞赛系统设计[M].北京:
北京航空航天大学出版社,2006.
[3]李广弟.单片机基础[M].北京:
北京航空航天大学出版社,2001.7.
[4]赵曙光.可编程逻辑器件原理开发与应用[M].西安:
西安电子科技大学,2000.
[5]康华光.模拟电子技术基础(第四版)[M].武汉:
华中理工大学出版社,1999.
[6]谭浩强.C语言程序设计(第二版)[M].北京:
清华大学出版社,1991.
[7]陈小忠.单片机接口技术实用子程序[M].北京:
北京人民邮电出版社,2005.
[8]贾立新.电子系统设计与实践[M].北京:
清华大学出版社,2007.
[9]罗亚非.凌阳16位单片机应用基础[M].北京:
北京航空航天大学出版社,2003.
[10]雷思孝.凌阳单片机原理及实用技术[M].西安电子科技大学,2004.
附录
附录1仿真电路图
附录2实物图
附录3元器件清单
音乐盒设计所需器件清单
名称
种类
数量
单片机
AT89C51
1
LED灯
黄灯(LED-yellow)
2
绿灯(LED-green)
2
红灯(LED-red)
2
蓝灯(LED-blue)
2
排阻
RESPACK-8
1
按钮
BUTTON
3
扬声器
SOUNDER
1
电阻
1K
1
5.5K
1
15K
1
5.1K
1
10K
1
100K
1
电容
电解电容CAP-ELEC1μF
1
瓷片电容CAP22pF
2
晶振
CRYSTAL11.0592MHZ
1
三极管
2N2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 音乐盒 设计