当前位置:文档之家› 基于单片机的音乐播放系统

基于单片机的音乐播放系统

基于单片机的音乐播放系统
基于单片机的音乐播放系统

音乐播放系统设计

李凯龙

目录

摘要 (1)

1 绪论 (1)

1.1 功能需求 (2)

2 硬件设计 (2)

2.1 音乐播放系统的电路原理图 (2)

2.2 电源输入的电路原理图 (3)

2.3 晶振电路 (3)

3 系统工作原理 (4)

3.1 系统的总体方案设计 (4)

3.2 主控芯片AT89C51简介 (4)

4 线路连接 (5)

5 软件设计 (6)

5.1 主程序流程图 (6)

6 调试与故障分析 (8)

6.1 软件程序调试 (8)

6.2 硬件电路调试 (8)

7 结论 (9)

8 致谢 (9)

参考文献 (10)

附录一:电路图 (11)

附录二:主程序 (11)

摘要

本文将介绍一种以89C51型单片机为基础元件设计的自动音乐播放器。在当今这个科技高速发展的时代,生活节奏的加快,人们长期处于工作、学习压力过大的状态,对于调节心理压力而言音乐对于每一个人都十分重要,由此音乐播放器在国内已经开始普及。校园里的上下课的铃声,宿舍内早晨的起床号声音,都由以前枯燥刺耳的铃音转变成了好听的音乐,公路、广场中的计时装置也逐渐开始采用音乐来充当铃声。此装置不仅为人们日常生活的计时提供了方便,同时也为目前快节奏的生活带来了乐趣。

本文是应用MCS-51单片机原理和控制理论设计音乐演奏控制器的硬件电路,并利用C语言进行程序设计。通过控制单片机内部的定时器来产生不同频率的方波,驱动蜂鸣器发出不同音调的音乐,再利用延迟来控制发音时间的长短。把乐谱转化成相应的定时常数就可以从发音设备中演奏出悦耳动听的音乐。

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

关键词:音乐播放器,51单片机,C语言

1 绪论

单片机,更确切地说应称为作微控制器,是20世纪70年代中期发展起来的一种面向控制的大规模集成电路模块,其特点是功能强、体积小、可靠性高、价格低廉。它一面世便在工业控制、数据采集、智能仪表化、机电一体化、家用电器等领域得到了广泛应用,极大地提高了这些领域的技术水平和自动化程度。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。

本次设计以89C51单片机为基础,利用单片机编成技术对芯片进行功能设定,实现音乐的播放。同时,利用单片机的定时器中断,在单片机内部产生所需要的音乐频率,并通过音频功率放大器将音频信号放大,通过蜂鸣器连续播放一段音乐。此设计通过多次测试,音乐声音宏亮清晰,节拍正常,达到预期效果。

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

1.1 功能需求

本设计利用单片机组成音乐播放系统。利用单片机的定时器产生乐谱的各种频率方波信号经过放大后由喇叭发出声音,能够自动连续播放多首乐曲,还能手动选择单曲。

2 硬件设计

2.1 音乐播放系统的电路原理图

单片机音乐播放器控制系统结构简单,环节较少,因此,单片机音乐播放器包括LED彩灯、数码管的显示。除了播放音乐有按键外,其余的硬件组成大体相同。对于单片机音乐播放器声音的读出除了蜂鸣器以外,还要配置合适的放大器播放出响亮的声音。本系统共有两部分构成,其中硬件部分由电源电路、晶振电路、按键电路、复位电路、时钟电路、发生电路组成,软件部分对应的由主程序、初始化程序、键功能程序、定时中断程序等组成。单片机上位复电后,从头开始执行程序,时钟频率由外部晶振频率提供。

电子时钟的电路图由电源输入电路、晶振电路、按键电路、声音播放电路等电路组成。本系统采用AT89C51单片机作为主控制芯片,为了提高计时精度,所采用的晶振频率为12MHz。电子时钟原理图如图1所示。

图1 音乐播放系统的电路原理图

2.2 电源输入的电路原理图

音乐播放系统的主控制部分电源需要用5V直流电源供电,把频率为50Hz、有效值为220V过电源变压器、整流电路、滤波电路、稳压电路转换成稳定的直流电压。

由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值相差较大,因而电源变压器的作用显现出来起到降压作用。降压后还是交流电压,所以需要整流电路把交流电压转换成直流电压。由于经整流电路整流后的电压含有较大的交流分量,会影响到负载电路的正常工作。需通过低通滤波电路滤波,使输出电压平滑。稳压电路的功能是使输出直流电压基本不受电网电压波动和负载电阻变化的影响,从而获得稳定性足够高的直流电压,如图2所示。

图2 电源输入的原理图

2.3 晶振电路

晶振电路如图3所示。XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

图3 晶振电路

3 系统工作原理

3.1 系统的总体方案设计

本次设计课题为音乐播放系统的设计,采用AT89C51单片机内部定时器实现数字时钟的定时功能。音乐播放系统的整体框图如图4所示。

图4 音乐播放的系统整体框图

3.2 主控芯片AT89C51简介

AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。其引脚图如图5所示。

图5 AT89C51引脚图

4 线路连接

本课程设计需要用到CPU 模块的P1.0、P1.3、P3.2、P3.5、XTAL1、XTAL2、电源VCC、接地GND引脚。电路板由自己焊接好,无需外部扩展。电路原理图如下。

图6 89C51引脚接线图

图7 声音播放模块、晶振电路、LED模块、按钮模块、电源模块接线图

5 软件设计

5.1 主程序流程图

一般来说,单片机不像其他专业乐器那样能奏出多种音色的声音,即不包含相应幅度的谐振频率。单片机演奏的音乐基本都是单音频率。因此单片机演奏音乐比较简单,只需能清楚“音调”和“节拍”两个概念即可。音调表示一个音符唱多高的频率。节拍表示一个音符唱多长的时间。

知道了一个音符的频率后,便可以让单片机发出相应频率的振荡信号,从而产生相应的音符声音。通过单片机的定时器进行定时中断,在中断服务程序中将单片机上完结单片机I/O口来回置高电平或者是低电平的,从而让扬声器发出声音。通过节拍计算出每个音符所需要的时间,采用循环延时的方法来实现控制一个音符唱多长的时间,从而构成一首完整的音乐。

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

音调的高低还与发声体的结构有关,因为发声体的结构影响了声音的频率。大体上,2000 赫兹以下的低频纯音的音调随响度的增加而下降,3000 赫兹以上高频纯音的音调随响度的增加而上升。

例如,在音乐中常常把中音C上方的A音定位标准高音,其频率F=440HZ,其余音均与其进行比较。F1和F2为两个音符,如果这两个音符的频率相差一倍时,也即F2=2*F1时,则称F2比F1高一个频程。

在音乐中音符1与音符2,音符2与音符3……等等之间正好相差一个倍频程,在音乐学中称它相差一个八度音。在一个八度内,有12个半音。由于人耳的听觉效果,这12个音阶的分度基本上是以对数的关系来划分的。只要知道12个音符的音高,也就是其基本频率,就可以根据音符之间的倍频关系得到其他音符的基本音调频率[3]。

以标准高音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/(12000000/SYSTEM_OSC)

TH = Temp /256

TL = Temp %256

主程序流程图如图8所示。

图8 主程序流程图

6 调试与故障分析

6.1 软件程序调试

本次设计的软件部分由音乐播放程序组成,曲目序号显示程序仿真。关于音乐播放程序的调试,我首先采用Preteus软件来仿真,但是该仿真软件中没有喇叭或蜂鸣器等声音播放工具。于是本人将图3-4中的单片机的P1.0处接了一个示波器,想通过这样来仿真并调试音乐播放程序,但是效果不是很理想。程序运行的时候,能看见示波器有不同频率的波形交替出现,但是频率变换得很快,无法确认是否显示的是所需要的频率,并且无法辨别音频变换的节奏是否正确。此方法并不适用。

接着,我制作了一个简单的单片机播放器电路。即在实验板上焊接实验电路,电路由单片机89C51、按钮外围电路组成,并在单片机的P1.0处用三极管连接一个简单的音频放大器,再外接一个蜂鸣器。将程序写入单片机中,这样就能听出声音和音乐节奏是否正确。

6.2 硬件电路调试

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

问题一:单片机无法正常下载程序。

调试步骤:

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

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

问题二:下载音频程序后无法播放音乐。

调试步骤:

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

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

利用示波器测试音频放大电路输出端是否有信号输出,发现信号输出正常,

说明音频放大电路工作正常,同时说明是蜂鸣器部分出现了问题。

故障原因:焊接时将发声器件烧坏了,导致发不出声音。

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

7 结论

经过这次课程设计,我觉得自己学到了不少东西。归纳起来,主要有以下几点:

(1)通过这次课程设计,我能将以前所学到的专业知识与实践相联系,将所学到的知识充分运用到本次设计中。同时,我也认识到自己知识上不足的地方,体会到了所学理论知识的重要性,知识掌握得越多,设计得就更全面、更顺利、更好。

(2)进一步熟悉了单片机的知识。通过本次课程设计,我对单片机的基本原理、内部结构、各引脚功能、定时器和中断的应用都有了更深刻的理解。并且,能够以单片机为基础元件设计一个简单的系统。

(3)通过本次设计,熟悉了设计一个项目所必经的几个阶段。本次设计从理论研究到硬件原理图设计,自己购买元器件焊接电路板,从软件编程到最后的调试过程都由我独立完成。这不仅锻炼了我独立完成设计工作的能力,更重要的是了解了一个电子产品的设计流程,为将来投入工作增加了宝贵的经验,奠定了坚实的基础。

(4)提高了自己查找资料的能力。在设计过程中,我碰到了一些暂时无法解决的问题,于是我通过上网查阅和图书馆借阅资料,或是通过与老师同学交流一步步地解决了。从中我懂得了我们这个专业的知识面相当广泛,我们需要不断通过各种途径更新自己的知识,不断充实自己,同时要懂得与他人交流意见,积极听取别人的建议,懂得不断学习的重要性。

8 致谢

五周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,遇到许多这样那样的问题,在同学的热情帮助下,相互学习,相互监督。

课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.

通过这次课程设计,本人在多方面都有所提高。通过这次课程设计,综合运用本专业所学课程的理论和生产实际知识进行的实际训练从而培养和提高学生独立工作能力,巩固与扩充了单片机程序设计的应用技能,熟悉了规范和标准,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。

在这次设计过程中,体现出自己单独设计单片机程序的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。

在此感谢我们的马凤霞老师,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次课程设计的每个实验细节和每个数据,都离不开老师您的细心指导。而您开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。

同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。

由于本人的设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教,我十分乐意接受你们的批评与指正,本人将万分感谢。

参考文献

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

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

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

[4] 李启炎. Protel 99SE应用教程. 上海-同济大学出版社 2005.2

[5] 胡烨, 姚鹏翼, 江思敏. Protel 99 SE电路设计与仿真教程. 北京-机械工业出版社, 2006

[6] 张义和,陈敌北。例说8051。北京:人民邮电出版社,2006

[7] 张洪润,张亚凡。单片机原理及应用。清华大学出版社,2004

附录一:电路图

附录二:主程序

#include

#define sound_amount 5 //歌曲的数量

sbit play_up=P1^3; //上一首歌

sbit play_down=P3^5; //下一首歌

sbit pause=P3^2; //播放\暂停

sbit speaker=P1^0; //无源蜂鸣器

//////////////////////////////////////////////

unsigned char timer0h,timer0l,time;//timer0h,timer0l为定时器T0的高低位初值,time为对应的节拍时间

unsigned char music_num; //music_num为歌曲编号,music_num=0表示刚开机时的状态,num是查找歌曲数据表的地址

unsigned int num;

signed int fre; //对应频率数据表的地址

bit play_enable; //歌曲播放的使能标志位,用于播放\暂停

void delay(unsigned char t); //延时子函数,控制发音的时间长度

void delayms(unsigned int t); //普通延时子程序,可用于按键消抖

void music_play(void); //播放歌曲

//////////////////////////////////////////////

//每三个数字,代表一个音符

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

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

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

//////////////////////////////////////////////

//《烟花易冷》

unsigned char code song1[]={

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

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,

7,2,3, 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,2,

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

//《发如雪》

unsigned char code song2[]={

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 };

//《简单爱》

unsigned char code song3[]={

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

3,2,1, 3,2,1, 1,2,2, 5,2,1, 1,2,1, 5,2,1, 5,2,1, 7,1,1, 1,2,1, 0,0,0 };

//《世上只有妈妈好》

unsigned char code song4[]={

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个半拍;

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

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

//...

3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2, 5,2,1, 6,2,1, 3,2,2, 2,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};

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

unsigned char code song5[]={

3,2,2, 3,2,1, 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, 1,2,6, 0,0,0 };

//《乡间小路》

unsigned char code song6[]={

3,1,2, 3,1,1, 3,1,1, 6,0,1, 6,0,1, 1,1,2,

6,0,1, 5,0,1, 6,0,4, 6,0,2, 6,0,1 ,6,0,1, 6,0,2, 6,0,1, 1,1,1,

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

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

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

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

//《送别》

unsigned char code song7[]={

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

5,1,4, 5,1,2, 1,1,1, 2,1,1, 3,1,2, 2,1,1, 1,1,1, 2,1,4, 5,1,2, 3,1,1, 5,1,1, 1,2,2, 7,1,1, 6,1,2, 1,2,2, 5,1,4, 5,1,2, 2,1,1,

7,1,1, 1,2,4, 6,1,1, 7,1,1, 1,2,1, 6,1,1, 6,1,1, 5,1,1, 3,1,1,

1,1,1, 2,1,8, 5,1,2, 3,1,1, 5,1,1, 1,2,2, 7,1,1, 6,1,2, 1,2,2,

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

//《最浪漫的事》

unsigned char code song8[]={

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

// 频率-半周期数据表高八位共保存了四个八度的28个频率数据

unsigned char code FREQH[]={

0xF2, 0xF3, 0xF5, 0xF5, 0xF6, 0xF7, 0xF8, //低音1234567

0xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0xFC,//1,2,3,4,5,6,7,i

0xFC, 0xFD, 0xFD, 0xFD, 0xFD, 0xFE, //高音 234567

0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF}; //超高音 1234567

// 频率-半周期数据表低八位

unsigned char code FREQL[]={

0x42, 0xC1, 0x17, 0xB6, //低音1234567

0x21, 0xE1, 0x8C, 0xD8, 0x68, 0xE9, 0x5B, 0x8F, //1,2,3,4,5,6,7,i

0xEE, 0x44, 0x6B, 0xB4, 0xF4, 0x2D, //高音 234567

0x47, 0x77, 0xA2, 0xB6, 0xDA, 0xFA, 0x16}; //超高音 1234567

void main(void)

{

TMOD=0x11; //T0 T1 均在工作方式1

ET0=1; //T0开中断

EA=1; //CPU开中断

while(1)

{

music_play(); //根据当前状态播放相应歌曲的某个音符

if(!pause) //暂停键处理

{

if(!pause)

{

if(music_num==0) //music_num=0只有在刚开机,且未按下暂停键时存在,表示刚开机时的状态,按下后从第一首开始播放

{

music_num=1; //歌曲序号置1

num=0; //从头播放

play_enable=1; //允许播放

}

else

{

play_enable=~play_enable;

speaker=1;

}

while(!pause) //若按着暂停键不放手时的处理

{

if(play_enable==0){} //如果是暂停,则显示时间不变//(暂停时play_enable==0)

}

}//暂停键处理结束

}//while结束

if((!play_up)&&(music_num!=0)) //上一首按键

{

delayms(5);

if((!play_up)&&(music_num!=0))

{ speaker=1;

music_num-=1;//歌曲编号减一

if(music_num<=0)

music_num=8;

num=0; //从头开始播放

if(music_num==(sound_amount+1))

music_num=1;

delayms(500);//歌曲切换时延时0.5S

}

}

if((!play_down)&&(music_num!=0))

{

delayms(5);

if((!play_down)&&(music_num!=0))

{ speaker=1;

music_num=1;

num=0; //从头开始播放

if(music_num==0)

music_num=sound_amount;

delayms(500);//歌曲切换时延时0.5S

}

}

}

}

void delayms(unsigned int t) //MS延时子程序

{

unsigned int i,j;

for(i=0;i

{

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

;

}

}

void delay(unsigned char t) //延时子函数,控制发音的时间长度,每个节拍0.4S

{

unsigned char t1;

for(t1=0;t1

{

for(t2=0;t2<8000;t2++) //延时期间, 可进入T0中断去发音

{

;

}

}

TR0=0; //关闭T0, 停止发音

}

void timer0(void) interrupt 1 //T0中断程序,控制发音的音调

{

speaker=!speaker;//输出方波, 发音

TH0=timer0h; //下次的中断时间,这个时间控制音调高低

TL0=timer0l;

}

void song(void) //演奏一个音符

{

TH0=timer0h; //控制音调

TR0=1; //启动T0, 由T0输出方波发音

delay(time); //每个音符的演奏时间

}

void music_play(void)//播放相应歌曲的某个音符

{

if((music_num==1)&&(play_enable==1))

{

fre=song1[num]+7*song1[num+1]-1;//第i个是音符,第i+1个是第几个八度

timer0h=FREQH[fre]; //从数据表中读出频率数值,实际上是定时的时间长度

timer0l=FREQL[fre];

time=song1[num+2]; //读出时间长度数值

num+=3;

if(fre<0) //判断歌曲的结束位,结束后转到下一首

{

num=0; //下一首从头播放

music_num=2;

}

song(); //发出一个音符

}

////////////////////////////////////////////////////////////////////// //////////////

if((music_num==2)&&(play_enable==1))

{

fre=song2[num]+7*song2[num+1]-1;

timer0h=FREQH[fre];

num+=3;

if(fre<0)

{

num=0;

music_num=3;

}

song();

}

////////////////////////////////////////////////////////////////////// //////////////

if((music_num==3)&&(play_enable==1))

{

fre=song3[num]+7*song3[num+1]-1;

timer0h=FREQH[fre];

num+=3;

if(fre<0)

{

num=0;

music_num=4;

}

song();

}

////////////////////////////////////////////////////////////////////// //////////////

if((music_num==4)&&(play_enable==1))

{

fre=song4[num]+7*song4[num+1]-1;

timer0h=FREQH[fre];

num+=3;

if(fre<0)

{

num=0;

music_num=5;

}

song();

}

////////////////////////////////////////////////////////////////////// //////////////

if((music_num==5)&&(play_enable==1))

{

fre=song5[num]+7*song5[num+1]-1;

timer0h=FREQH[fre];

num+=3;

if(fre<0)

{

num=0;

music_num=6;

}

song();

}

////////////////////////////////////////////////////////////////////// //////////////

if((music_num==6)&&(play_enable==1))

{

fre=song6[num]+7*song6[num+1]-1;

timer0l=FREQL[fre];

time=song6[num+2];

num+=3;

if(fre<0)

{

num=0;

music_num=7;

}

song();

}

////////////////////////////////////////////////////////////////////// //////////////

if((music_num==7)&&(play_enable==1))

{

timer0l=FREQL[fre];

time=song7[num+2];

num+=3;

if(fre<0)

{

num=0;

music_num=8;

}

song();

}

if((music_num==8)&&(play_enable==1))

{

fre=song8[num]+7*song8[num+1]-1;

timer0l=FREQL[fre];

time=song8[num+2];

num+=3;

if(fre<0)

{

music_num=1;

}

song();

}

}

//程序结束

蜂鸣器唱两只老虎单片机程序

#include<> //包含52单片机寄存器定义的头文件 sbit sound=P3^7; //将sound位定义为 unsigned int C; //储存定时器的定时常数 //以下是C调中音的音频宏定义 #define dao 523 //将"dao"宏定义为中音"1"的频率523Hz #define re 587 //将"re"宏定义为中音"2"的频率587Hz #define mi 659 //将"mi"宏定义为中音"3"的频率659Hz #define fa 698 //将"fa"宏定义为中音"4"的频率698Hz #define sao 784 //将"sao"宏定义为中音"5"的频率784Hz #define la 880 //将"la"宏定义为中音"6"的频率880Hz #define xi 987 //将"xi"宏定义为中音"7"的频率523Hz /******************************************* 函数功能:1个延时单位,延时200ms ******************************************/ void delay() { unsigned char i,j; for(i=0;i<250;i++) for(j=0;j<250;j++) ; } /******************************************* 函数功能:主函数 ******************************************/ void main(void) { unsigned char i,j; //以下是《两只老虎》歌曲 unsigned int code f[]={dao,re,mi,dao, //每行对应一小节音符 dao,re,mi,dao, mi,fa,sao, mi,fa,sao, sao,la,sao,fa,mi,dao, sao,la,sao,fa,mi,dao, dao,sao,dao, dao,sao,dao, 0xff}; //以0xff作为音符的结束标志 //以下是简谱中每个音符的节拍 //"4"对应4个延时单位,"2"对应2个延时单位,"1"对应1个延时单位unsigned char code JP[ ]={2,2,2,2, 2,2,2,2, 2,2,3, 2,2,3,

基于51单片机的音乐播放器

基于51单片机的音乐播放器 余子健、刘胤、宋亮 摘要:本大作业是基于sst89e52rd2单片机制作的wav音乐播放器。该播放器可以播放存在sd卡中的音乐,通过对sd卡的读取并将数字信号送入单片机中,借助8位DA转换器TLC5620 变成模拟信号,经过放大器TDA2822放大交给扬声器发出最初读取的音频信号,实现音乐播放的功能。 关键词:SD卡,WAV文件,DA,音频放大 1背景 音乐随身听产品经过几年的发展,已经变得相当成熟。市场上可以购买到各类不同的音乐播放器,产品线涵盖了高中低不同档次。作为学习与研究,本作品尝试利用STI51开发板板载资源以及外搭的功率放大电路制作一台音乐播放器,能够播放通过计算机拷贝在SD卡(或MMC卡、TF卡)的根目录中的某一个WAV 文件。 2硬件设计 该音乐播放器硬件组成如下 本音乐播放器使用容量为2G的SD作为外部存储器 主控制器采用SST公司生产的SST89E58RDA,其40引脚封装的芯片功能模块如图1所示。芯片主要特想如下: ?兼容80C51系列,内置超级FLASH存储器的单片机 ?工作电压VDD=4.5~5V,5V工作电压时0-40MHz频率范围 ?1KB的内部RAM ?两块超级FLASH EEPROM,32KB的基本存储卡和8KB的二级存储块(扇区大小为128字节),二级存储块可用于存放掉电后要保存的数据,放在内部具有极强的抗干扰性?最大片外程序/数据地址空间为64KB ?全双工增强型UART,帧错误检测,自动地址识别 ?9个中断源,4个中端优先级 ?降低EMI模式(通过AUXR SFR不允许ALE输出时钟),确保了单片机的高抗干扰性?双DPTR指针(查表,寻址更方便)

背景音乐紧急广播系统

3.1.背景音乐紧急广播系统 3.2.1.概述 背景音乐及广播系统是智能化系统内不可缺少的子系统之一。其主要功能为办公楼提供背景音乐、公共广播及紧急广播等应用。其中背景音乐的主要作用是掩盖噪声并创造轻松愉悦的办公氛围。前端扬声器要求均匀布置,无明显声源方向性,且音量适宜,不影响人群正常交谈,是优化环境的重要手段之一。公共广播则可以起到宣传、播放通知、找人寻呼等作用,该功能则要求扬声器的声场强度略高于背景音乐指标,以不影响两人对面讲话为原则。紧急广播作为消防报警及联动系统在紧急状况下用于疏散广播的设施,须提供足以让建筑内可能涉及的人群能清晰的听到警报、疏导的语音。 通常情况下,该系统平时做背景音乐用,当发生火灾时通过消防报警系统的联动,自动切换到紧急广播系统。 将紧急广播、公共广播和背景音乐系统集合在一起,共用一套前端扬声器,组成通用性极强的公共广播系统,这样既为业主节省了投资,又可以播放背景音乐、发布日常信息、紧急广播、火灾报警,既给客户提供良好的阅读氛围,又为工作提供极佳的环境,同时能针对特殊事件提供最佳途径。 3.2.2.需求分析 本小区是一座综合性小区,背景音乐在工作生活中和发生紧急情况时发挥作重要的作用。 背景音乐喇叭能够与消防联动,在紧急状态能够作为消防紧急疏散广播。

本公共广播系统分布小区的地下车库和室外区域。 3.2.3.系统设计 3.2.3.1.系统结构 背景音乐系统由音源部分、声音处理部分、声音传输部分、放音部分等组成。 1)音源部分 由CD、FM等音源设备组成。CD、FM等为可长时间连续播放背景音乐。同时麦克风也可以作为音源设备,提供语音广播以及消防等紧急广播。 2)声音处理部分 包括前置放大、广播扩声(功率放大)等。 前置放大部分:由辅助放大模块、线性放大模块组成。辅助放大模块具有半固定音量控制、输出电平调整、静噪等功能;线性放大模块具有输出电平控制、高低音调整及发光二极管输出电平指示。 功率放大部分:采用专为背景音乐系统而设计的功率放大器。设计该放大器时,主要考虑的是设备的可靠性,应能保证功率放大器24小时满功率的连续工作。功率放大部分采用专为背景音响和业务/紧急广播系统设计和生产的功率放大器,其特点是公共广播系统要求扩声设备具有高清晰度和高可靠性,即音频放大要高度清晰并在满功率输出又长时间使用时而不发生故障。 3)声音传输部分 是声音由声音处理部分向放音部分传输的通道,由于背景音乐广播服务区域广、传输距离长,为了减少功率传输损耗,采用音频定压传输方式。 定压式的主要特点是:

单片机蜂鸣器播放音乐

#include #define uchar unsigned char #define uint unsigned int sbit speaker = P1^7; uint j; uchar m=1; uchar flag; uchar line; uchar code * data song; // 休止符低6 低7 中1 中2 中3 中4 中5 中 6 中7 高 1 低 3 低 5 低 4 高3 uchar code yin[30]={0xFF,0xFF,0xFB,0x90,0xFC,0x0C,0xFC,0x44,0xFC,0xAC,0xFD,0x09,0xFD,0x34,0xF D,0x82,0xFD,0xC8,0xFE,0x06,0xFE,0x22,0xFA,0X15,0XFB,0x04,0xFA,0x67,0xFE,0x85}; uchar code song1[97]={0x34,0x32,0x32,0x34,0x42,0x51, //<<干杯,朋友>> 0x62,0x52,0x42,0x32,0x34,0x04, 0x74,0x74,0x62,0x62,0x64, 0x3c,0x04, 0x64,0x62,0x52,0x42,0x32,0x34, 0x33,0x31,0x32,0x72,0x76,0x72, 0x83,0x81,0x82,0x82,0x82,0x74,0x72, 0x7c,0x04, 0x63,0x61,0x62,0x62,0x64,0x72,0x82, 0x72,0x74,0x72,0x62,0x52,0x42,0x32, 0x42,0x44,0x42,0x42,0x52,0x62,0x52, 0x5c,0x04, 0x64,0x62,0x62,0x64,0x72,0x82, 0x72,0x74,0x72,0x62,0x52,0x42,0x32, 0x42,0x46,0x53,0x41,0x42,0x32, 0x3c,0x04, 0x44,0x48,0x02,0x32, 0x3f, 0x44,0x48,0x02,0x32, 0x3f, 0x34,0x0c, 0xFF}; uchar code song2[46]={0x12,0x52,0x52,0x52,0x56,0x42, //<<兰花草>>

基于单片机的音乐播放器

基于单片机的音乐播放器 摘要 单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。 基于单片机的音乐播放器可应用于MP3、MP4,扩音器等很多方面,并可作为很多系统的辅助功能,作为单片机的重要硬件资源之一,利用定时器可以产生各种固定频率的方波信号,也可以产生包括"Do"、"Re"、"Me"--等音阶在内的各种频率声音。将各个音阶连接在一起,便可组成一支曲子或是演奏一段旋律。基于这个思想,采用AT89C52单片机设计了一款特殊的"音乐播放器",本播放器可实现播放、暂停、复位等功能。 关键字:单片机;集成电路:89C52芯片;音乐播放器

Abstract Single Chip Microcomputer is an integrated circuit chip, VLSI technology is the use of having the data processing capabilities of the CPU random access memory RAM, read-only memory ROM, a variety of I / O port and interrupt system, the timer / counter functions (may also include a display driving circuit, the pulse width modulation circuit, an analog multiplexer, A / D converter circuit, etc.) are integrated into a small sound system on a microcomputer composed of silicon. Microcontroller-based music player can be used in many ways mp3, MP4, loudspeakers, etc., and as a secondary function of many systems, as one of the important microcontroller hardware resources, using the timer can generate a variety of fixed frequency square wave signal can be generated include the "Do", "Re", "Me" - like various frequencies including the sound scale. The various scales together, may form a song or play a melody. Based on this idea, using AT89C52 designed a special "Music Player", the player can be realized play, pause, reset and other functions. Keyword:Single Chip Microcomputer;integrated circuit;89C52 chip;Music Player

背景音乐公共广播系统解决方案

背景音乐公共广播系统解决方案 概述 小区背景音乐的主要作用是创造一种轻松和谐的气氛,设计成熟的智能小区背景音乐系统,扬声器分散要均匀布置,音量适宜,不影响人群正常交谈。当有紧急情况时,扬声器能以最大的功率发声,每个角落都能听到报警声音,以便人员的及时疏散。小区背景音乐/紧急广播智能系统主要对每栋住宅楼住户、活动休闲区、绿化带等场所进行通常或紧急广播,且主机对今后的扩容预留接口,方便小区今后扩展。 方案设计依据 1、以甲方提供的场地图纸和系统要求为依据; 2、依照提出的扩声要求,并根据背景音乐广播的需要; 3、根据我公司多年来对音响系统设计、施工的经验,考虑系统用途的先进性和功能扩展性。 本系统的设计依照下列标准进行: ●《民用建筑电气设计规范》 JGJ/45-82 ●《建筑设计防火规范》 GBJ16-37 ●《厅堂扩音系统的声学特性指标要求》 JG GTJ125 ●《利用建筑物金属体做防雷及接地装置安装》 86SD566 ●《火灾自动报警设计规范》 GBJ116-88 ●《火灾自动警系统施工及验收》 GBJ50166-92 ●《公共广播工程费用概预算编制办法》 ●《CDKPA产品手册》 根据此规格书及最新版的有关标准对系统进行设计、施工和检验。 智能小区公共广播设计要求及要实现的功能 1、系统指标 (1)、声场强度 声场强度的确定与某环境下的背景噪声密切相关,参考各种不同的环境下的噪声

声强表,建筑环境一般均为25~45dB。 (2)、声场均匀度 声压级均匀,变化范围在±4dB左右为好。 (3)、可懂度 检测声音清晰程度的主观评定指标。 (4)、扬声器系统的性能指标 ●扬声器的频率响应范围 扬声器的频率响应范围是影响系统可懂度的重要因素。频率响应范围100~140 00Hz就足以满足要求。功放的频响范围均优于扬声器的频响特性。 ●重放频率特性 扬声器如上所述在100~14000Hz范围,足以满足公共广播的频响要求。 ●灵敏度 灵敏度高的扬声器的效率也高。 ●额定阻抗 额定阻抗一般采用4欧或8欧。 ●额定功率 又称标称功率、不失真功率,它是扬声器的正常工作功率,扬声器在此条件下可以长期工作而不致损坏,一般情况下,最大输出功率是额定功率的2~3倍。 ●扬声器口径 扬声器的口径尺寸越大,则它所能承受的功率越大,输出功率也越大,低频特性越好。 ●扬声器扩散角 扬声器的扩散角大小可决定扬声器的布距。 S1=2×(H-h)×tg(Q/2) 其中,S1:布距参考值 H:设备安装的吊顶高度 h:设定的闻听高度 Q:扬声器的扩散角

51单片机蜂鸣器播放音乐代码

/*生日快乐歌曲*/ #include <> #define uint unsigned int #define uchar unsigned char sbit beep = P1^5; uchar code SONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159, 212,212,106,126,159,169,190,119,119,126,159,142,159,0}; uchar code SONG_LONG[]={9,3,12,12,12,24,9,3,12,12,12,24, 9,3,12,12,12,12,12,9,3,12,12,12,24,0}; //延时 void DelayMS(uint x) { uchar t; while(x--) for(t=0;t<120;t++); } void PlayMusic() { uint i=0,j,k; while(SONG_LONG[i]!=0||SONG_TONE[i]!=0) { //播放各个音符,SONG_LONG 为拍子长度 for(j=0;j // 这是单片机音乐代码生成器生成的代码 #define uchar unsigned char sbit beepIO=P1^5; // 输出为可以修改成其它 IO 口uchar m,n;

居民小区背景音乐公共广播系统解决方案

居民小区背景音乐公共广播系统解决方案概述 小区背景音乐的主要作用是创造一种轻松和谐的气氛,设计成熟的智能小区背景音乐系统,扬声器分散要均匀布置,音量适宜,不影响人群正常交谈。当有紧急情况时,扬声器能以最大的功率发声,每个角落都能听到报警声音,以便人员的及时疏散。小区背景音乐/ 紧急广播智能系统主要对每栋住宅楼住户、活动休闲区、绿化带等场所进行通常或紧急广播,且主机对今后的扩容预留接口,方便小区今后扩展。 方案设计依据 1、以甲方提供的场地图纸和系统要求为依据; 2、依照提出的扩声要求,并根据背景音乐广播的需要; 3、根据我公司多年来对音响系统设计、施工的经验,考虑系统用途的先进性和功能扩展性。 本系统的设计依照下列标准进行: ?《民用建筑电气设计规范》JGJ/45-82 ?《建筑设计防火规范》GBJ16-37 ?《厅堂扩音系统的声学特性指标要求》JG GTJ125 ?《利用建筑物金属体做防雷及接地装置安装》86SD566 ?《火灾自动报警设计规范》GBJ116-88 ?《火灾自动警系统施工及验收》GBJ50166-92 ?《公共广播工程费用概预算编制办法》 ?《CDKPA产品手册》 根据此规格书及最新版的有关标准对系统进行设计、施工和检验。

智能小区公共广播设计要求及要实现的功能 1、系统指标 (1)、声场强度声场强度的确定与某环境下的背景噪声密切相关,参考各 种不同的环境下的噪声声强表,建筑环境一般均为25~45dB。 (2)、声场xx 声压级均匀,变化范围在±4dB左右为好。 (3)、可懂度检测声音清晰程度的主观评定指标。 (4)、扬声器系统的性能指标 ?扬声器的频率响应范围扬声器的频率响应范围是影响系统可懂度的重要因 素。频率响应范围14000Hz就足以满足要求。功放的频响范围均优于扬声器 100 的频响特性。 ?重放频率特性 扬声器如上所述在100~14000Hz 范围,足以满足公共广播的频响要 求。?灵敏度 灵敏度高的扬声器的效率也高。 ?额定阻抗额定阻抗一般采用4xx 或8xx。 ?额定功率

基于单片机的自动音乐播放器的方案设计书

The design of automatic music player based on monolithic integrated circuit Abstract In order to facilitate people's daily life, optimizes schools', institutions' timing system, used has designed one kind of automatic music player which based on monolithic integrated circuit. This design fixed time and counts the function using monolithic integrated circuit 89C58RD+, completes the time the demonstration and fixed time the function. And, Through hypothesis starting value of timer, product the different frequency sound. Severs using the timer completesthe control of music metre length.Through LM386N1 audio power amplifier, enlarges signal which the monolithic integrated circuit outputs,then broadcast music from loudspeaker. Through MAX232 chip,can transform PC machine on the voltage and the monolithic integrated circuit supply voltage.And then,turns on the computer though String mouth,then it can download procedure which compiles with the C language to monolithic integrated circuit from computer.At last,it can demonstrates the time on the digital tube.When time to after fixed time, the loudspeaker automatically broadcasts section of continual musics. This design get rid of the traditional alarm clock's grating sound, displaces is the wonderful music,can provides the accurate time for people's daily life.The design cost very inexpensive,it is worth promoting. Audio 。 Automatic music broadcast。Monolithic integrated circuit: Key word frequency transformation。 Time demonstration。 LM386N1 audio power amplifier 目录 论文总页数:页 引言 (1) 1 设计任务 (2) 2 软件设计 2.1 音乐编程原理及流程图 ............................................... 2.1.1 声音的产生 ...................................................... 2.1.2 音频转换原理 .................................................... 2.1.3 音频转换流程图 .............................................. 2.2 时间显示程序设计.............................................. 2.2.1 时间显示模块.............................................. 2.2.2 时钟流程图 .............................................. 3 硬件电路的设计 (2) 3.1 硬件流程模块(此节作为第1节---后面几节就围绕它来写,并且要写“连贯”) 3.2 主要模块电路的设计.......................... 3.2.1 89C58RD+型单片机介绍.........................................

单片机 利用蜂鸣器演奏音乐

实验三-利用蜂鸣器演奏音乐 一、实验目的 1.了解BlueSkyC51单片机实验板中蜂鸣器的硬件电路 2.学会利用蜂鸣器实现音乐的演奏 3.掌握蜂鸣器实现音乐演奏的编程 二、实验硬件设计及电路 1. BlueSkyC51单片机实验板 ` 2.单片机最小系统

。 3.蜂鸣器电路连接 三极管主要是做驱动用的。因为单片机的IO口驱动能力不够让蜂鸣器发出声音,所以

我们通过三极管放大驱动电流,从而可以让蜂鸣器发出声音,你要是输出高电平,三极管导通,集电极电流通过蜂鸣器让蜂鸣器发出声音,当输出低电平时,三极管截止,没有电流流过蜂鸣器,所以就不会发出声音。 三、实验原理 1.音调及节拍 用一个口,输出方波,这个方波输入进蜂鸣器就会产生声音,通过控制方波的频率、时间,就能产生简单的音乐。一般说来,单片机演奏音乐基本都是单音频率,因此单片机奏乐只需控制音调和节拍。 (1)音调的确定 音调是由频率来确定的。通过单片机的定时器定时中断,将单片机上对应蜂鸣器的I/O 口来回取反,从而让蜂鸣器发出不同频率的声音。只需将定时器给以不同的定时值就可实现。通过延时,即可发出所需要的频率。 … (2)节拍的确定 一拍的时长大约为400—500ms,每个音符的时长通过节拍来计算。详细见程序代码。 2.软件设计相关 (1)头文件 #include<> #define uint unsigned int #define uchar unsigned char #define ulong unsigned long sbit beep=P1^4; 译实验相关问题 ; (1)实际发音颤音重 解决方法为修改蜂鸣器的驱动频率. (2)实际节奏过快或者过慢 调整延时 四、C51程序代码(部分来源于网络) #include<> #define uint unsigned int #define uchar unsigned char #define ulong unsigned long ~ sbit beep=P1^4; //蜂鸣器与口连接 uchar th0_f; //中断装载T0高8位 uchar tl0_f; //T0低8位 uchar code freq[36*2]={ //音阶码表 0xf7,0xd8, //440hz , 1 //0 0xf8,0x50, //466hz , 1# //1

单片机课程设计报告(利用蜂鸣器播放音乐)

课程设计:电子设计 题目名称:音乐流水灯 姓名:戴锦超 学号:08123447 班级:信科12-3班 完成时间:2014年10月23日

1设计的任务 设计内容:动手焊接一个51单片机 设计目标:利用单片机上的蜂鸣器以及二极管实现音乐播放以及根据音乐的节奏而规律性闪亮的二极管。并且通过程序调节音乐节奏的快慢。 2 设计的过程 2.1 基本结构 1.STC89C52RC 在本次的试验中采用了STC89C52RC单片机,STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期,工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机),工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz,用户应用程序空间为8K字节。

(STC89C52RC引脚图) STC89C52RC单片机的工作模式: (1)典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序 (2)空闲模式:典型功耗2mA (3)正常工作模式:典型功耗4Ma~7mA (4)唤醒,适用于水表、气表等电池供电系统及便携设备 2.蜂鸣器及其工作原理: 蜂鸣器按其结构分主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。本实验采用的是电磁式 蜂鸣器。

蜂鸣器按其是否带有信号源又分为有源和无源两种类型。 有源蜂鸣器只需要在其供电端加上额定直流电压,其内部的震荡器就可以产生固定频率的信号,驱动蜂鸣器发出声音。无源 蜂鸣器可以理解成与喇叭一样,需要在其供电端上加上高低不断变化的电信号才可以驱动发出声音。本实验采用的是有源蜂鸣器。 (蜂鸣器与单片机连接电路图) 2.2 软件设计过程 1.蜂鸣器发声原理 本实验由于采用有源蜂鸣器,只需将引脚端口P1^4清

(广告传媒)公共广播及背景音乐系统方案

公共广播及背景音乐系统方案 方 案 介 绍 惠州市嘉和安安防科技有限公司 2009 年 6 月12 日

公共广播及背景音乐系统方案 1.系统概述公共广播系统具有背景音乐广播、公共广播、火灾事故广播功能。火灾事故广播功能作为火灾报警及联动系统在紧急状态下用以指挥、疏散人群的广播设施,在建筑弱电的设计中有举足轻重的作用。该功能要求公共广播系统能达到需要的声扬强度,以保证在紧急情况发生时,可以利用其提供足以使建筑物内可能涉及的区域的人群能清晰的听到警报、疏导的语音。 背景音乐的主要作用是掩盖噪声并创造一种轻松和谐的听觉气氛,由于扬声器分散均匀布置,无明显声源方向性,且音量适宜,不影响人群正常交谈,是优化环境的重要手段之一,在现代智能化多功能建筑中广泛应用。背景音乐(BGM)通常把记录在磁带、唱片上的BGM节 目,经过BGM重放设备(磁带录音机、激光唱机等) 使其输出分配到各个广播区域的扬声器,实现音乐重放。背景音乐为单声道音乐,音源的位置隐蔽,使人们不易感觉音源的位置。该功能要求扩声系统的声场强度以不影响相近人群讲话为原则。 公共广播系统在该大楼可以起到宣传、播放通知、找人、紧急情况下广播疏散等作用。该功能要求扩声系统的声场强度略高于背景音乐,以不影响两人对面讲话为原则。2.设计规范及依据 《信息技术设备安全标准》GB4943 《电子产品现场工作可靠性、有效性和维修性数据收集 指南》《电子产品运输包装总技术条件》SJ3212-89 《视听视频和电视设备及维护与操作 安全要求》GB12641-90 《系统接地的型式及安全技术要求》GB14050-93 《民用建筑电气 设计规范》JGJ/T16-92 《公共广播系统技术规范》IEC 268 《声学名词术语》GB- 3947 《厅堂扩声系统声学特性指标》GYJ125-86 《厅堂扩声系统设备互联的优选电气配 接值》 《厅堂扩声特性的测量方法》GB/T 4959-95 《语言清晰度指数的计算方法》GB/T15485 招标文件 甲方提供的建筑平面图其他相关国家规范 SJ2112-82 3.用户需求分析 该大楼公共广播系统具有智能化系统集成的条件。系统设计时应满足以下要求: 符合我国有关部门制定的《火灾自动报警系统设计规范》( GBJ116—88)

基于51单片机的音乐播放器设计

题目:音乐播放器 课程设计(论文)任务书

摘要 随着电子技术的发展和计算机越来越普遍的使用,单片机作为这两项技术的有机结合也得到了广泛的应用,在某些领域具有不可替代的作用。音乐播放功能随处都会用到,如,在开发儿童智力的玩具中,等等。目前,基于单片机实现音乐播放,其体积小、价格低、编程灵活等特点在这一领域独领风骚。 单片机的英文名称为single chip microcomputer,最早出现在20世纪70年代,国际上现在已逐渐被微控制器(Microcontroller Unit 或MCU)一词所取代。它体积小,集成度高,运算速度快,运行可靠,功耗低,价格廉,因此在数据采集、智能化仪表、通讯设备等方面得到了广泛应用。而8051单片机在小到中型应用场合很常见,已成为单片机领域的实际标准。随着硬件的发展,8051单片机系列的软件工具也有了C级编译器和实时多任务操作系统RTOS,为单片机编程使用C语言提供了便利的条件;并针对单片机常用的接口芯片编制通用的驱动函数,可针对常用的功能模块,算法等编制相应的函数;C语言模块化程序结构特点,可以使程序模块大家共享,不断丰富,这样就使得单片机的的程序设计更简单可靠,实时性强,效率高。作为测控技术与仪器的学生,掌握8051单片机硬件基础及其相关软件操作,将其应用于现代电子产品中是必要而且重要的,这次课程设计我们的题目是用单片机实验箱系统制作音乐播放器。 本次课程设计主要内容是通过单片机C51语言进行编程,以产生乐曲音符和节拍,把乐谱翻译成计算机语言(音符转换诚成相对应的方波频率即定时器装载初值,节拍转换成相对应的延长时间),并将其预先存储到单片机里,然后根据按键调用再由单片机进行信息处理,在经过信号放大,由喇叭放出乐曲声,实现音乐播放的功能。其主要表现在可以播放十首歌曲,可以用十个数字键控制播放的歌曲,并且能在LCD液晶屏显

单片机课程设计报告--简易音乐播放器

第一章前言 伴随着科技的发展和时代的进步,人们对生活质量的要求也越来越高,由以前简单的追求温饱和物质财富转向更高层面的精神追求!而这一切催生了智能仪 器的发展,音乐则是人们娱乐生活的重要组成部分,目前市场上出现了许许多多的音乐播放器,而人们对播放器的功能需求也越来越广泛,本文将设计一个基于单片机的音乐播放器,通过对其全面的介绍与分析,让大家了解音乐播放器的原理! 第二章:简易音乐播放器的功能和原理说明 音乐播放器,可以通过单片机板子上的数字按键对音乐播放的曲目进行控制,并且通过LED灯将播放的音乐加以区分,在播放音乐的同时点亮LED 灯, 让人知道现在正在播放的音乐曲目,从而实现简单的音乐播放功能! 表1需求分析 功能说明:这次设计是依据单片机技术原理,通过硬件电路设计以及软件的编译而设计的一个简单的音乐播放器,可以通过按键选择播放四首歌曲(歌曲自选,只要将想要播放的歌曲的乐谱写入程序中即可)同时点亮相应的LED灯,并用它来指示当前播放的歌曲序列,只能实现简单的音乐播放功能。 原理说明:这个音乐播放器主要有晶振电路,复位电路,LED电路,按键 电路以及扬声器组成。它利用单片机产生乐曲音符,再把乐曲音符翻译成计算机音乐语言,接着用单片机进行信息处理,再通过蜂鸣器或喇叭放出音乐。音乐的产生主要是通过单片机的I/O 口输出高低不同的脉冲信号来控制扬声器发音。通常利用单片机的内部定时器0,工作在方式1下,再改变计数初值TH0和TL0 来产生不同频率。当控制歌曲按键按下时,按照预先存放在单片机中的程序,就

会自动判断键值,然后启动计数器,按照程序产生一定频率的脉冲,接着通过 uln2003芯片驱动扬声器,播放出乐曲。该硬件电路中用 P3.0, P3.1, P3.2, P3.3 控制四个按键,“0” , “ 1”,“2”,“3”分别控制四首音乐。P1.0,P1.1, P1.2, P1.3 控制四个LED 灯,它们分别对应四个按键,用来显示正在播放的歌曲,并用P2.3 来控制扬声器,电路为12MHz 晶振频率工作,起振电路中 C1和C2为22pf 。 第三章:系统硬件电路设计 1:硬件体系结构设计 该简易音乐播放器主要有单片机核心芯片 89C52, LED 发光二极管, 扬声器,晶振电路,按键电路,复位电路组成,通过芯片引脚输出定时器产生的 各种固定频率的方波信号,然后在经由扬声器产生各种频率的声音。 另外,该方 案使用的是单片机板子的内部振荡电路,89C52芯片的X1 , X2引脚外接石英晶 体。它的系统组成如图所示。 (1)晶振电路部分 晶振的作用是给电路提供工作信号脉冲的,其实就是单 片机的工作速度。本次设计选用 12M 晶振,则单片机的工作速度就是每 秒12M 。与此同时,也要注意单片机的工作频率范围。 当系统出现问题时可以重置系统,解决一些问题 显示系统在各种不同条件下的状态 整个设计的核心,接收和处理信号及程序 (2) 复位电路部分 (3) LED 显示部分 (4) 89C52 芯片 (5)按键电路部分 作为系统的输入

公共广播及背景音乐系统方案..

公共广播系统方案设计方案 一、公共广播系统 1、系统概述 近年来,大规模建筑工程对于公共广播系统能够具备有呼叫分配、播音、背景音乐及对不断增大的建筑物内的特定区域进行常规讯息播放的功能之要求日益增加。公共广播系统包括一般用途的日常广播(播放背景音乐、话筒寻呼广播)和紧急广播。 公共广播系统具有背景音乐广播、公共广播、火灾事故广播功能。 火灾事故广播功能作为火灾报警及联动系统在紧急状态下用以指挥、疏散人群的广播设施,在建筑弱电的设计中有举足轻重的作用。该功能要求公共广播系统能达到需要的声扬强度,以保证在紧急情况发生时,可以利用其提供足以使建筑物内可能涉及的区域的人群能清晰的听到警报、疏导的语音。 背景音乐的主要作用是掩盖噪声并创造一种轻松和谐的听觉气氛,由于扬声器分散均匀布置,无明显声源方向性,且音量适宜,不影响人群正常交谈,是优化环境的重要手段之一,在现代智能化多功能建筑中广泛应用。背景音乐(BGM)通常把记录在磁带、唱片上的BGM节目,经过BGM重放设备(磁带录音机、激光唱机等)使其输出分配到各个广播区域的扬声器,实现音乐重放。背景音乐为单声道音乐,音源的位置隐蔽,使人们不易感觉音源的位置。该功能要求扩声系统的声场强度以不影响相近人群讲话为原则。 公共广播系统在该大楼可以起到宣传、播放通知、找人、紧急情况下广播疏散等作用。该功能要求扩声系统的声场强度略高于背景音乐,以不影响两人对面讲话为原则。 2、设计规范及依据 建筑设计防火规范 GBJ16-87 火灾自动报警设计规范 GB50116-98 火灾自动报警系统施工及验收规范 GBJ50166-92 建筑平面图和技术实施纲要 《信息技术设备安全标准》 GB4943 《电子产品现场工作可靠性、有效性和维修性数据收集指南》

单片机课程设计报告利用蜂鸣器播放音乐

课程设计:嵌入式系统应用 题目名称:利用蜂鸣器实现音乐播放功能 姓名: 学号: 班级: 完成时间:

1设计的任务 设计内容:动手焊接一个51单片机 设计目标:利用单片机上的蜂鸣器实现音乐播放功能 2 设计的过程 2.1 基本结构 1.STC89C52RC 在本次的试验中采用了STC89C52RC单片机,STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期,工作电压:5.5V~3.3V(5V单片机)/3.8V~ 2.0V(3V单片机),工作频率范围:0~40MHz,相当于普通8051的0~80MHz, 实际工作频率可达48MHz,用户应用程序空间为8K字节。 (STC89C52RC引脚图) STC89C52RC单片机的工作模式: (1)典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序(2)空闲模式:典型功耗2mA (3)正常工作模式:典型功耗4Ma~7mA (4)唤醒,适用于水表、气表等电池供电系统及便携设备 2.蜂鸣器及其工作原理: 蜂鸣器按其结构分主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产 生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。

本实验采用的是电磁式蜂鸣器。 蜂鸣器按其是否带有信号源又分为有源和无源两种类型。有源蜂鸣器只需要在其供电端加上额定直流电压,其内部的震荡器就可以产生固 定频率的信号,驱动蜂鸣器发出声音。无源蜂鸣器可以理解成与喇叭一 样,需要在其供电端上加上高低不断变化的电信号才可以驱动发出声音。 本实验采用的是有源蜂鸣器。 (蜂鸣器与单片机连接电路图) 2.2 软件设计过程 1.蜂鸣器发声原理 本实验由于采用有源蜂鸣器,只需将引脚端口P3^4清零,蜂鸣器即可发声;P3^4置位,蜂鸣器停止发声。采用置1置0的方法只 能使蜂鸣器发声或停止发声,想要使蜂鸣器发出声音,必须对蜂鸣 器发出声音的音频和节拍进行控制。 (音乐基础 音调: 不同音高的乐音是用C、D、E、F、G、A、B来表示,这7个字母就是音乐的音名,它们一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱

酒店公共广播和背景音乐系统方案

酒店公共广播和背景音乐 系统方案

酒店公共广播和背景音乐系统方案 壹、概述 公共广播系统作为主要的信息传播工具之壹,已成为众多场所正常运转的壹个必不可少的系统。数控公共广播系统从传统的单纯播放磁带、领导讲话,发展到当下和闭路电视系统、计算机网络的结合,已成为企业智能建设的壹个重要工程。RAX数控公共广播系统除了在生产作业时是中央的信息传播工具外,更是人民生活气氛更和谐的壹种能调节人的生活情趣的壹种工具. RAX数控公共广播是专为酒店等公共场所/高级住宅区提供背景音乐、广播的专业设备,且设备齐全,技术先进,产品多元化,通过了中国电器产品强制3C认证;品质优秀,技术先进,且可提供可靠的技术支持、人员培训及售后服务。 RAX数控背景音乐系统主要对酒店、小区、会所等公共区域进行背景音乐广播,且主机对今后的扩容预留接口。 二、系统设计 2.1设计标准 公共广播系统按中华人民共和国JGJ/T16-92《民用建筑电气设计规范》对有线广播和事故广播的设计、安装标准进行设计,且提供系统设计声学技术指标。 根据甲方建筑图纸提供的室内、户外尺寸,采用规范的设计系统软件进行广播系统的声学设计,保证广播系统是有良好的技术指标。 ★JGJ/T16-92《民用建筑电气设计规范》 ★GBJ232-82《电气装置安装工程施工及验收标准规范》 ★GBJ300-8《建筑安装工程质量检验评定统壹标准》 ★GBJ116-88《火灾自动报警设计规范》 ★GBJ50166-92《火灾自动报警系统施工及验收规范》 ★RAX数字信息公共广播产品手册 2.2系统组成 本系统主要由电源控制设备、音源、功率放大器、扬声器终端以及消防联动等几部分组成(具体组成结构详见原理框图)。 2.3方案设计要点 1.满足甲方对设备的技术要求;

单片机播放音乐的基本知识

单片机播放音乐的基本知识 用单片机播放音乐,或者弹奏电子琴,实际上是按照特定的频率,输出一连串的方波。为了输出合适的方波,首先应该知道音符与频率的关系。 1.音名 从常见的电子琴的键盘谈起。 在下表中,可以看到一列黑白相间的琴键(示意)。主要分成低音、中音和高音三个区域,每个区域都有12个琴键。其中的白键,简谱音符标为1、2、3、4、5、6、7,大家一般都读成哆、来、咪、发、嗦、拉、西。 2.频率 注意看一下几个6(拉)的频率,它们是整数,容易看出规律――是成2倍的关系。其它的音符,也有同样的规律。这些频率,如220、440等,它们在琴键上的位置是世界统一的,无论是钢琴、手风琴,还是电子琴,都是一样的。 包括黑键和白键在内的全部音符的频率数值,是成“等比数列”的关系,它们之间有个公比,可以按照“2倍”的规律推算出来。 已知最低音的6(拉)的频率是220,设公比为q,那么:7的频率就是220*q*q 。 乘了两个q,是因为6、7之间隔了个黑键。以此类推,两个6之间,共有12个琴键,所以: 低音区的6(拉)的频率就是:220*q*q*q*q*q*q*q*q*q*q*q*q = 440。 马上就可以看出,12个q相乘,等于:440 / 220 = 2。 那么就可以求出公比:q = 2的12次方根= 1.059463094。 用这个公比,和已知的220进行计算,可以得出全部琴键所对应的频率,如下表中所示。3.定时初值 频率的倒数是周期,用单片机输出方波,应该在半个周期的时刻,将输出取反。 设单片机的晶振为12MHz,那么定时器将在1us进行一次加一,加到65536就会出现中断。据此,就可计算出定时器定时半个周期所需的初值,如下表中所示。

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