电子音乐盒的设计

电子音乐盒的设计
电子音乐盒的设计

电气信息学院

微机与单片机综合课程设计报告课题名称电子音乐盒的设计

专业班级 13电气3 班

学号

学生姓名

指导教师

评分

2015年12月14日至12月20日

课程设计的任务要求

一、课程设计选题:

从以下课题中任选一题进行,各课题具体要求详见“微机与单片机综合课程设计题目汇总”文档。并在课程设计报告的正文中详细说明。

1.彩灯控制器的设计

2.电子时钟的设计

3.现代交通灯的设计

4.多路抢答器的设计

5.波形发生器的设计

6.点阵广告牌的设计

7.篮球记分器的设计

8.数字式温度计的设计

9.步进电机的控制

10.电子音乐盒的设计

11.电风扇模拟控制系统设计

12.洗衣机人机界面的设计

13.秒表系统的设计

14.多机串行通信的设计

15.电子密码锁的设计

16.4位数加法计算器的设计

17.数字频率计

18.数字电压表

二、选题说明:一人一题,一个教学班级同一题不能被选超过两次。鼓励同学们将各设计中的基本任务完成后,选做部分发挥项。题中带*和#符号的任务,属于发挥部分。

三、设计时间及进度安排:

第16周,12. 14~12.20

12.14 题目分析,文献查阅

12.15 设计方案

12.16~12.17 元器件选型,硬件电路设计

12.18~12.19 软件设计,系统调试

12.20 课程设计说明书(报告)撰写

四、设计作品提交:

(1)课程设计说明书(纸质版,用于存档);

(2)课程设计说明书(电子版),单片机源程序文件(电子版);

(3)Proteus仿真程序或实物。

五、设计考核评定:

教师评分:80%,答辩成绩:20%

答辩记录

1、例举设计过程中遇到的主要问题及其解决方法。

(1)问题说明:

①编写好程序之后用keil调试没有错误,但将源程序导入到protues中去并进行仿真时,音乐盒并不能放歌。

②将问题一解决后再次进行调试时,音乐盒只能播放一首歌曲。

(2)解决方法:

①针对问题一,首先检查硬件电路,发现单片机的RST接口始终都是高电平,于是修改复位电路,并联一个接地的电阻,终于使单片机在工作时RST接口为低电平。更正之后还是不能放歌,于是检查软件程序。发现主程序中令count2=0,而count2是跳出播放音乐子程序的,于是将count2=0改为count2=1,于是可以放第一首歌。

②针对问题二,在播放音乐子程序中加入了if语句,当k1=0时,count2=1,播放第一首歌曲;当k2=0时,count2=2,播放第二首歌曲;当k3=0时,count2=3,播放第三首歌曲;当k4=0时,暂停歌曲。

2、教师现场提的问题记录在此(不少于2个问题)。

①问:蜂鸣器的发声原理?

答:用单片机的定时器产生不同频率的方波,方波驱动定时器发声。驱动方波频率越高,音调就越高;驱动方波频率越低,音调越低。

②问:单片机的时钟频率和机器周期各是多少?

答:时钟频率为12MHZ,机器周期为1us。

③问:如何用proteus改变单片机的时钟周期?

答:在proteus界面左边有个激励源模式,里面有各种激励源。里面的DCLOCK就是可以产生时钟信号的(也就是方波),在属性里面设置不同的频率就可以得到不同的时钟信号。

课程设计量化评分标准

指导教师签字:

2015年月日

摘要

本次课程设计是设计一个基于51单片机的音乐盒,该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。本音乐盒共有三首歌曲,用4个按键控制。其中K1,k2,k3用于选择歌曲。按下按键k1时,播放第一首歌曲;按下按键k2时,播放第二首歌曲;按下按键k3时,播放第三首歌曲。k4用于暂停歌曲,暂停后重新选歌即可再播放。播放歌曲时,定时器产生不同频率的方波,使蜂鸣器发出不同音调的声音,并通过延时控制音乐的节拍。本设计利用KEIL编程软件对音乐盒源程序进行编程和调试,配合PROTEUS仿真软件对硬件进行仿真调试,节约了设计时间。

关键字:51单片机;按键;蜂鸣器;音调;节拍

I

Abstract

This curriculum design is to design a music box based on AT89C51 singlechip.This music box is mainly consist of key circuit,reset circuit,clock circuit and buzzer.There are three songs in the music box.They are controled by four keys.k1,k2 and k3 are used to choose songs.When we push k1,the music box is playing the first song.When we push k2,it is playing the second song.When we push k3,it is playing the third song.k4 is used to pause the songs.Only if we push other keys to choose music,can the misic box play again.The timer produces square waves of different frequency which let the buzzer make sound of different tones.And it controls the music beat by delay function. Keil is used to programme and debug the source program.Protues can debug and emulate the hardware. Both softwares can help us to save time.

Key words: AT89C51; key; buzzer; tone; beat

目录

1设计任务 ........................................ 错误!未指定书签。2设计方案 ........................................ 错误!未指定书签。

2.1任务分析.......................... 错误!未指定书签。

2.2方案设计.......................... 错误!未指定书签。

3 系统硬件设计.................................... 错误!未指定书签。

I

3.1整体电路设计...................... 错误!未指定书签。

3.2时钟电路设计...................... 错误!未指定书签。

3.3复位电路设计...................... 错误!未指定书签。

3.4键盘电路设计...................... 错误!未指定书签。

3.5 蜂鸣器电路设计.................... 错误!未指定书签。

4 系统软件设计.................................... 错误!未指定书签。

4.1音调,节拍以及编码的确定.......... 错误!未指定书签。

4.2主要部分软件程序分析.............. 错误!未指定书签。5仿真与性能分析................................... 错误!未指定书签。6心得体会 ........................................ 错误!未指定书签。参考文献.......................................... 错误!未指定书签。附录1 系统原理图.................................. 错误!未指定书签。附录2 程序清单.................................... 错误!未指定书签。

I

1设计任务

1.1基本任务

(1)查阅资料,了解单片机控制单音喇叭发声原理。

(2)设计基于单片机的电子音乐盒。

(3)通过按钮可选择不同的音乐。

1.2设计目的

(1)通过设计,查阅相关资料,掌握如何利用单片机设计产品,同时了解单片机有关的软

件模拟器的使用。

(2)通过本课程设计巩固并扩展单片机课程的基本概念、基本理论、分析方法和实现方法。

结合protues和keil软件等,学习单片机产品的设计方法,有效地将理论和实际紧密结合,培养创新思维和设计能力,增强软件编程实现能力和解决实际问题的能力。(3)学习protues软件,掌握protues中各种芯片的功能以及灵活性,提供了实验室在数

量、质量上难以比拟的虚拟仪器、仪表,因而也提供了培养实践精神,创造精神的平台。

1.3设计要求

(1)利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(共

有3首歌曲)。

(2)可通过功能键进行选择歌曲和暂停操作。

2设计方案

2.1任务分析

本设计是以AT89C51芯片的电路为基础,外部加上放音设备,从而来实现音乐演奏控制器的硬件电路,通过软件程序来控制单片机内部的定时器使其演奏出优美的音乐。该软,硬件系统具有很好的通用性,很高的实际使用价值。

2.2方案设计

1.硬件方案

根据设计的要求可知,系统的硬件原理框图如图2.1所示。

图2.1 系统的硬件原理框图

以AT89C51为核心,通过单片机的定时器产生一定长度的方波,方波脉冲驱动蜂鸣器发声。要产生音频脉冲,只需算出某一音频的周期(1/音频),然后取半周期的时间定时。利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O口反相,就可在I/O脚上得到此频率的脉冲。当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器发声,放出歌曲。

2. 软件方案

(1)主程序流程图

系统初始化

扫描键盘得

到键值蜂鸣器选曲

发音

开始扫描键盘

暂停键是否按下

继续放音

结束

图 2.2 主程序流程图 (2)音乐播放程序流程图

开始创建新的频

率表计算歌曲长

读音符

求出发音长

蜂鸣器发声

判断音符是否读完或暂停键是否按下

蜂鸣器停止

发声

结束

图2.3 音乐播放程序流程图

3 系统硬件设计

3.1整体电路设计

图3.1

电子音乐盒整体电路

AT89C51为核心,通过单片机的定时器产生一定长度的方波,方波脉冲驱动蜂鸣器发

声。要产生音频脉冲,只需算出某一音频的周期(1/音频),然后取半周期时间定时。利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间,再对I/O口反相,就可在I/O 脚上得到此频率的脉冲。当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器发声,放出歌曲。

3.2时钟电路设计

图3.2 单片机时钟电路

单片机需要一个时间基准来为各种操作提供秩序,此电路叫时钟电路,采用不同的接线方式可以获得不同时钟电路,有内部时钟电路和外部时钟电路。如上图所示,外部时钟电路会使电路复杂,故采用的是内部时钟电路。时钟电路在单片机的外部通过XTAL1,XTAL2 这两个引脚跨接晶体振荡器和微调电容,构成稳定的自激振荡器。本系统采用的为12MHz的晶振,一个机器周期为1us,C1,C2为30uF。

3.3复位电路设计

图3.3单片机复位电路

复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。

复位电路分为上电自动复位和按键手动复位,如图所示。RST引脚是复位信号的输入端,复位信号是高电平有效.这次采用的是手动复位,复位通过电容C3和电阻R1来实现,按键手动复位是图中复位键来实现的。

3.4键盘电路设计

图3.4单片机键盘电路

键盘是由一组按压式或触摸式开关构成的阵列,是一种常用的输入设备。键盘可分为编码式键盘和非编码式键盘两种。编码键盘通过硬件电路产生被按按键的键码,这种键盘所需程序简单,但硬件电路复杂、价格昂贵通常不被单片机系统采用。非编码键盘常用一些按键排列成行列矩阵,其硬件逻辑与按键编码不存在严格的对应关系,而要由所用的程序来决定。非编码键盘的硬件接口简单,但是要占用较多的CPU时间,通常采用可编程键盘管理芯片来克服这个缺点。本设计使用两种按键,一种是按键式非编码键盘和轻触式非编码开关。

3.5 蜂鸣器电路设计

图3.5 蜂鸣器电路

一般所指的蜂鸣器是以压电陶瓷为主要元件的。压电陶瓷是一类有将压力与电流相互转换能力的特殊陶瓷。这种能力缘于其特殊的晶体结构。当压电陶瓷在一定方向上受到一个压力使其晶体结构发生形变时,它就会在内部产生一个电流,并且电流的变化与压力的变化密切相关。反之亦然。所以利用这一特性,在压电陶瓷上通过一定频率的电流,就会引起压电陶瓷微小形变,这一形变带动空气发生振动,如果频率适当,就可以被人耳所听见,也就是产生了蜂鸣声。

4 系统软件设计

4.1音调,节拍以及编码的确定

1.音调的确定

一首音乐是由许多不同的音符组成的,而每个音符对应着不同的频率,这样就可以利用不同的频率组合,加以与拍数对应的延时,构成音乐。了解音乐的一些基础知识,我们可以产生不同频率的音频脉冲即能产生音乐。对于单片机来说,产生不同频率的脉冲是非常方便的,利用单片机的定时/计数器来产生这样的方波频率信号。因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。

2.节拍的确定

每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍。如果1拍为0.4秒,1/4拍就是0.1秒,只要设定延迟时间就可得到节拍时间。假设1/4拍为1delay,则1拍应为4delay,以此类推。所以只要求得1/4拍的delay时间,其余的节拍就是它的倍数。

3.编码的确定

Do,re,mi,fa,so,la,xi分别编码为1-7,重音do编为8,重音re编为9,停顿编为0。播放长度以十六分音符为单位(在本程序中为165ms),一拍即四分音符等于4个十六分音符,编为4,其它的播放时间以此类推。音调作为编码的高4位,而播放时间作为低4位,如此音调和节拍就构成了一个编码。以0xff作为曲谱的结束标志。

4.2主要部分软件程序分析

1.延时165ms,即十六分音符子函数

void delay1(uint z)

{

for(x=z;x>0;x--)

for(y=19000;y>0;y--);

}

2.延时1ms子函数

void delay2(uint z)

{

uint x,y;

for(x=z;x>0;x--) for(y=110;y>0;y--); }

3.定时器0中断子函数

void t0() interrupt 1 { TH0=a; TL0=b; BEEP=~BEEP; }

4.播放音乐子函数

void song() {

uint temp;

uchar aa; // aa 是简谱 c=0; while(1) { if(k1==0) {count2=1;} if(k2==0) {count2=2;}

if(k3==0)

{count2=3;}

if(count2==0)

{ break; }

if(count2==1) // 选曲temp=table1[c];

if(count2==2)

temp=table2[c];

if(count2==3)

temp=table3[c];

if(count2==4)

temp=table4[c];

if(temp==0xff)

break;

aa=temp/16; // 取数的高4位if(aa!=0)

{

a=cuzhi[aa*2];

b=cuzhi[aa*2+1];

}

else

{

TR1=0;

BEEP=1; // 关蜂鸣器

}

delay1(temp%16); // 取数的低4位TR1=0; // 唱完一个音停10ms BEEP=1;

delay2(10);

TR1=1;

c++;

}

TR1=0;

BEEP=1;

}

5.主函数

void main()

{

TMOD=0x10;

TH1=0;

TL1=0;

ET1=1;

EA=1; // 开总中断

EX1=1; // 开外部中断

IT1=1; // 下降沿时触发中断EX0=1; // 开外部中断0

IT0=1; // 下降沿时触发中断

while(1) // 大循环

{

song();

}

}

5仿真与性能分析

5.1系统仿真过程

将用keil编写的源程序导入到protues中,当上电仿真时,单片机,蜂鸣器通电,待按下功能键选择歌曲后,蜂鸣器便可发声。

图5.1 电子音乐盒仿真图

5.2 仿真结果与分析

结果:上电后,当按下k1键时,count2=1,蜂鸣器演奏第一首歌曲;当按下k2键时,count2=2,蜂鸣器演奏第二首歌曲;当按下k3键时,count2=3,蜂鸣器演奏第三首歌曲。在演唱过程中,按下k4键时,音乐暂停,再次重新选择歌曲即可播放。

分析:当按下k1键,产生外部中断,扫描键盘,得到键值count2=1,所以蜂鸣器演奏第一首乐曲,演奏其他乐曲时道理相同。演奏乐曲时,单片机读音符,高四位用于产生不同频率的方波,不同频率的方波通过蜂鸣器发出不同的音调;低四位用于控制发音长度,定时器通过低四位计算出延时时间,即可控制发音长度。

6心得体会

这次单片机课程设计历时两个星期的时间,在这两个星期里我们体验了从设计、画板、编程、仿真到调试的整个过程,让我们体验了一次工程师的感觉。

首先我先到图书馆和网上查阅了大量有关蜂蜜器发声原理的资料,然后开始设计自己的方案,为了设计任务要求和抱着巩固知识的想法,我选择已经学习过的AT89C51单片机。整天抱着电脑查资料、看资料是一件很痛苦的事情,一天下来眼都花了,但每学会一点新知识还是挺高兴的,有的时候知识遗忘了或者有很难理解的地方,就会向同学求助,他们都会毫无保留的帮助我。

设计完电路以后我便开始编写源程序,起初觉得无从下手,于是开始在网上搜集各种资料,研究和比较了各种源程序,选择了一种比较完整和易懂的源程序作为模板进行研究和校正。几天的反复研究,终于弄懂了程序的各个模块,对照自己的设计任务对程序进行修改,终于没有了错误。然后进行仿真调试,刚开始仿真时,蜂鸣器通电了但并不能发声,对按键进行任何操作都没有作用。仔细对比和研究,在硬件电路和软件程序中均找到了不恰当的地方,又经过反复修改,最终蜂鸣器终于可以发声了。但是仅仅只是k1键有效,

其它按键无效。猜想肯定是音乐播放程序有问题,仔细研究,才发现程序中没有涉及功能键的选择,于是自己编写了if程序,若有按下对应按键,则改变count2的值,进而选择不同歌曲。最后,终于成功了!

这两周的时间说轻松也不轻松,说紧张却稍带着愉快的气氛,整个过程应该是充实的,时而惊喜,时而烦闷特别是最后调试阶段有一块调通让我高兴不已,当卡在某处时也确实是让人抓狂。总之通过这次课设,我们不但复习了过去所学,并且学到了一些新东西。更重要的是通过这一次切身实践,才使我们真正将理论与实际结合起来,并且遇到了很多实实在在的需要我们亲自解决的问题。通过解决这些问题,我们处理实际问题的能力有了很大提高,积累了我们的实践经验,以便为以后打下牢固的基础。而这些才是我们作为一名工科学生最宝贵的财富。

参考文献

[1] 郭天祥.新概念51单片机C语言教程[M].北京:电子工业出版社,2009.

[2]秦实宏,徐春辉 MCS-51单片机原理及应用[M]. 武汉:华中科技大学出版社,2010.6.

[3] 李群芳,张士军,黄建.单片机微型计算机与接口技术[J].北京:电子工业出版社,2008.

[4] 李群芳单片机原理接口与应用[J].北京:清华大学出版社,2005.

[5] 高峰单片机微机应用系统设计及使用技术[M].北京:机械工业出版社,1999.

[6] 彭伟单片机C语言程序设计实例基于protues仿真[M].北京:电子工业出版社,2007.

[7] 张迎新单片机微型计算机原理、应用及接口技术[M].北京:国防工业出版社,1999.

附录1 系统原理图

附录2 程序清单

#include

typedef unsigned char uchar;

typedef unsigned int uint;

sbit RS=P2^0;

sbit RW=P2^1;

sbit E= P2^2;

sbit BEEP=P2^7;

sbit k1=P1^0;

sbit k2=P1^1;

sbit k3=P1^2;

sbit k4=P1^3;

char count2;

uchar a,b,c,aa,num;

uchar num1,num2;

uchar code table1[]={

0x12,0x22,0x34,0x84,0x74,0x54,0x38,0x42,0x32,0x22,0x42,0x34,0x84,0x72,0x82,0x 94,0xA8,0x08,

0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,

0x32,0x31,0x21,0x32,0x82,0x71,0x81,0x71,0x51,0x32,0x22,

0x32,0x31,0x21,0x32,0x82,0x71,0x81,0x71,0x51,0x32,0x22,

0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,

0x32,0x31,0x21,0x32,0x83,0x82,0x71,0x72,0x02,

0x63,0xA1,0xA2,0x62,0x92,0x82,0x52,

0x31,0x51,0x63,0x51,0x63,0x51,0x63,0x51,0x62,0x82,0x7C,0x02,

0x61,0x71,0x82,0x71,0x62,0xA2,0x71,0x76,

0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36,

0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53,

0x42,0x63,0x83,0x83,0x91,0x91,

0x61,0x71,0x82,0x71,0x62,0x0A2,0x71,0x76,

0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36,

0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53,

0x42,0x82,0x88,0x02,0x74,0x93,0x89,0xff

};

uchar code table2[]={

0x12,0x12,0x22,0x32,0x31,0x22,0x21,0x22,

0x21,0x31,0x51,0x52,0x31,0x52,0x61,0x15,0x14,

0x51,0x52,0x31,0x52,0x62,0x13,0x11,0x13,0x32,0x28,0x08,0x28,

0x31,0x32,0x31,0x32,0x11,0x21,0x51,0x52,0x51,0x52,

0x51,0x51,0x31,0x32,0x31,0x32,0x81,0x72,0x63,

0x62,0x71,0x81,0x72,0x61,0x61,0x52,0x31,0x21,0x32,0x51,0x54,

0x22,0x12,0x11,0x12,0x11,0x12,0x12,0x14,0x26,0x32,0x26,

0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,

0x02,0x32,0x81,0x81,0x81,0x81,0x62,0x52,0x34,

0x31,0x81,0x81,0x81,0x61,0x91,0x82,

0x51,0x51,0x51,0x51,0x31,0x61,0x53,

0x21,0x11,0x21,0x11,0x22,0x11,0x21,0x26,

0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,0x52,

0x31,0x31,0x81,0x81,0x81,0x61,0x91,0x81,0x61,0x31,0x56,

0x32,0x32,0x81,0x81,0x81,0x81,0x91,0x81,0x61,0x81,0x61,0x51,0x31,0x51,0x34, 0x21,0x31,0x51,0x31,0x21,0x11,0x61,0x21,0x16,0xff

};

uchar code table3[]={

0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x 20,

0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x 20,

0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x 20,

0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x 20,

0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x 10,

0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x 20,

0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x 20,

0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x 20,

0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x 10,

0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x 80,

0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x 20,

0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x 20,

0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x 10,

0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0xff

};

uchar code qz[]={

0xff,0xff,

0xFC,0x8E,

0xFC,0xED,

0xFD,0x43,

0xFD,0x6A,

0xFD,0xB3,

0xFD,0xF3,

0xFE,0x2D,

0xFE,0x47,

0xFE,0x76,

0xFE,0xA1,

0xFE,0xC7,

0xFE,0xD9,

0xFE,0xF9,

0xFF,0x16,

};

uchar code yinyue[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x00,0x00}; void delay1(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=19000;y>0;y--);

}

void delay2(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void song()

{

uint temp;

uchar aa;

c=0;

while(1)

{

if(k1==0)

{count2=1;}

if(k2==0)

{count2=2;}

if(k3==0)

{count2=3;}

if(count2==0)

{break;}

if(count2==1)

{temp=table1[c];}

if(count2==2)

{temp=table2[c];}

if(count2==3)

{temp=table3[c];}

if(temp==0xff)

{break;}

aa=temp/16;

if(aa!=0)

{a=qz[aa*2];b=qz[aa*2+1];}

else

{TR1=0;BEEP=1;}

delay1(temp%16);

TR1=0;BEEP=1;delay2(10);TR1=1;c++; }

TR1=0;BEEP=1;

}

void write_com(uchar com)

{

RS=0;RW=0;P0=com;E=1;delay2(5);E=0;

}

void write_data(uchar date)

{

RS=1;RW=0;E=0;P0=date;E=1;delay2(5);E=0;

}

void key()

{

if(k4==0)

{delay2(10);TR1=0;count2=0;c=0;}

if(RS==1)

{

write_com(0x01);

write_com(0x80+0);

write_data('W');

write_com(0x80+1);

write_data('e');

write_com(0x80+2);

write_data('1');

write_com(0x80+3);

write_data('c');

write_com(0x80+4);

write_data('o');

write_com(0x80+5);

write_data('m');

write_com(0x80+6);

write_data('e');

}

}

void LCD1602_init()

{

write_com(0x01);

delay2(15);

}

void main()

{

TMOD=0x11;TH1=0;TL1=0;ET1=1;TH0=0;TL0=0;ET0=1;TR0=1;EA=1;EX1=1;IT1=1; EX0=1;IT0=1;

LCD1602_init();

while(1)

{

song();

}

}

void t0()interrupt 1

{

音乐盒设计

基于89c52单片机音乐播放的设计安庆师范学院物理与电气工程学院

1、设计任务和要求 (1) 2、总体设计 (1) 3、硬件设计 (2) 3.1 硬件电路 (2) 3.2 原理说明 (2) 4、软件设计 (2) 5、仿真、安装和调试 (5) 6、收获与体会 (6) 附件1:元件清单 (6) 附件2: 总仿真电路图 (7) 附件3:音乐程序 (8)

音乐盒设计 1、设计任务和要求 (1)利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演乐曲。 (2直接当前播放的歌曲。 (3)可通过功能键选择播放上一首、下一首和暂停播放歌曲。 2、总体设计 (1)要产生音频脉冲,只要算出某一音频的周期(1/音频),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O口反相,就可在I/O脚上得到此频率的脉冲 (2)利用8052的内部定时器使其工作在计数器模式MODE1下,改变记数值TH0及TL0以产生不同频率的方法。例如频率为523HZ,其周期T=1/523=1912微秒,因此只要令计数器定时956/1=956在每记数9次时将I/O口反相,就可得到中音D0(523HZ)。 记数脉冲值与频率的关系公式如下: N=Fi/2/Fr N:记数值 Fi:内部计时一次为1微秒.故其频率为1MHZ Fr;要产生的频率 (3):起记数值的求法如下: T=65536-N=65536-Fi/2/Fr 例如:设K=65536,F==Fi=1MHZ,求低音D0(523HZ),高音的D0(1046HZ)的记数值。 T=65536-N=65536-Fi/2/Fr=65536-/2/Fr=65536-500000/Fr 低音D0的T=65536-500000/262=63627 中音D0的T=65536-500000/523=64580 高音D0的T=65536-500000/1047=65059

(完整版)基于51单片机的电子八音盒详细设计步骤

一、设计目的 利用8052单片机结合内部定时器设计一个八音盒,按下单键可以演奏预先设置的歌曲旋律。 二、设计要求 其基本功能为:1,使用LED显示器来显示目前演奏的歌曲编号;2,具有8个按键操作来选择演奏哪一首歌曲;3,内建8首歌曲旋律,按下单键可以演奏歌曲。 三、设计器材 T89C52单片机、晶振、八个按键、二位一体共阳极数码管、电阻电容若干、导线。 四、设计方案及分析 设计思路: (1)选择8052单片机,通过T0定时中断,并配合P2.0引脚输出音频频率。 (2)P2.0引脚输出接蜂鸣器。 (3)通过P0口接LED。 (4)P1口接键盘,输入歌曲号。 音符产生方法: 不同的音调有不同的频率。频率不同,音调也就不同。 利用定时器,使其工作在模式1,定时中断,然后控制P2.0引脚的输出每次取反,就可以在P2.0的引脚输出相应的方波频率。改变计数初值,就改变了频率。定时器的定时时间等于半个周期,定时时间到就输出脉冲取反,重复此过程,就可在P2.0引脚得到一音频的脉冲。 如:中音1的频率=523HZ,周期T=1/523=1912us; 定时器的定时时间为:T/2=1912/2us=956us; 计算得TH0,TL0的计数初值THTL=64580 下面是个音符计数初值

节拍产生方法: 音乐中的节拍用延时时间产生。假设1/4拍执行一次延时程序,这1/2拍就执行两次延时程序,所以只要求出1/4延时时间,其余的节拍就是他的倍数。为方便记谱,将节拍数也进行编码,如下: 建立曲谱编码表: 编谱用8位编码,高4位代表音符,低4位代表节拍。如5 6中音5,中音6,都是1/2拍,则编码为:82H 92H 程序清单: #include #define uchar unsigned char #define uint unsigned int #define ulong unsigned long sbit SPEAK = P2^0;//接蜂鸣器管脚 uchar th0_f; uchar tl0_f;

基于51单片机数字音乐盒的设计

单片机实物设计 题目: 单片机音乐盒设计 班级: K0312416-17 姓名:湛俊朱斌杨裕庆 学号:K031241705 K031241632 K031241737

摘要 本设计是一个基于STC89C51RC系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。本音乐盒共有四首歌曲,用4个按键控制。播放歌曲时,蜂鸣器发出某个音调。本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS 仿真软件对硬件进行仿真调试,节约了设计时间。 【关键词】STC89C51RC 按键蜂鸣器 LCD1602液晶

目录 前言 ................................................................................................................................. 第一章工作原理 .............................................................................................................. 1.1设计目标 ............................................................................................................... 第二章软件设计与分析................................................................................................... 2.1 软件设计的组成................................................................................................... 2.2 各部分软件分析 ................................................................................................. 2.2.1 延时165MS,即十六分音符子函数 .......................................................... 2.2.2 延时1MS子函数...................................................................................... 2.2.3 定时器0中断子函数 .............................................................................. 2.2.4 播放音乐子函数...................................................................................... 2.5 定时器1中断子函数.................................................................................. 2.6 按键扫描子函数 ......................................................................................... 2.2.7 主函数..................................................................................................... 2.3 总源程序 ............................................................................................................ 第三章软件仿真 .............................................................................................................. 3.仿真图...................................................................................................................... 3.1 元件清单 ............................................................................................................... 总结 ..................................................................................................................................... 参考文献..............................................................................................................................

基于单片机STC89C52的数字音乐盒设计

基于单片机STC89C52的数字音乐盒设计 一、引言 1.1设计的目的 通过课程设计,让学生熟悉单片机微机应用系统开发、研制的过程,软硬 件设计的工作方法、工作内容、工作步骤。对学生进行基本技能训练,例如: 组成系统、编程、调试、查阅资料、焊接电路板等。使学生理论联系实际,提 高动手能力和分析问题、解决问题的能力。 1.2 设计的基本要求 (1)利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏不同的乐曲(至少3首歌曲); (2)采用七段数码管显示当前播放的歌曲序号; (3)可通过功能键选择乐曲,暂停,播放,上一首,下一首; 扩展功能:利用一个循环跟每一个音调同步,每改变一个音调就变换一下彩灯,从而实现音乐控制彩灯的功能。 二、总体设计 2.1基本工作原理 1、播放音乐的原理 发音原理:播放一段音乐需要的是两个元素,一个是音调,另一个是音符。首先要了解对应的音调,音调主要由声音的频率决定,同时也与声音强度有关。对一定强度的纯音,音调随频率的升降而升降;对一定频率的纯音、低 频纯音的音调随声强增加而下降,高频纯音的音调却随强度增加而上升。另外,音符的频率有所不同。基于上面的内容,这样就对发音的原理有了一些初 步的了解。 音符的发音主要靠不同的音频脉冲。利用单片机的内部定时器/计数器0, 使其工作在模式1,定时中断,只要算出某一音频的周期(1/频率),然后将 此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计

时到后就将输出脉冲的I/O 反相,然后重复计时此半周期时间再对I/O 反相,就可在I/O 脚上得到此频率的脉冲。 2、音符频率的产生 音符及定时器的初值: 例如:中音1(DO )的音频=523HZ,周期T=1/523s=1912s μ 定时器/计数器0的定时时间为:T/2=1912/2s μ=956s μ 定时器956s μ的计数值=定时时间/机器周期=956s μ/1s μ=956(时钟频率=12MHZ) 计算得到定时器0的初值为65536-956=64580,将初值装入T0的寄存器里,启动T0后,每计数956次后就溢出中断,进入中断服务程序后,只要将I/O 口的输出值取反,就可以得到中音1(DO )的音符音频。只要改变计数初值,就能得到不同频率的音符。表(1)是C 调各音符频率与计数初值的对照表:

单片机课程设计---电子音乐盒的设计

课程设计(说明书) 电子音乐盒的设计 院(系)名称工学院机械系 专业名称机械设计制造及其自动化学生姓名 指导教师 2013年01月12日

课程设计任务书 题目: 电子音乐盒的设计 课程:单片机课程设计 课程设计时间 2012年12月21 日至2012年1 月3日共2 周课程设计工作内容与基本要求(设计要求、设计任务、工作计划、所需相关资料)(纸张不够可加页) 1.设计要求 查阅资料,了解单片机控制单音喇叭发声原理;设计基于单片机的电子音乐盒;通过按钮可选择不同的音乐。 创新设计: 1、安装复位键,暂停、播放键; 2、有6首不同的音乐用程序编出可供选择。 2. 设计任务与要求 2.1系统硬件电路设计 根据该系统设计的功能要求选择所用元器件,设计硬件电路。要求用Proteus绘制整个系统电路原理图。 2.2软件设计 根据该系统要求的功能进行软件设计,绘制整个系统的软件流程图;根据流程图编写程序并汇编调试通过;列出软件清单,软件清单要求逐条加以注释。 2.3 Proteus仿真 用Proteus对系统进行仿真并进行软硬件调试。 2.4 编写设计说明书 内容包括任务书、设计方案分析、硬件部分设计、软件部分设计、调试结果整理分析、设计调试的心得体会等,字数不少于4000字;硬件部分设计要绘制整个系统电路原理图,对各部分电路设计原理做出说明;软件设计部分要绘制整个系统及各部分的软件流程图,列出程序清单,逐条加以注释,并在各功能块前

加程序功能注释。 3.工作计划 4.主要参考资料 单片机课程设计指导书皮大能北京理工大学出版社2010.7 8051单片机实践与应用吴金戎清华大学出版社2003.8 单片机技术基础教程与实践夏路易电子工业出版社2008.1 MCS-51单片机原理接口及应用王质朴北京理工大学出版社2009.11 基于Proteus的单片机系统设计与仿真实例蒋辉平机械工业出版社2009.7 指导老师签字: 日期:

音乐盒设计

机电学院单片机课程设计 任务书 设计名称:音乐盒的设计 学生姓名:*** 指导教师:***** 起止时间:自*** 年* 月* 日起至*** 年*月* 日止 一、课程设计目的 利用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.1 AT89C51系列单片机介绍 (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.1 PROTEUS软件简介 (10) 4.1.2 KEIL简介 (11) 4.2仿真调试 (11) 4.3花样灯3种效果 (12) 4.4实物调试 (13) 5 总结 (14) 参考文献 (15) 附录 (16) 附录1仿真电路图 (16) 附录2实物图 (16) 附录3元器件清单 (16) 附录4程序源代码及注释 (17)

基于单片机的数字音乐盒

山东建筑大学 课程设计说明书 题目:基于单片机的数字音乐盒 课程:单片机原理及应用B课程设计院(部):信息与电气工程学院 专业:电子信息工程 班级: 学生姓名: 学号: 指导教师:高焕兵张君捧 完成日期: 2013年6月

目录 摘要 .................................................................... I 1 设计目的 (2) 2 设计要求 (2) 3 设计内容 (3) 3.1 设计原理 (3) 3.2 方案设计 (3) 3.3 电路各模块说明 (4) 3.4 器件选择 (6) 3.5.系统设计 (8) 3.6 软件设计 (8) 3.7 仿真调试及操作说明 (9) 总结与致谢 (10) 参考文献 (11) 附录 (12) 附录一:基于单片机的数字音乐盒总电路图 (12) 附录二:音乐程序 (12)

山东建筑大学信息与电气工程学院学院课程设计说明书 摘要 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,基于单片机制作的电子式音乐盒,控制功能强大,可根据需要选歌,使用方便。所放歌曲的节奏可以根据需要进行设置,根据存储容量的大小,可以尽可能多的存储歌曲。 本设计由由单片机AT80C51芯片和LCD显示器为核心,辅以必要的电路,构成的一个单片机电子数字音乐盒。本设计采用4*4键盘,用Protel99来画系统硬件图,采用C语言进行编程,编程后利用KEIL C51来进行编译,再生成的HEX文件装入芯片中,采用proteus软件来仿真,检验功能得以正常实现。 关键词:单片机;音乐盒;电路;播放

电子音乐盒地设计

电气信息学院 微机与单片机综合课程设计报告 课题名称电子音乐盒的设计 专业班级 13电气3 班 学号 学生姓名 指导教师 评分 2015年12月14日至12月20日

课程设计的任务要求 一、课程设计选题: 从以下课题中任选一题进行,各课题具体要求详见“微机与单片机综合课程设计题目汇总”文档。并在课程设计报告的正文中详细说明。 1.彩灯控制器的设计 2.电子时钟的设计 3.现代交通灯的设计 4.多路抢答器的设计 5.波形发生器的设计 6.点阵广告牌的设计 7.篮球记分器的设计 8.数字式温度计的设计 9.步进电机的控制 10.电子音乐盒的设计 11.电风扇模拟控制系统设计 12.洗衣机人机界面的设计 13.秒表系统的设计 14.多机串行通信的设计 15.电子密码锁的设计 16.4位数加法计算器的设计 17.数字频率计 18.数字电压表 二、选题说明:一人一题,一个教学班级同一题不能被选超过两次。鼓励同学们将各设计中的基本任务完成后,选做部分发挥项。题中带*和#符号的任务,属于发挥部分。 三、设计时间及进度安排: 第16周,12. 14~12.20 12.14 题目分析,文献查阅 12.15 设计方案 12.16~12.17 元器件选型,硬件电路设计 12.18~12.19 软件设计,系统调试 12.20 课程设计说明书(报告)撰写 四、设计作品提交: (1)课程设计说明书(纸质版,用于存档); (2)课程设计说明书(电子版),单片机源程序文件(电子版); (3)Proteus仿真程序或实物。 五、设计考核评定: 教师评分:80%,答辩成绩:20%

答辩记录 1、例举设计过程中遇到的主要问题及其解决方法。 (1)问题说明: ①编写好程序之后用keil调试没有错误,但将源程序导入到protues中去并进行仿真时,音乐盒并不能放歌。 ②将问题一解决后再次进行调试时,音乐盒只能播放一首歌曲。 (2)解决方法: ①针对问题一,首先检查硬件电路,发现单片机的RST接口始终都是高电平,于是修改复位电路,并联一个接地的电阻,终于使单片机在工作时RST接口为低电平。更正之后还是不能放歌,于是检查软件程序。发现主程序中令count2=0,而count2是跳出播放音乐子程序的,于是将count2=0改为count2=1,于是可以放第一首歌。 ②针对问题二,在播放音乐子程序中加入了if语句,当k1=0时,count2=1,播放第一首歌曲;当k2=0时,count2=2,播放第二首歌曲;当k3=0时,count2=3,播放第三首歌曲;当k4=0时,暂停歌曲。 2、教师现场提的问题记录在此(不少于2个问题)。 ①问:蜂鸣器的发声原理? 答:用单片机的定时器产生不同频率的方波,方波驱动定时器发声。驱动方波频率越高,音调就越高;驱动方波频率越低,音调越低。 ②问:单片机的时钟频率和机器周期各是多少? 答:时钟频率为12MHZ,机器周期为1us。 ③问:如何用proteus改变单片机的时钟周期? 答:在proteus界面左边有个激励源模式,里面有各种激励源。里面的DCLOCK就是可以产生时钟信号的(也就是方波),在属性里面设置不同的频率就可以得到不同的时钟信号。

八音盒设计[实用版]..

《单片机原理及应用》课程设计 —八音盒设计 完成日期:2013年06月11日 目录 一、单片机设计课程的目的和基本要求 (2) 二、八音盒的设计要求 (3) 三、关于AT89C51 (3)

3.1、对于AT89C51的性能介绍 (3) 3.2、AT89C51的管脚介绍 (4) 四、总体设计 (5) 五、硬件原理及设计说明 (7) 六、软件设计流程图 (7) 七、程序输入窗口、编码及音乐程序 (7) 7.1程序输入窗口 (8) 7.2编码 (8) 7.3音乐程序 (9) 八、仿真和调试 (9) 九、元器件清单 (10) 十、电路总图 (10) 十一、实验总结 (11) 参考文献: (12) 一、单片机设计课程的目的和基本要求 大学本科生动手能力的培养和提高时大学本科的一个重要内容。本次课程的设计目的,是让我们通过课程设计建立起单片机应用系统的概念,根据系统设计要求,掌握初步的单片机系统设计方法,让学生的动手能力和对单片机系统从硬件系统和软件系统设计两个方面都得到实际的提高。为今后的毕业设计打下良好的基础。 课程设计的基本要求有: (1)在课程设计过程中,学会使用89S51单片机及相应绘图软件,根据设计要

求设计,编程,运行,调试最后提供课程设计报告; (2)课程设计应由学生本人独立完成,严禁抄袭; (3)认真编写课程设计报告。 二、八音盒的设计要求 8051八音盒 本设计利用8051单片机结合内部定时器LCD设计一个八音盒,按下单键可以演奏预先设置的歌曲旋律。本设计可以学习8051定时器程序设计,按键扫描及歌曲旋律简单直觉式输入法的设计方法。 其基本功能为:1使用LCD显示器来显示目前演奏的歌曲编号;2具有16个按键操作来选择演奏哪一首歌曲;3内建10首歌曲旋律,按下单键可以演奏歌曲;4演奏时可以按键中断。程序执行后工作指示LED闪动,表示程序开始执行,按下单键0~9便可以演奏歌曲,歌曲演奏中,可以按键中断。 三、关于AT89C51 3.1、对于AT89C51的性能介绍 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 它可以提供以下的功能标准: (1)4K的字节闪烁存储器; (2)128字节随机存取数据存储器; (3)32个I/O口; (4)2个16位定时/计数器; (5)1个5向量两级中断结构; (6)1个串行通信口; (7)片内振荡器和时钟电路。 另外AT89C51还可以警醒OHZ的惊涛逻辑操作,并支持两种软件的节点模式。

电子音乐盒的单片机设计

一、毕业论文的目的 随着电子技术和计算机技术的飞速发展,单片机功能不断完善,性价比价格比显著提高,技术日趋完善。由于单片机具有体积小,重量轻,价格便宜,功耗低,控制功能强及运算速度快等特点,因而在国民经济建设,军事及家电器件等各个领域均有广泛的应用。本设计利用单片机及其附加电子器件实现某一实际功能,检验并提高同学对整体电路设计和把握的能力。同时也加强对整体电路设计和把握能力,了解单片机系统设计流程,以及电路板的实际制作和调试能力。同时也加强对数字电路,单片机和微机原理等课程知识的实际应用能力,也为同类产品的进一步发展奠定理论基础和实践基础。 二、主要内容 根据给定的任务要求选择合适的单片机和其它电子元件,进行系统硬件电路设计和软件编程,根据系统制作并调试系统电路板,使之实现任务要求并注意制作工艺。有关参数要符合国家标准。具体设计内容如下: 设计一套基于单片机的音乐盒,完成对音乐播放的控制,完成对音乐控制系统软件、硬件的设计和调试,并进行仿真和硬件制作。 三、重点研究问题 制定音乐盒控制系统需要完成功能,并根据此来制定设计方案;根据设计方案来进行硬件电路图的设计和软件模块的开发;音乐盒一主要功能计数功能是由数码管来完成的,对数码管型号进行选择,通过仿真调用后再来反复修改程序,最终达到预期功能。 四、主要技术指标或主要设计参数 1. 系统要有一定稳定性,不易受外界干扰的影响。 2. 系统采用外部或内部+5V供电。 3. 实现音乐盒播放音乐的控制。 4. 数码管来显示歌曲序号的功能。 5. 可以通过按键选择增加一些完善功能。 五、论文成果要求 毕业设计要符合生产要求,能基本满足功能要求。在论文内容中要求以下方面: 1. 开题报告: 在设计初期阶段进行认真调研。在调研和充分理解课题内容和要求的基础上,写出

电子音乐盒设计方案

电子音乐盒设计方案 第1章绪论 音乐盒的起源,可追溯至中世纪欧洲文艺复兴时期。当时为使教会的的钟塔报时,而将大小的钟表上机械装置,被称为“可发出声音的组钟”。 音乐盒悠扬的乐声,经常勾起人们对美好往事的回忆,甚至魂牵梦萦,坠入时光岁月的追忆中。300多年来席卷全球市场的机械音乐盒的最大魅力,也许就在于它能将抽象的音乐,凝固成具象的艺术品。成为人们表达美好情感,追思逝去岁月的最佳选择吧! 机械音乐盒的发展史,可追溯至14世纪初期,所发明挂在教堂钟楼上的排钟,这种用发条装置来演奏的乐器,能发出清脆如水晶般的乐声,一度风靡荷兰,比利时和法国北部。1811年以来,瑞士曾经是这项技艺的中心,它和瑞士钟表工业一样,两者相辅相成,一段时间名领风骚,称霸全球。 音乐盒300多年的产品发展,同时也是人类文明300多年发展的历史鉴证。每个不同时期的音乐盒造型,都能折射出当时不同的社会心态和文明发展现状,它也成了时代的一面镜子。 现今,音乐盒的制造,延袭传统,结合现代,正日益成为人们或为了典藏一段岁月,或为了收藏一份情感,或出于对音乐的追求,或对于旧时代的怀念,或为了居室的美化,等等,而得到众多品位人士的追求。 音乐盒的分类: 18音,30音,这些是代表音乐盒机芯的音数,其实也就是机芯里面,那一排钢条的数量,钢条的数量越多,也就是音数越高,奏出来的音色就越丰富,曲子也就是越好听,同时曲子的播放时间也相应长一点。一般18音的曲子为25秒左右,30音的曲子为35秒左右。50音的差不多有60秒。目前来说,一般市面上卖的“爱丽丝”都是18音的,其次是30音,50音。 此次设计的目的就是运用单片机来设计一套控制系统,来完成音乐播放的控制,并设计一套硬件来进行音调播放的实际模拟,从而有欣赏音乐的效果。

最新声光音乐盒设计设计说明

声光音乐盒设计设计 说明

湄洲湾职业技术学院声光音乐盒设计说明书 系别:自动化工程系

目录 1.前言 (1) 2.系统设计技术参数要求 (2) 3.系统设计 (3) 3.1系统设计总体框图 (3) 3.2各模块原理说明 (5) 3.3 系统总原理图说明 (7) 3.4系统印刷电路板的制作 (8) 3.5系统的操作说明 (8) 参考文献 (9) 致谢词 (10) 附录 (11) 附录1 系统总原理图 (11) 附录2 系统印刷电路板的制作图 (12) 附录3 元件清单 (13) 附录4 源程序 (14)

1.前言 随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。传统音乐盒多是机械型的,体积笨重,发音单调,不能实现批量生产。本文设计的音乐盒是以AT89C51单片机为核心元件的电子式音乐盒,体积小,重量轻,能演奏和弦音乐,功能多,外观效果多彩,使用方便,并具有一定的商业价值。 单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。 电子式音乐盒是现代电子科技与音乐结合的产物,它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用STC89C51单片机为核心控制元件,设计一个电子式音乐盒。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块。 本文主要对使用单片机设计简易电子式音乐盒进行了分析,并介绍了基于单片机电子式音乐盒系统统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,可以播放事先保存的三首优美的曲目。本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。通过设计本系统有助于增进了解单片机的基本功能,使制作者对单片机的原理的理解和应用能力显著提高。

课程设计-数字音乐盒

单片机课程设计-数字音乐盒 课程设计要求:1.利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少三首乐曲,每首不少于30秒)2.采用LCD显示信息 3.开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称) 4.可通过功能键选择乐曲,暂停,播放。 5.选作内容:显示乐曲播放时间或剩余时间 硬件电路:本设计中用到了89C51单片机,4*4键盘,蜂鸣器,16*2 LCD,七段 显示数码管LED。 原理说明:当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。同时启动定时器T1,显示乐曲播放的时间,并动LCD,显示歌曲号及播放时间。也可在LED显示歌曲号。 (1)硬件电路中用P1.0~P1.7控制按键,其中P1.0~P1.3扫描行,P1.4~P1.7扫描列。 (2)用P0.0~P0.7,P2.0~P2.7控制LED,其中P0.0~P0.7控制七段码a,b,c,d,e,f,g,用P2.0~P2.7为数码管位选信号。 (3)用,P2.0~P2.2作为LCD的RS,R/W,E的控制信号。用P0.0~P0.7作为LCD的D0~D7的控制信号。 (4)用P3.7口控制蜂鸣器。 (5)电路为12MHZ晶振频率工作,起振电路中C1,C2均为30pf。

电路图: 【试验时请仔细阅读后文说明!此图仅为我站制作,并不代表原作者意愿;若您制作成功,望在网络推广。】实验控制流程图如下:

S BIT P2.0 ;定义液晶显示端口标号 RW BIT P2.1 E BIT P2.2 ;******************************************** L50MS EQU 60H L1MS EQU 61H L250MS EQU 62H SEC EQU 65H MIN EQU 64H HOU EQU 63H ;******************************************* org 0000h ljmp main ORG 000BH LJMP TT0 ORG 001BH LJMP T1INT org 1000h main: ;-----------------------;液晶初始化 MOV SP,#70H MOV P0,#01H ;清屏 CALL ENABLE MOV P0,#38H ;8位,2行显示

基于单片机的音乐盒设计-毕业设计

基于单片机的音乐盒设计 学生:XXX指导老师:XXX 内容摘要:本设计是一个基于AT89C51系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能数字音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。使用两个按键控制音乐盒,一个用来切换歌曲,另一个用来切换8路LED的变化花样,本音乐盒共有两首歌曲,花样灯花样共计3种。播放歌曲时,蜂鸣器发出某个音调,与之对应的LED亮起。本设计利用KEIL 编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试,节约了设计时间。 关键词:音乐盒 AT89C51 KEIL PROTEUS 音调

Design for AT89C51 digit music box Abstract:The digest this text has introduced the basic AT89C51 digit music box,According to AT89C51 principle,take it by hardware circuit and software compile to made a multifunction digit music box.this box main form button circuit rest circuit clock circuit and https://www.360docs.net/doc/2417202546.html,e two button to control it,the one use to change music ,and the other one made the LED change the kind of light.this box had two songs,and LED had three kind of light.then the music has playing,the buzzer will take among of tone,meanwhile LED will give out light.the design on the basic of KEIL to compile and debugging this music box,at the same times match up PROTEUS to hardware going to simulation debugging,So save a lot of times. Keywords:music box AT89C51 KEIL PROTEUS Tone

数字音乐盒的设计与实现

课程设计报告 课程设计名称:微机系统综合课程设计课程设计题目:数字音乐盒的设计与实现

1总体设计方案 1.1题目介绍与要求 本次课程设计的任务是运用伟福Lab8000试验箱和keil软件设计并实现一个数字音乐盒,要求采用I/O产生一定频率的方波,从而驱动蜂鸣器发出不同的音调,演奏乐曲;并且需要采用七段数码管显示当前播放的歌曲序号和播放时间;还得通过数字键盘直接选择乐曲,控制选择上一曲和下一曲音乐,具有暂停和播放控制功能。 1.2设计思路 1.2.1音调的产生 频率的高低决定了音调的高低。音乐的十二平均率规定:每两个八度音(如简谱中的中音1和高音1)之间的频率相差一倍。在两个八度音之间又分为十二个半音。另外,音名A (简谱中的低音6)的频率为440Hz,音名B到C之间、E 到F之间为半音,其余为全音。由此可以计算出简谱中从低音1到高音1之间每 个音名对应的频率,所有不同频率的信号都是从同一个基准频率分频得到的。 要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以 2,即为半周期的时间。利用定时器计时这半个周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。 利用51单片机的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法。 此外结束符和休止符可以分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产生相应的停顿效果。 例如频率为523Hz,其周期T=1/523=1912us,因此只要令计数器计时956us/1us=956在每次技术956次时将I/O反相,就可得到中音DO(523Hz)。计数脉冲值与频率的关系公式如下:

电子音乐盒(单片机课程设计)

^ 电子音乐盒 1、设计任务和要求 (1) 2、总体设计 (1) 3、硬件设计 (2) 硬件电路 (2) 原理说明 (2) 4、软件设计 (3) 5、仿真、安装和调试 (3) 【 6、收获与体会 (4) 参考文献 (5) 附件1:元件清单 (6) 附件2: 总电路图 (7) 附件3:音乐程序 (8) ,

音乐盒设计 1、设计任务和要求 (1)利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而 演乐曲(内存两首乐曲)。 (2)采用七段数码管显示当前播放的歌曲序号。 (3)可通过功能键选择乐曲,暂停,播放,上一曲,下一曲。 2、总体设计 (1)要产生音频脉冲,只要算出某一音频的周期(1/音频),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O口反相,就可在I/O脚上得到此频率的脉冲 (2)利用8051的内部定时器使其工作在计数器模式MODE1下,改变记数值TH0及TL0以产生不同频率的方法。例如频率为523HZ,其周期T=1/523=1912微秒,因此只要令计数器定时956/1=956在每记数9次时将I/O口反相,就可得到中音D0(523HZ)。 记数脉冲值与频率的关系公式如下: N=Fi/2/Fr N:记数值 Fi:内部计时一次为1微秒.故其频率为1MHZ Fr;要产生的频率 (3):起记数值的求法如下: T=65536-N=65536-Fi/2/Fr 例如:设K=65536,F=1000000=Fi=1MHZ,求低音D0(523HZ),高音的D0(1046HZ)的记数值。 T=65536-N=65536-Fi/2/Fr=65536-1000000/2/Fr=65536-500000/Fr

基于51单片机数字音乐盒的设计毕业设计

单片机实物设计题目: 单片机音乐盒设计

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

基于单片机的电子音乐盒的设计与实现

课程设计报告设计名称基于单片机的电子音乐盒的设计与实现 学校陕西电子科技职业学院 学院电子工程学院 学生姓名滕一帆 班级1507 学号 2013062040311 指导教师聂弘颖 时间2017年09月22日

基于单片机的电子音乐盒的设计与实现 一、设计目的 为证明单片机可以通过软件程序控制硬件电路实现简单音乐播放器的功能,以此证明单片机的功能强大。 二、设计概述 本课题是一个基于51单片机的电子音乐盒,依据单片机控制技术原理,设计出一个可以播放多首音乐的数字音乐盒,通过数码管显示当前是第几首音乐,系统设计了三个按键,具体功能:S1:暂停/播放;S2:加一首(下一首);S3:减一首(上一首)。通过硬件电路制作以及以及软件编程,设计制作出一个多功能的电子音乐盒。 三、设计方案 在这个系统的设计中,单片机采用51兼容系列的STC89C52RC。有以下几部分构成:电源电路、单片机最小系统、发声系统、键盘控制电路、显示电路。经过论证后我确定的系统框图,如下图所示: 四、设计原理 1、原理 本系统由单片机系统,独立按键、数码管组成。利用I/O口产生一定频率的方波,驱动扬声器,发生不同的音调,从而实现乐曲的演奏。系统能通过功能键完成选择乐曲、播放、暂停、和复位的基本功能。在播放乐曲的同时LCD上显示所播放的歌曲序号,可以通过复位键使音乐盒从第一首歌曲重新播放,本系统成本低廉,功能强大

实用。 2、音乐基础简介 <1>音乐频率表 <2>音调表建立 由于单片机输出为方波输入信号,波形图如下: 高低电平各占1/2,根据单片机定时器工作原理。 定时时间=(满值-初值)X机器周期 初值=满值-定时时间/机器周期 =216-(1/f)X(1/2)X106 以低音11为例,初值为=216-(1/262)X(1/2)X106 =63627.6 =63628 同理得其他音调值,具体如下: Unsigned int code table[]={0,63628,63835,64021,64103,64260,64399,64523,64579,64684,64777,64 819,64898,64968,65030,65058,65110,65157,65178,65217,65252,65282}; <3>音乐表的建立 我们以两只老虎音乐为例子,然后我们就会得到该音乐表 Ucharcode music1[]={8,4,9,4,10,4,8,4,9,4,10,4,8,4,10,4,11,4,12,8,10,4,11,4,12,8,12,3,13,1,12, 3,11,1,10,4,8,4,12,3,13,1,12,3,11,1,10,4,8,4,9,4,5,4,8,8,9,4,5,4,8,8,0,0xff};

相关文档
最新文档