当前位置:文档之家› 基于AT89S51的音乐盒设计-软件

基于AT89S51的音乐盒设计-软件

基于AT89S51的音乐盒设计-软件
基于AT89S51的音乐盒设计-软件

天津冶金职业技术学院

毕业设计

基于AT89S51的音乐盒设计

系部电子信息工程系

专业电子信息工程技术

班级

学生姓名

指导老师

2011年3月31日

摘要

随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本系统是以51系列单片机AT89S51为主控制器,几个按键、LED显示管、扬声器组成。驱动喇叭的功率管采用型号为TP122的达林顿管,使喇叭在各种频率的脉冲信号下能准确的发出各个音阶的音调。系统通过各按键的控制,基于可靠的硬件设计和精确而稳定的软件设计,并同时能在数码管上显示当前所播放歌曲顺序的功能。系统完成显示输入信息、播放相应音符等基本功能。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。

关键词:AT89S51;按键;LED显示管;扬声器;

目录

摘要 ................................................................... I 1引言 (1)

1.1目的和意义 (1)

1.2本系统主要研究内容 (1)

2 音乐程序的设计原理 (1)

2.1 音乐的基本知识说明 (1)

2.2 音调 (2)

2.3 节拍 (2)

2.4 音调的产生 (3)

2.5 延迟函数 (3)

2.6 定时中断 (4)

2.7 节拍的产生 (5)

3 软件设计 (6)

3.1 软件流程图 (6)

3.2 程序分析 (6)

总结 (10)

参考文献 (10)

附录 (11)

1引言

1.1目的和意义

单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。

音乐盒是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S51单片机为核心控制元件,设计一个音乐盒。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有4个按键和扬声器。

本文主要对使用单片机设计简易音乐盒进行了分析,并介绍了基于单片机音乐盒统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。本系统是简易音乐盒的设计,按下键盘矩阵中的按键会使数码管显示当前按键,扬声器播放器对应的音符。通过设计本系统可了解单片机的基本功能。对单片机的了解有一个小的飞跃。

1.2本系统主要研究内容

本系统设计制作一个可演奏的音乐盒。综合应用了两项设计。

(1)键盘矩阵识别。即矩阵扫描,显示当前按键。

(2)不同频率音符播放。可以通过按键控制发出不同的音乐。

2 音乐程序的设计原理

2.1 音乐的基本知识说明

声音是由物体振动产生,正在发声的物体叫声源。振动的频率高,为高音;振动的频率低,为低音。人耳比较容易辨识的声音频率范围是20Hz到20,000Hz 之间,一般音响电路是用正弦波信号驱动喇叭,从而产生悦耳的音乐;在数字电路里,则是用数字脉冲信号信号驱动喇叭,从而产生声音。如果声音的频率相同,人类耳朵很难区分哪个是脉冲信号产生的声音,哪个是正弦波信号产生

的声音。

图2.1.1 声音的波形

2.2 音调

不同音高的乐音是用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频率(266 Hz)的一倍;同样的,高音RE的频率(1175Hz)刚好是中音RE的频率(587Hz)的一倍,中音RE的频率(587Hz)刚好是低音RE 频率(294 Hz)的一倍。

2.3 节拍

若要构成音乐,光有音调是不够的,还需要节拍,让音乐具有旋律(固定的律动),而且可以调节各个音的快满度。“节拍”,即Beat,简单说就是打拍子,就像我们听音乐不自主的随之拍手或跺脚。若1拍实0.5s,则1/4 拍为0.125s。至于1拍多少

s,并没有严格规定,就像人的心跳一样,大部分人的心跳是每分钟72下,有些人快一点,有些人慢一点,只要听的悦耳就好。音持续时间的长短即时值,一般用拍数表示。休止符表示暂停发音。

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

2.4 音调的产生

前面讲到声音只是某一范围的频率,也就所谓的音频。因为扬声器发生只需要半个周期即可,所以用单片机产生声音只要送电半个周期的时间就可以实现,我们用音调Do来举例,音调Do周期波形如图9。我们可以用延迟函数或者Timer定时中断可以产生音调。

计算音调Do的周期:

Do频率=262 Hz→T=1/f=1/262=3186μs

所以实际送电的时间只有3826/2=1908μs

Do f=3186μs

2.5 延迟函数

对于12M Hz的8051系统而言,若要延迟1ms,可以用“delay1ms(1);”指令,若需要延迟5ms,则可使用“delay1ms(5);”.很明显,这个函数的刻度为1ms,但是如果要求小于1ms,我们可以改变内循环的数量决定延迟时间,因为内循环的数量为120,可延迟1ms,该函数的最小刻度为1ms;将内循环的数量改为12,可延迟0.1ms,该函数的最小刻度为0.1ms,即100μs。如表1。

表1

内循环数量最小延迟时间(ms)最小延迟时间(μs)

120 1 1000

60 0.5 500

6 0.05 50

3 0.025 25

1 0.0083 8.3

1ms延迟函数如下:

void delay1ms(unsigned char x)

{ unsigned char i,j; //声明变量

for(i=0;i

for(j=0;j<120;j++) //内循环

}

8μs延迟函数如下:

void delay8μs(unsigned char x)

{ unsigned char i,j; //声明变量

for(i=0;i

for(j=0;j<120;j++) //内循环

}

音乐的拍子种类,找出其中最短的拍子,例如整首音乐中,包含1/4拍、1/2拍、3/4拍、1拍、2拍,则以1/4拍为基准,然后写一段1/4拍长度的延迟函数,若要产生1/4拍的长度,则执行该函数时,变量为1;若要产生1/2拍的长度,则执行该函数时,变量为2;如要产生3/4拍的长度,则执行该函数时,变量为3;若要产生1拍的长度,则执行该函数时,变量为4,如要产生2拍的长度,则执行该函数时,变量为8……依次类推。

2.6 定时中断

在Mode 1模式下,定时量最多可达65536,也就是65536μs,足以产生低音Do所需的半周期1908。所以,若要产生低音Do的音频,则只需要执行1908定时量的timer中断即可。每中断一次,就改变连接喇叭的输入/输出的状态,就能发出低音Do的声音。如要产生其他音阶,只需要按表1-1的T字段设定定时量即可。

如下程序一Mode 1来产生低音的Do:

#include

sbit speaker=P1^0; //声明输出端

main()

{speaker=0; //喇叭初始值

IE=0x82; //启用Timer0

TH0=(65536-1908)/256; //填入定时量的高八位

TL0=(65536-1908)%256; //填入定时量的低八位

TR0=1; //启动Timer0

While(1); //停止

} //主程序结束

//========Timer0中断子程序===========

void tone_int(void)interrupt 1 //Timer 0中断之程序

{TH0=Do_H; //填入定时量的高八位

TH0=Do_L; //填入定时量的低八位

speaker=~speaker; } //喇叭反向输出

音乐中最短的拍子,例如在整首音乐中,最短的拍子为1/4拍,若1/4拍的时间为0.125s,则以1/4拍为基准,然后设定每0.125s产生一次中断,其定时量为125000,假设采用Mode 1,定时量设为62500,只要执行2次中断,即可产生1/4拍的时间长度。同理,若要产生1/2拍的长度,则执行4次中断,若要产生3/4拍的长度,则执行6次中断……依次类推。如表2。

表2

拍数中断次数拍数中断次数拍数中断次数

1/8 1 1/2 4 1又1/4 10

1/4 2 3/4 6 1又1/2 12

8/3 3 1 8 2 16

2.7 节拍的产生

音阶的频率是固定的,而节拍有快有慢,拍子越短,节奏越快,拍子越长,节奏越慢。产生节拍的方法也是一种处理时间的方法。我们以生日快乐歌为例,它的前两个音节︱1· 1 2 1︱4 3 —︱,第一个音是Do,发生这个音的时间长度是250ms;停顿一下,再发出第二个音Do,还是持续250ms;接下来发Re的音,时间长达500ms、改发出Do的音,时间长达500ms,第一小节结束。紧接着是第二小节,首先发Fa的音,时间长达500ms;在发出Mi的音,时间长达1000ms,以下以此类推。节拍的产生我们同样可以采用延迟函数或者Timer定时中断两种方式。

3 软件设计

3.1 软件流程图

图3.1.1主程序流程图

图3.1.2子程序流程图

3.2 程序分析

程序中利用了两次中断,分别对音乐代码和LED 灯闪烁,其中程序开头给出了三组数组,一组数组时LED 灯闪烁的代码,另外两组是音乐的代码,然后是两个中断,

A 键按下 播放第一首歌 开始

声明变量 读取按钮开关 B 键按下 播放第一首歌 C 键按下 复位

没有任何 按钮按下

开始读入数据代码 中断开始 判断是否到音乐结束

结束中断

返回

接着是一个延时函数,然后是就是音乐播放代码,最后就是主程序了。

程序如下:

下面一段为音乐播放时需要的代码中断:

void Time_Init() //音乐代码的中断

{

TMOD = 0x11; //定义工作方式1

IE = 0x8a;

IP = 0x02;

TH0 = 0xD8;

TL0 = 0xEF; //12MZ晶振,10ms

TH1 = (65536 - 50000)/256;

TL1 = (65536 - 50000)%256;

TR1 = 1;

}

下面中断为播放每个音乐代码组成一首音乐的中断,音乐每次读取一个代码时需要一次中断,然后读取代码,结束中断,然后再次进入下一次中断,直到一首歌曲播放完毕。

void Time0_Int() interrupt 1

{TH0 = 0xD8;

TL0 = 0xEF;

Count++; } //长度加1

此段程序是让在音乐响起的同时小灯也能闪烁。

void Time0_LED() interrupt 3 //小灯闪烁中断

{

static unsigned char L_Count = 0,n=0;

TH1 = (65536 - 50000)/256; //高8位给一个代码

TL1 = (65536 - 50000)%256; //低8位给一个代码

if(++L_Count == 5)

{

L_Count = 0;

led=pattern_P3[n++];

n%=104;

}

}

下面的一个函数为延时函数,功能是通过C语言中函数通过FOR循环进行粗略的延时。

void Delay_xMs(unsigned int x)

{

unsigned int i,j;

for( i =0;i < x;i++ )

{for( j =0;j<3;j++ );}

}

本段程序是音乐播放程序,音乐代码通过此程序来对音乐进行播放,程序中主要用了中断进行音乐播放,同时在音乐代码中设置了音乐休止符,让程序判断音乐播放到哪里了开始或者停止。

void Play_Song1(unsigned char i)

{

unsigned char Temp1,Temp2;

unsigned int Addr;

P0=0xc0; //将P0口初始化

P2=0xf9; //将P2口初始化

Count = 0; //中断计数器清0

Addr = i * 217;

while(1) //循环

{

Temp1 = SONG1[Addr++];

if ( Temp1 == 0xFF ) //休止符

{

TR0 = 0; //开启定时器

Delay_xMs(100);

}

else if ( Temp1 == 0x00 ) //歌曲结束符

{return; }

else

{

Temp2 = SONG1[Addr++];

TR0 = 1; //关闭定时器

while(1)

{

_Speak = ~_Speak; //让蜂鸣器发出声音

Delay_xMs(Temp1); //延时函数

if ( Temp2 == Count )

{

Count = 0;break;

}

}}}}

下面一段是本程序中的核心内容,程序的灵魂所在,主程序,对音乐中的程序进行调用,进行控制从而达到音乐播放的效果。

void main()

{

Time_Init(); //定时器0中断初始化

P3=0xfe;

P1=0xff; //将Port2规划为输入口

while(1) //while循环

{ keys=~P1; //读取按钮

switch(keys) //判断

{ case 0x01:Play_Song1(0); break; //按下S1,播放第一首歌 case 0x02:Play_Song2(0); break; } //按下S2,播放第二首歌} //while循环结束

}

本论文在老师的悉心指导和严格要求下业已完成,从课题选择到具体构思和内容,无不凝聚着老师的心血和汗水,在三年的专科学习和生活期间,也始终感受着导师的精心指导和无私的关怀,我受益匪浅。

从2010年9月我们进入大学三年级开始,系里面的老师就开始告诉我们,需要准备一系列毕业答辩的问题,而且毕业环节的重要性,从那时开始我便开始为毕业设计慢慢做着准备,从2010年11月15日开始我们正式进入实习阶段,学校已经没有课程,然后我开着手做毕业设计了,从那时开始我便开始找老师要了毕业设计的题目,然后在老师的一系列讲解下知道了,毕业设计需要怎么做,并且让老师告诉我了做这个设计时需要注意些什么,同时还有对于做这个题目的一些要求以及格式,拿到这个题目以后,看了这个题目的要求,因为系里要求在做设计的同时,还要做一个电路板,然后我开始找这个电路板,买到这块板子对板子进行焊接,调试等一系列的问题解决以后,然后开始写程序,因为设计中要求,在音乐响起的同时还有LED灯伴随闪烁,同时还要显示歌曲序号,在解决这个问题时,我开始头疼了,音乐响的同时可以显示歌曲序号,但是无法使LED伴随闪烁,因为音乐播放时用到了中断,一旦加入了LED 灯闪烁,音乐便无法正常播放,这让我头疼了一段时间,但是最后我在程序中又加入了另外一个中断,才达到了题目的要求,程序写好以后通过仿真图仿真出来的效果还是不错的,但是把程序烧入芯片中,在板子上运行的效果却没有那么好,思来想去,问题应该出在了喇叭上,因为板子上使用的是蜂鸣器加三极管放大了,所以效果并没有那么好,然后经过调试以后,终于得到了改观,最终有了成效。

这次做论文的经历也会使我终身受益,我感受到做论文是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破,那也就不叫论文了。希望这次的经历能让我在以后学习中激励我继续进步。不积跬步何以至千里,本设计能够顺利的完成,也归功于各位任课老师的认真负责,使我能够很好的掌握和运用专业知识,并在设计中得以体现。正是有了他们的悉心帮助和支持,才使我的毕业论文工作顺利完成,在此向天津冶金职业技术学院,电信系的全体老师表示由衷的谢意。感谢他们三年来的栽培。

参考文献

[1] 戴佳、戴卫恒著 51单片机C语言应用程序设计实例精讲[M].北京: 电子工业出版社出版, 2006.

[2] 张洪润等著单片机应用设计200例[M].北京: 北京航空航天大学出版社出版, 2006.

[3] 陈正义著单片机控制实习[M].北京: 人民邮电出版社出版, 2006.

[4] 张义和等著例说51单片机(C语言版)[M].北京: 人民邮电出版社出版, 2008.

[5]肖洪兵. 跟我学用单片机. 北京:北京航空航天大学出版社,2002.8

[6]何立民. 单片机高级教程.第1版.北京:北京航空航天大学出版社,2001

[7] 赵晓安. MCS-51单片机原理及应用. 天津:天津大学出版社,2001.3

[8]李广第.单片机基础.第1版.北京:北京航空航天大学出版社,1999

[9]徐惠民、安德宁.单片微型计算机原理接口与应用.第1版.北京:北京邮电大学出版社,1996

附录A:仿真图

附录B:音乐程序

#include

#include

unsigned char Count;

unsigned char keys;

sbit _Speak =P1^4 ; //讯响器控制脚

#define led P3

unsignedcharpattern_P3[]={0xFF0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC ,0xF9,0xF3,0xE7,0xCF,0x9F,0x3F,0xFF,0xAA,0x55,0x18,0xFF,0xF0,0x0F,0x00 ,0xFF,0xF8,0xF1,0xE3,0xC7,0x8F,0x1F,0x3F,0x7F,0x7F,0x3F,0x1F,0x8F,0xC7 ,0xE3,0xF1,0xF8,0xFF,0x00,0x00,0xFF,0xFF,0x0F,0xF0,0xFF,0xFF,0xFF,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80 ,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF ,0xFF,0xFF,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF};

unsignedcharcodeSONG1[]={0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20 ,0x10,0x20,0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x30,0x10,0x30 ,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,0x20,0x80,0x2b,0x20,0x26 ,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,0x30,0x20,0x30 ,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,0x30 ,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b ,0x10,0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b ,0x40,0x40,0x20,0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18 ,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30 ,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c

,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,0x20,0x20,0x2b,0x10,0x26 ,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,0x18,0x20,0x18 ,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20,0x30 ,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30 ,0x20,0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40 ,0x10,0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00,};

unsignedcharcodeSONG2[]={0x1C,0x10,0x18,0x10,0x20,0x10,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,0x20,0x1C, 0x20,0x18,0x20,0x20,0x80,0xFF,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20, 0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20, 0x30,0x80,0xFF,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B, 0x20,0x30,0x20,0x2B,0x40,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26, 0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15, 0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20, 0x20,0x30,0x80,0x20,0x30,0x1C,0x10,0x20,0x10,0x1C,0x10,0x20,0x20,0x26, 0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x15,0x1F,0x05,0x20,0x10,0x1C, 0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x30,0x1C, 0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B, 0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1C,0x10,0x18,0x40,0x1C, 0x20,0x20,0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18, 0x80,0x00

};

void Time_Init()

{

TMOD = 0x11;

IE = 0x8a;

IP = 0x02;

TH0 = 0xD8;

TL0 = 0xEF; //12MZ晶振,10ms

TH1 = (65536 - 50000)/256;

TL1 = (65536 - 50000)%256;

TR1 = 1;

}

void Time0_Int() interrupt 1

{

TH0 = 0xD8;

TL0 = 0xEF;

Count++; //长度加1

}

void Time0_LED() interrupt 3

{

static unsigned char L_Count = 0,n=0;

TH1 = (65536 - 50000)/256;

TL1 = (65536 - 50000)%256;

if(++L_Count == 5)

{

L_Count = 0;

led=pattern_P3[n++];

n%=104;

}

}

/*------------------------------------------------- 功能:1MS延时子程序

-------------------------------------------------*/ void Delay_xMs(unsigned int x)

{

unsigned int i,j;

for( i =0;i < x;i++ )

{

for( j =0;j<3;j++ );

}

}

/*------------------------------------------------- 功能:歌曲播放子程序i为播放哪一段曲目

-------------------------------------------------*/ void Play_Song1(unsigned char i)

{

unsigned char Temp1,Temp2;

unsigned int Addr;

P0=0xc0;

P2=0xf9;

Count = 0; //中断计数器清0

Addr = i * 217;

while(1)

{

Temp1 = SONG1[Addr++];

if ( Temp1 == 0xFF ) //休止符

{

TR0 = 0;

Delay_xMs(100);

}

else if ( Temp1 == 0x00 ) //歌曲结束符

{

return;

}

else

{

Temp2 = SONG1[Addr++];

TR0 = 1;

while(1)

{

_Speak = ~_Speak;

Delay_xMs(Temp1);

if ( Temp2 == Count )

{

Count = 0;

break;

}

}

}

}

}

void Play_Song2(unsigned char i)

{

unsigned char Temp1,Temp2;

unsigned int Addr;

P0=0xc0;

P2=0xa4;

Count = 0; //中断计数器清0

Addr = i * 217;

while(1)

{

Temp1 = SONG2[Addr++];

if ( Temp1 == 0xFF ) //休止符 {

TR0 = 0;

Delay_xMs(100);

}

else if ( Temp1 == 0x00 ) //歌曲结束符 {

return;

}

else

{

Temp2 = SONG2[Addr++];

TR0 = 1;

while(1)

{

_Speak = ~_Speak;

Delay_xMs(Temp1);

if ( Temp2 == Count )

{

Count = 0;

break;

}

}

}

}

}

/*-------------------------------------------------

功能:主程序

-------------------------------------------------*/

void main()

{

Time_Init(); //定时器0中断初始化

P3=0xfe;

P1=0xff; //将Port2规划为输入口

while(1) //while循环

{ keys=~P1; //读取按钮

switch(keys) //判断

{ case 0x01:Play_Song1(0); break; //按下S1,播放第一首歌 case 0x02:Play_Song2(0); break; //按下S2,播放第二首歌}

} } //while循环结束

(完整版)基于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 元件清单 ............................................................................................................... 总结 ..................................................................................................................................... 参考文献..............................................................................................................................

音乐盒设计

基于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

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

课程设计(说明书) 电子音乐盒的设计 院(系)名称工学院机械系 专业名称机械设计制造及其自动化学生姓名 指导教师 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 指导老师签字: 日期:

基于51单片机音乐盒程序设计

基于51单片机音乐盒程序设计基于51单片机音乐盒程序设计一、功能设计说明 1、电路设计 实物图 矩阵键盘部分电路图 2、运行流程图 程序开始 播放小苹果歌曲

否 判断任意按键是否按下继续播放小苹果歌曲是 否播放完成 进入电子琴模式 判断K16按键是否按下 是 3、电子琴模式按键对应发音设计 按键发音按键发音 低 1 中 2 K1 K9 低 2 中 3 K2 K10 低 3 中 4 K3 K11 低 4 中 5 K4 K12 低 5 中 6 K5 K13 按键发音按键发音 低 6 中 7 K6 K14 低 7 高 1 K7 K15 中 1 重新播放小苹果 K8 K16 二、硬件电路说明

1、程序下载电路 音乐盒电路图 ISP下载接口 本设计采用的单片机为AT89S52单片机,需使用ISP下载器进行下载程序,程序下载电路图如图中ISP1接口. 2、音乐发音电路 IO口P10发出不同频率的脉冲,则BUZZER产生各种不同的声音,本设计采用12MHZ 晶振,系统频率1MHZ,定时器计数一个1us,其对应关系如下表所示: 频率简谱码(T音符音符频率(HZ) 简谱码(T值) (HZ) 值) 低 1 DO 262 63628 # 4 FA# 740 64860 # 1 DO# 277 63731 中 5 SO 784 64898 低 2 RE 294 63853 # 5 SO# 831 64934 # 2 RE# 311 63928 中 6 LA 880

64968 低 3 M 330 64021 # 6 932 64994 低 4 FA 349 64103 中 7 SI 988 65030 # 4 FA# 370 64185 高 1 DO 1046 65058 低 5 SO 392 64260 # 1 DO# 1109 65085 # 5 SO# 415 64331 高 2 RE 1175 65110 低 6 LA 440 64400 # 2 RE# 1245 65134 # 6 466 64463 高 3 M 1318 65157 低 7 SI 494 64524 高 4 FA 1397 65178 中1 DO 523 64580 # 4 FA# 1480 65198 # 1 DO# 554 64633 高 5 SO 1568 65217 中 2 RE 587 64684 # 5 SO# 1661 65235 # 2 RE# 622 64732 高 6 LA 1760 65252 中 3 M 659 64777 # 6 1865 65268 中 4 FA 698 64820 高 7 SI 1967 65282 计算方法: 例如产生262HZ频率(发音DO), 周期T=1/262=3816 us,由于定时器中断使IO不停取反,故周期 T=3816/2=1908 us 定时器初值N=65536-1908=63628 TH0=63628/256 TL0=65536%256 三、程序代码说明 1 、脉冲产生 采用定时器0溢出中断产生脉冲,定时器初始化如下: TMOD = 0x01; //定时器0工作方式1 ,即十六位计数器计数 TR0 = 1; //启动定时器 ET0 = 1; //定时器0溢出中断使能

音乐盒设计

机电学院单片机课程设计 任务书 设计名称:音乐盒的设计 学生姓名:*** 指导教师:***** 起止时间:自*** 年* 月* 日起至*** 年*月* 日止 一、课程设计目的 利用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)

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

课程设计报告 设计题目:单片机多功能音乐盒设计 【摘要】本设计是一个基于AT89C51系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。使用两个按键控制音乐盒,一个用来暂停歌曲,另一个用来切换歌曲本音乐盒共有四首歌曲,还有4*4矩阵键盘电子琴弹奏功能,播放歌曲时,蜂鸣器发出音调,矩阵键盘无扫描信号,不动作。当按下暂停歌曲键时,可继续弹奏电子琴。本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试,节约了设计时间。 设计作者:吴文豪 专业班级/学号:10应电三班 1006020144 合作者1:专业班级/学号: 合作者2:专业班级/学号: 指导教师:王明文 设计时间:2012年5月12日———2012年6月3日

目录 引言 (1) 1.设计任务及要求 (2) 1.1设计任务 (2) 1.2设计要求 (2) 1. 3研究内容 (2) 2.系统总体设计 (3) 2.1系统结构框图设计及说明 (3) 3.软、硬件设计…………………………………………………………….. 3.1 系统硬件设计………………………………………………………… 3.1.1系统硬件原理图及工作原理说明………………………… 3.1.2单元电路设计原理与元件参数选择……………………… 3. 2系统软件设计…………………………………………………….. 3. 2. 1软件系统总流程图及设计思路说明…………………... 3. 2. 2软件各功能模块的流程图设计及思路说明…………... 4.安装与调试………………………………………………………………. 4.1安装调试过程……………………………………………………… 4.2调试中遇到的问题…………………………………………………5.结论………………………………………………………………………. 6.使用仪器设备清单………………………………………………………. 7.收获、体会和建议………………………………………………………. 8.参考文献…………………………………………………………………. 9.附录………………………………………………………………………

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

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

Design Of Music Box Based On SCM Li Kun (Grade06,Class1, Major Computer Science and Technology, Computer Science and Technology Dept,Shaanxi University Of Technology,Hanzhong 723003,Shaanxi) Tutor: FENG Yong-Zheng Abstract:This design is a series based on A T89C51 microcontroller Music Box, based on principles of SCM technology, through the production of hardware and software compilation, designed a multi-function music box. Mainly by the keys of the music box circuit, reset circuit, clock circuit and the buzzer composition. Using two buttons control music box, one to switch songs, and the other is used to switch the 8 LED pattern changes, the music box has two songs, a total of three kinds of pattern light pattern. Play a song, the buzzer sounded a tone, corresponding LED lights up. This design using KEIL programming software to program the music box and debug source code, with the PROTEUS simulation software to simulate hardware, debugging, saving design time. Key Words: Music Box ;A T89C51 SCM; KEIL; PROTEUS; TONE

基于AT89C51单片机的带彩灯外观音乐盒设计

基于AT89C51单片机的带彩灯外观音乐盒设计

基于AT89C51单片机的带彩灯外观音乐盒设计 摘要 随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。传统音乐盒多是机械型的,体积笨重,发音单调,不能实现批量生产。本文设计的音乐盒是以AT89C51单片机为核心元件的电子式音乐盒,体积小,重量轻,能演奏音乐,功能多,外观效果多彩,配有彩灯,使用方便,本音乐盒有三个按键,key1控制彩灯,key2控制音乐,key3为总开关,可同时关闭音乐与彩灯。具有一定的商业价值。 关键字:AT89C51;音乐盒;按键;彩灯

Abstract Along with the development of human society, people of vision, hearing things put forward higher request. Small music box can bring good memories and improve people's spiritual culture. Traditional music box is heavy mechanical type, size, pronunciation and drab, cannot achieve batch production. Music box designed in this paper based on AT89C51 microcontroller as the core element of electronic music box, small size, light weight, can play music, multi-function, appearance and colorful, with a lantern,easy to use. The music box with three buttons , The key1 control Lantern, key2 control music, key3 total switch can turn off the music and lanterns. Have some commercial value. Keywords: AT89C51, music boxes, buttons, Lantern

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

《单片机原理及应用》课程设计 —八音盒设计 完成日期: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的惊涛逻辑操作,并支持两种软件的节点模式。

音乐盒课程设计报告

音乐盒课程设计报告 XXXXXXXXXXXXX 一、项目概述: 随着社会的发展进步,许多人性化的电子产品被用在人们的日常生活中,而单片机被广泛运用到人们长期接触的事物上,比如银行交易窗口的滚动字幕,还有各种彩灯的控制,手机、计算机、机器人等各行各业中。基于AT89C52单片机的数字音乐盒就是这类产品,它不仅给人们带来了快乐,而且提高了人们的生活质量。 二、项目要求: 基于AT89C52单片机的数字音乐盒的设计要求如下: (1)用AT89C2单片机的I/O端口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。 (2)共有10首乐曲,每首乐曲都有相应的按键控制,并且有开关键、暂停键、上一曲以及下一曲的控制键。 (3)LCD液晶显示歌曲的序号、播放时间、开机时显示英文欢迎提示字符。 三、知识要点: (一)、AT89C2芯片资料: 1)功能说明: 1、兼容MCS51指令系统。 2、8k可反复擦写(大于1000次)Flash ROM。 3、2KB的E2PROM程序存储器,可擦写10万次 4、32个双向I/O口。 5、256x8bit内部RAM。 5、3个16位可编程定时/计数器中断。 6、时钟频率12MHz。 7、1个可编程UART串行通道。 8、2个外部中断源,共9个中断源,6个中断矢量。 9、2个读写中断口线,3级加密位。 10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能。 11、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。 2)引脚说明:

AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。AT89C52为40 脚双列直插封装的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 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。 本项目使用到的单片机引脚说明: 1)20、40号引脚分别接地和+5V电源。 2)18、29号引脚分别接振荡器反相放大器的输出端和振荡器反相放大器的及内部时钟发生器的输入端。 3)9号引脚接RST复位电路。 3)单片机使能信号接31号引脚,接+5V。 4)17号引脚(P3.7)接蜂鸣器电路通过定时器控制P3.7引脚上方波的占空比可以实现驱动蜂鸣器,发出不同的音调的功能。 5)P1端口控制4×4矩阵键盘,其中P1.0~P1.3 进行列扫描,P1.4~P1.7进行行扫描。6)P0端口用于接液晶显示器的数据位,由于P0端口驱动能力小,需外接电源和上拉电阻,此项目中接1K的排阻。 (二)、LCD1602资料: 1)、LCD1602介绍: 1602液晶显示器也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔,每行之间也有也有间隔,起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。 LCD1602是指显示的内容为16X2,即可以显示2行,每行16个字符液晶模块(显示字符和数字)。 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A” 。 2)1602引脚说明:

基于51单片机的音乐盒的设计毕业论文

基于51单片机的音乐盒的 设计毕业论文 目次 目次 (3) 1 引言 (4) 1.1 音乐盒的意义 (4) 1.2 研究容 (5) 2.1系统总体框架图 (6) 2.2音乐盒的设计原理 (6) 2.3 单片机芯片概述 (7) 3 硬件电路设计 (8) 3.1 单片机最小系统原理图 (8) 3.1.1 复位电路 (8) 3.1.2 晶振电路 (9) 3.1.3时钟电路 (9) 3.2 LCD显示模块 (9) 3.3 继电器模块 (11) 3.3.1电磁继电器的工作原理和特性 (12)

3.3.2 固态继电器的工作原理和特性 (12) 3.3.3 继电器主要产品技术参数 (12) 3.4 按键模块 (13) 3.5 其它 (13) 4 软件设计 (14) 4.1 软件总体流程图 (14) 4.2播放/暂停子程序 (15) 4.3 LCD显示模块软件设计 (17) 4.3.1 LCD的初始化函数 (17) 4.3.2 LCD与继电器的函数 (18) 5 系统实现 (19) 5.1 硬件调试 (20) 5.1.1 按键控制的实现 (20) 5.1.2 LCD显示 (21) 5.1.3 其他 (21) 总结 (22) 致谢 (23) 参考文献 (24) 附录A 元器件清单 (25) 附录B 源程序 (26)

1 引言 在进入21世纪后,单片机产品的发展正朝着高性能和多品种方向,并且发展趋势是进一步朝着CMOS化、小体积、低功耗、大容量、高性能、低价格以及外围的电路装化等几个方面去发展。单片机的应用的重要意义还是在于它是从根本上改变了传统的控制系统设计思想和设计方法。过去必须要由模拟电路或者数字电路才可以实现的大部分的功能,现在已能完全可以用单片机通过软件的方法来实现了。这种由软件去代替硬件的控制技术也称之为微控制技术,这是传统控制技术的一次革命。单片机可以说渗透到了我们生活的各个方面,几乎难以找到哪个领域里没有单片机的踪迹。导弹中的导航装置,飞机里安装的各种仪表的控制,计算机里的网络通讯与数据传输方面,工业自动化过程中实时控制和数据处理方面,生活中被广泛使用的各种智能IC卡,民用的高档轿车的安全保障系统,摄像机、录像机、全自动洗衣机所涉及的控制方面,以及远程控制的玩具、电子宠物等等,这些全都是离不开单片机的。 而伴随着科学技术的不断进步和社会的持续发展,人类所接触的更种信息也在不断增加并且信息变得越来越复杂。面对着浩如烟海的繁杂信息,人们目前已经能利用计算机等工具快速、精准地对其进行快速处理,但要想将其处理完毕的信息及时、清晰地传递给其他人,还必须要寻找更加卓越的显示技术去实现它。而单片机技术与液晶显示技术的结合,恰恰使得信息的传输交流向着智能化可视化方向进行快速发展。

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

声光音乐盒设计设计 说明

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

目录 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单片机为核心控制元件,设计一个电子式音乐盒。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块。 本文主要对使用单片机设计简易电子式音乐盒进行了分析,并介绍了基于单片机电子式音乐盒系统统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,可以播放事先保存的三首优美的曲目。本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。通过设计本系统有助于增进了解单片机的基本功能,使制作者对单片机的原理的理解和应用能力显著提高。

数字音乐盒课程设计

基于单片机多功能数字音乐盒 《单片机原理及应用》课程设计任务书 一、目的意义 《单片机原理及应用》是高校工程专业的一门专业基础课,该门课程具有很强的实践性。通过课程的学习,使学生掌握基本概念、基本理论和基本技能,为今后从事相应的生产设计和科研工作打下一定的基础。因此,除课程的理论教学和实验教学外,课程设计也是一个必要和重要的实践教学环节。通过课程设计,进一步培养学生理论联系实际的能力,学会正确地分析工程实际问题,善于查阅参考文献,准确地选择相应的数据、参数,具备全面地解决实际问题的素质,同时课程设计也为今后的毕业设计打下基础。 二、设计时间、地点、班级 时间:第16、17周(二周) 地点:三教433 、426 班级:09电气99人 三、设计内容 (二十)基于单片机的多功能数字音乐盒的设计 1、功能描述 用A T89S52单片机的I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。 共有4乐曲,每首乐曲都由相应的按键控制,并且有开关键、暂停键、上一曲以及下一曲控制键。 按键输入电路的设计 复位电路的设计;时钟电路的设计 显示电路及驱动电路的设计;扫描模式的选择设计 系统主程序及子程序的设计;元件及元件参数的选择

前言:本设计是以AT89C51芯片的电路为基础,外部加上放音设备,以此来实现音乐演 奏控制器的硬件电路,通过软件程序来控制单片机内部的定时器使其演奏出优美动听的音乐。用户可以按照自己的喜好选择音乐并将其转化成机器码存入单片机的存储器中。对于不同型号的单片机只需要相应的改变一下地址即可。该软、硬件系统具有很好的通用性,很高的实际使用价值,为广大的单片机和音乐爱好者提供了很好的借鉴。 1、 设计原理及相关说明 设计原理:通过按键给单片机的P2口输入低电平,进而利用程序来判断是否执行某一播放功能。而利用单片机的定时器0中断来控制播放乐曲。 2.1芯片AT89C51的介绍 AT89C51是一种带4K 字节闪存可编程可擦除只读存储器(FPEROM )的低电压,高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K 字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU 和闪烁存储器组合在单个芯片中,ATMEL 的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图2.1 图3.2 AT89C51

基于AT89C51单片机的音乐盒的设计

1 前 言 乐曲演奏广泛用于自动答录装置、手机铃声、集团电话、及智 能仪器仪表设备。实现方法有许多种,在众多的实现方法中,以纯硬件完成乐曲演奏,随着FPGA 集成度的提高,价格下降,EDA 设计工具更新换代,功能日益普及与流行,使这种方案的应用越来越多。如今的数字逻辑设计者面临日益缩短的上市时间的压力,不得不进行上万门的设计,同时设计者不允许以牺牲硅的效率达到保持结构的独特性。使用现今的EDA 软件工具来应付这些问题,并不是一件简单的事情。FPGA 预装了很多已构造好的参数化库单元LPM 器件。通过EDA 软件工具,设计者可以设计出结构独立而且硅片的使用效率非常高的产品。 本文介绍在EDA 开发平台上利用单片机及汇编语言设计音乐硬件演奏电路,并定制单片机存储音乐数据,以十首乐曲为例,将音乐数据存储到单片机,就达到了以纯硬件的手段来实现乐曲的演奏效果。只要修改单片机所存储的音乐数据,将其换成其他乐曲的音乐数据,再重新连接到程序中就可以实现其它乐曲的演奏。

目录 摘要 (4) 第1章概述 (5) 第2章音乐盒的发音原理 (6) 2.1 播放音乐的原理 (6) 2.2 音符频率的产生 (6) 2.3 节拍频率的产生 (8) 第3章硬件电路设计 (9) 3.1 硬件电路 (9) 3.2 整体硬件电路 (10) 3.3 原理说明 (11) 2 2.4 键盘按键 (11) 第4章软件设计 (12) 4.1 程序设计流程 (12) 4.2 设计源程序代码 (12)

第5章仿真及调试 (13) 5.1 调试 (13) 5.2 仿真 (13) 5.3 程序调试中出现的问题及解决的办法 (15) 第6章设计小结及建议 (17) 致谢 (18) 参考文献 (19) 附录一元器件清单 (20) 附录二部分源程序代码 (21) 3

基于单片机的数字音乐盒

山东建筑大学 课程设计说明书 题目:基于单片机的数字音乐盒 课程:单片机原理及应用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软件来仿真,检验功能得以正常实现。 关键词:单片机;音乐盒;电路;播放

相关主题
文本预览
相关文档 最新文档