蜂鸣器播放6种声音

蜂鸣器播放6种声音
蜂鸣器播放6种声音

蜂鸣器播放6种声音

2010-04-11 16:36

蜂鸣器播放6种声音

//6个按键播放声音

#include

#define uchar unsigned char //byte

#define uint unsigned int //word

sbit bu6=P3^7; //定义一个按键,一端接地,一端接端口sbit bu5=P3^6; //定义一个按键,一端接地,一端接端口sbit bu4=P3^5; //定义一个按键,一端接地,一端接端口sbit bu3=P3^4; //定义一个按键,一端接地,一端接端口sbit bu2=P3^3; //定义一个按键,一端接地,一端接端口sbit bu1=P3^2; //定义一个按键,一端接地,一端接端口

sbit led1=P0^0;

sbit led2=P0^1;

sbit buzzer=P2^3; //蜂鸣器

void delay(int);

void pulse_BZ(int,int,int);

void main(void)

{

while(1)

{ int i;

bu6=1; //初始化按键高电平

bu5=1; //初始化

bu4=1; //初始化

bu3=1; //初始化

bu2=1; //初始化

bu1=1; //初始化

while(1) //当一个按键被按下,为0,跳出循环

{

if(!bu6||!bu5||!bu4||!bu3||!bu2||!bu1)

for(i=0;i<=1000;i++); //防抖动

if(!bu6||!bu5||!bu4||!bu3||!bu2||!bu1) break;

}

if(!bu6) //蜂鸣器发音。如果有歌谱,可以写歌曲函数{ pulse_BZ(10,10,10); }

if(!bu5) //蜂鸣器发音。如果有歌谱,可以写歌曲函数

{ pulse_BZ(50,50,50); }

if(!bu4) //蜂鸣器发音。如果有歌谱,可以写歌曲函数

{ pulse_BZ(100,10,100); }

if(!bu3) //蜂鸣器发音。如果有歌谱,可以写歌曲函数

{ pulse_BZ(100,100,10); }

if(!bu2) //蜂鸣器发音。如果有歌谱,可以写歌曲函数

{ pulse_BZ(100,30,70); }

if(!bu1) //蜂鸣器发音。如果有歌谱,可以写歌曲函数

{ pulse_BZ(100,70,30); }

}

}

/******************************************************/ /* Buzzer模块 */

/*声明:sbit buzzer=P2^3; void pulse_BZ(int,int,int);*/ /******************************************************/ void pulse_BZ(int count, int TH,int TL)

{

int i;

for(i=0;i

{ buzzer=1;

delay(TH); //延时TH个0.5ms

buzzer=0;

delay(TL); //延时TL个0.5ms

}

}

/**************************************************/

/* 延时模块声明:void delay(int); */

/**************************************************/ void delay(int x) //如 delay(1000),延时1s

{

int i,j;

for(i=0;i

for(j=1;j<=125;j++); //延时约1ms

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

#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,

蜂鸣器歌唱原理以及代码

3.3 蜂鸣器播放歌曲原理 一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率。因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和“节拍”。音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。 1)音调的确定 音调就是我们常说的音高。它是由频率来确定的!我们可以查出各个音符所对应的相应的频率,那么现在就需要我们来用51来发出相应频率的声音!我们常采用的方法就是通过单片机的定时器定时中断,将单片机上对应蜂鸣器的I/O口来回取反,或者说来回清零,置位,从而让蜂鸣器发出声音,为了让单片机发出不同频率的声音,我们只需将定时器予置不同的定时值就可实现。 2)节拍的确定 一般说来,如果乐曲没有特殊说明,一拍的时长大约为400—500ms 。 3.3 蜂鸣器播放歌曲程序 #include sbit speaker = P1^5; //定义蜂鸣器端口 unsigned char timer0h, timer0l, time; //-------------------------------------- //单片机晶振采用11.0592MHz

// 频率-半周期数据表高八位本软件共保存了四个八度的28个频率数据code unsigned char 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 // 频率-半周期数据表低八位 code unsigned char FREQL[] = { 0x42, 0xC1, 0x17, 0xB6, 0xD0, 0xD1, 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 //-------------------------------------- //世上只有妈妈好数据表要想演奏不同的乐曲, 只需要修改这个数据表 code unsigned char sszymmh[] = { 6, 2, 3, 5, 2, 1, 3, 2, 2, 5, 2, 2, 1, 3, 2, 6, 2, 1, 5, 2, 1, //一个音符有三个数字。前为第几个音、中为第几个八度、后为时长(以半拍为单位)。 //6, 2, 3 分别代表:啦, 中音, 3个半拍; //5, 2, 1 分别代表:嗦, 中音, 1个半拍; //3, 2, 2 分别代表:咪, 中音, 2个半拍; //5, 2, 2 分别代表:嗦, 中音, 2个半拍; //1, 3, 2 分别代表:哆, 高音, 2个半拍; 6, 2, 4, 3, 2, 2, 5, 2, 1, 6, 2, 1, 5, 2, 2, 3, 2, 2, 1, 2, 1, 6, 1, 1, 5, 2, 1, 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}; //-------------------------------------- void t0int() interrupt 1 //T0中断程序,控制发音的音调 { TR0 = 0; //先关闭T0 speaker = !speaker; //输出方波, 发音 TH0 = timer0h; //下次的中断时间, 这个时间, 控制音调高低 TL0 = timer0l; TR0 = 1; //启动T0 } //-------------------------------------- void delay(unsigned char t) //延时程序,控制发音的时间长度 { unsigned char t1; unsigned long t2;

单片机蜂鸣器播放音乐

#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, //<<兰花草>>

几种立体声录音的拾音方法

几种立体声录音方法 一、A/B制式 首先我来介绍一下A/B制式,A/B制式是最早采用的录制立体声的方法,有人形象的称它为拉开距离式拾音方法。两支传声器在舞台上或者录音室里拉开2.0-3.5米的距离,传声器可以是无方向性的也可以是心形的,它们平行地对准乐队,也可以稍微向左右两侧张开一些。 对A/B制式拾音来说,每一件乐器(声源)到达两支传声器处的声音信号之间,既存在强度差也存在时间差。强度差是由传声器的指向性图形以及声源到达两支传声器的距离不同所形成的。在这种录音制式中,强度差和时间差对定向的作用迭加在一起了。很明显,对于不再中轴线上的声源,前导的声道始终是声级较高的声道。心理声学的研究,时间差比强度差更加的重要。这种制式的特点是简单,对所使用的一对传声器,在性能和技术指标配对上要求并不太严格。 这种拾音制式有两个明显的缺陷:一是存在中间空洞,中间稀疏或者称为中间后退现象。就是说当重放用A/B制式所录的音乐的时候,听众往往回感到中间部位乐器的声象变弱,或者这些乐器的声象在中间部位变得稀疏起来,而更多的乐器声象向左右扬声器方向靠拢,使得两端乐器声象密集起来。有时,也使听众感到中间部位的声象向舞台后部退去。 对于这种缺陷,可以借助两种方法来改善。一种方法是在录音的时候增加一个中间传声器,把它的信号放大,再分别分配到左右声道中去。另外一种方法是再重放时增加一个中置扬声器,而将左右声道信号各分一部分给此扬声器放声。 上述缺陷在两支当传声器拉开2.5-3.5米以上时,将变得相当明显。 当然,放声时如果将两支扬声器朝向稍微向听音室中间偏转一点,中间空洞现象也有些改善。~~~~~~一句老话~~~~办法是人想出来的嘛! A/B制式还有一个很明显的缺陷就是,它的录音在作单声道兼容重放时,将存在相位干涉现象,因而兼容度很低~~~~~对于中国现在的电视基于单声道来说,就应该注意咯! 这是很容易加以说明的,当作单声道兼容重放时,必须把左右声道信号迭加在一起才能形成单声道信号。由于左右内同一声音信号中存在时间差,也就是存在相应的相位差,因而在迭加时,必然会使某些频率的信号抵消或者部分抵消,从而使重放音质变恶劣。一些专门的试验结果表明,A/B制式两支传声器拉开仅30厘米的时候,就已经出现明显的相位抵消现象,因为这个距离已经相当于中,高频声音信号的λ/2或n.λ/2了。此时,作单声道兼容收听的大多数听众,都能听出这种这种音质的变劣。 试验还说明:当某一频率的声音信号在左右声道间有6db以上的强度差时,则兼容放声的相位差不会引起明显的相位干涉现象,因而不会明显损害收听音质。 许多录音室反映如果不考虑单声道兼容放声,他们更愿意使用A/B制式来录制古典音乐,因为这种制式录

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;

声音播放的几种妙招

声音播放的几种妙招 神木职教中心杜国金 电化教学或者叫多媒体教学已经被广大教师普遍采用,它利用声音,图片,视频等资料使得课堂生动活泼,更好的表现一堂课的内容,使学生学习兴趣大大提高。而在这几种媒体中,声音播放是使用频率最高的。比如语文课播放朗读带,英语课播放示范带,音乐课播放音乐欣赏曲子,体操比赛排练等。以前教师们大都使用录音机,然而由于现在很多音频资源已经没有录音带,而是以网上mp3的形式存在,这样传统录音机就基本上被淘汰。现在很多教师都采用网上下载音频资料存放在笔记本上,上课时再携带一个有源音箱,将它们连接在一起使用。虽然效果不错,但是笔记本未必人人都有。而且笔记本加一套有源音箱体积比较大,不便携带。更何况拿笔记本只是播放音频,显然是杀鸡用了宰牛刀,并且必须有电才行。综合以上问题,本人经过思考以及实际试用,总结出以下三种巧妙的播放音频的办法。 一、mp3+有源音箱 这个方法是对电脑加有源音箱的改进,抛弃了电脑,使得整套体积大大减小,便于携带,而且mp3几乎人人都有,且mp3本身就是专门播放音频的设备,音值不错。使用方法也很简单,将要播放的音频资料存入mp3,再将有源音箱音频输入插头插入mp3的耳机插孔,这样就可以播放了。有的读者看到这可能会想,把有源音箱换成无源音箱不就更可以减小体积了吗,实际使用发现不能换成无源音箱,有源音箱和无源音箱的区别是有源音箱要外接电源,内部有功率放大电路,因此音量较大。而无源音箱没有放大电路,直接使用音源带动,因此音量很小无法满足整个教室的需要。此方法的优点:音质好,便于操作。缺点:体积仍然较大,而且必须要有电,一旦遇到停电或没有电的环境就无法使用。 二、复读机 几年前复读机还很流行,很多人都有,而随着mp3、mp4等网络播放器的流行,复读机渐渐被淘汰,然而本人发现用复读机在教室等较小环境中播放音频还是不错的。复读机一般使用4节电池6伏电压,音量较大。但这里存在一个问题,复读机使用的是磁带,而现在很多音频资源是mp3形式的,如何让复读机播放mp3音频呢,那就要把mp3声音首先录制到磁带上,录制时不能使用外录,效果太差。要实现电脑与复读机之间的内录,必须使用一根内录线,这根线两头一样都是3.5mm插头,也就是普通耳机插头,有的电器或音响门市有卖,动手能力强的也可以自己制作。用两根线将两个插头芯线和地线一一对应焊接即可。然后将内录线一头插在电脑音频输出,另一头插在复读机mic也就是麦克风插口或音频输入插口,然后电脑播放音频并且音量放大,复读机录音。录完后试听效果,如果音量太大或者太小调整电脑播放音量重新录制。此方法的优点:体积最小,携带方便,而且由于使用电池,因此不受有无电源的影响。缺点:录制过程较麻烦,而且音量放大时音值不佳。 三、手机+喊话器 每年新生入校后都要进行军训,军训时每个班都买了喊话器,然而军训结束后,喊话器就没有用武之处了,闲置也是一种浪费。另一方面手机人人都有,而且基本上都具有mp3播放功能,把网上的mp3音频下载到手机就可以直接播放,只是音量较小不足以在整个教室使用。现在将这两样东西组合使用,就是很好的搭配。上课前把要播放的mp3下载到手机,使用时用手机播放,用喊话器放大即可。此方法的优点:简单易行,音量较大,而且不使用外接电源。缺点:喊话器音值较差。 以上方法是经本人思考和实际使用后得出的经验结论,既方便又把某些闲置的东西利用起来,比较实用。大家可以选择适合自己的方法,以改进自己的教学。

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

课程设计:电子设计 题目名称:音乐流水灯 姓名:戴锦超 学号: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清

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

实验三-利用蜂鸣器演奏音乐 一、实验目的 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

PowerPoint中插入声音的几种方法

PowerPoint中插入声音的几种方法 (一)将某段音乐作为整个演示文稿的背景音乐 如果用PowerPoint制作电子相册、画册时,人们不仅仅要欣赏精美的画面,还希望听到美妙动听的音乐。我们可以在第一张幻灯片上进行如下操作: 1.准备好一个音乐文件,可以是WAV、MID或MP3文件格式。 2.执行“插入”菜单下的“影片和声音”选项中的“文件中的声音”,插入你选择的声音文件,同时弹出对话框,询问是否在放映幻灯片时自动播放该声音文件,选择“是”。则幻灯片上有一个“喇叭”图标出现。 3.用鼠标右击该“喇叭”图标,在弹出的快捷菜单中选择“自定义动画”。 4.在“自定义动画”对话框的“多媒体设置”选项卡中,作如下设置: 播放时:选“继续幻灯片放映” 停止播放:选“在XX张幻灯片之后”,具体在第几张幻灯片之后,要视你的相册或画册中的幻灯片张数而定,比如总张数为20,则此处输入“20”。 然后,单击该选项卡上的“其他选项…”按钮,在弹出的对话框中选择“循环播放,直到停止”,然后依次单击“确定”按钮,关闭

各对话框。 在用PowerPoint制作课件时加入解说词 如果我们希望在播放到某一张幻灯片时,自动播放该张幻灯片的解说词,可以采用如下的方法: 1.首先录制好该张幻灯片的解说词,并保存为声音文件。 2.选择你要加入解说词的幻灯片作为当前操作的幻灯片,执行“幻灯片放映”菜单下的“幻灯片切换”命令。 3.在弹出的“幻灯片切换”对话框中,进行如下操作: 在“声音”的下拉列表中,选择“其它声音…”,在随后出现的“添加声音”对话框中选择你已录制好的声音文件,单击“确定”,关闭“添加声音”对话框,然后单击“应用”,关闭“幻灯片切换”对话框。 如果我们希望演示者自己根据情况决定是否播放声音,可以制作交互按钮来控制声音的播放或停止。这一方法在课件制作中经常使用。具体的操作步骤如下: 1.首先录制好该张幻灯片的解说词,并保存为声音文件。 2.选择你要加入解说词的幻灯片作为当前操作的幻灯片,在幻灯片上加入两个自定义按钮,并分别在上面加入文字“播放声音”和“停止播放声音”。 3.用鼠标右击“播放声音”按钮,在弹出的快捷菜单中选择“动作

几种立体声录音的拾音方法

几种立体声录音方法 一、A/B制式首先我来介绍一下A/B制式,A/B制式是最早采用的录制立体声的方法,有人形象的称它为拉开距离式拾音方法。 两支传声器在舞台上或者录音室里拉开 2.0- 3.5米的距离,传声器可以是无方向性的也可以是心形的,它们平行地对准乐队,也可以稍微向左右两侧张开一些。 对A/B制式拾音来说,每一件乐器(声源)到达两支传声器处的声音信号之间,既存在强度差也存在时间差。 强度差是由传声器的指向性图形以及声源到达两支传声器的距离不同所形成的。 在这种录音制式中,强度差和时间差对定向的作用迭加在一起了。 很明显,对于不再中轴线上的声源,前导的声道始终是声级较高的声道。 心理声学的研究,时间差比强度差更加的重要。 这种制式的特点是简单,对所使用的一对传声器,在性能和技术指标配对上要求并不太严格。 这种拾音制式有两个明显的缺陷: 一是存在中间空洞,中间稀疏或者称为中间后退现象。 就是说当重放用A/B制式所录的音乐的时候,听众往往回感到中间部位乐器的声象变弱,或者这些乐器的声象在中间部位变得稀疏起来,而更多的乐器声象向左右扬声器方向靠拢,使得两端乐器声象密集起来。 有时,也使听众感到中间部位的声象向舞台后部退去。 对于这种缺陷,可以借助两种方法来改善。

一种方法是在录音的时候增加一个中间传声器,把它的信号放大,再分别分配到左右声道中去。 另外一种方法是再重放时增加一个中置扬声器,而将左右声道信号各分一部分给此扬声器放声。 上述缺陷在两支当传声器拉开 2.5- 3.5米以上时,将变得相当明显。 当然,放声时如果将两支扬声器朝向稍微向听音室中间偏转一点,中间空洞现象也有些改善。 ~~~~~~一句老话~~~~办法是人想出来的嘛!A/B制式还有一个很明显的缺陷就是,它的录音在作单声道兼容重放时,将存在相位干涉现象,因而兼容度很低~~~~~对于中国现在的电视基于单声道来说,就应该注意咯!这是很容易加以说明的,当作单声道兼容重放时,必须把左右声道信号迭加在一起才能形成单声道信号。 由于左右内同一声音信号中存在时间差,也就是存在相应的相位差,因而在迭加时,必然会使某些频率的信号抵消或者部分抵消,从而使重放音质变恶劣。 一些专门的试验结果表明,A/B制式两支传声器拉开仅30厘米的时候,就已经出现明显的相位抵消现象,因为这个距离已经相当于中,高频声音信号的λ/2或n.λ/2了。 此时,作单声道兼容收听的大多数听众,都能听出这种音质的变劣。 试验还说明: 当某一频率的声音信号在左右声道间有6db以上的强度差时,则兼容放声的相位差不会引起明显的相位干涉现象,因而不会明显损害收听音质。

Arduino控制蜂鸣器播放音乐设计说明书

目录 一、新媒体装置艺术 1、作品原理介绍 (1) 2、作品设计的意义 (1) 3、作品的主要内容 (1) 4、制作方法和流程 (1) 5、成果 (9) 6、价值和影响 (9) 7、创新点 (10) 二、结论 8、技术方面 (10) 9、艺术方面 (10) 10、不足及展望 (11) 11、谢辞 (11)

设计说明书 一、作品原理介绍: 能感应到物体靠近并且低于50CM时,蜂鸣器发出音乐,并且小灯泡随着音乐节奏变化。 二、作品设计意义: 将它应用到图书馆或者购物的地方,当人们靠近的时间能只能朗读出这一栏或者这一块区域有什么东西,能够更加让人们更快速的找到自己需要的东西,很大程度上节约的时间!也可以应用到车上,当开车的人快要和前面或者后面的物体撞上的时候,会发出声音来提醒你,从而给生命和财产加上保护套。 三、作品主要内容: 1、Arduino控制蜂鸣器播放音乐、小灯泡。 2、小灯泡跟随蜂鸣器的音乐节奏变化。 3、当物体离超声波低于50CM时发出指令,控制蜂鸣器、 小灯泡。 四、制作方法和流程: adruinouno一块(其他Arduino板子也可,注意引脚就行),面保线若干条,蜂鸣器或小喇叭一个。 原理: 首先讲下简单的乐理知识,知道音乐是怎么演奏出来的自然就可以通过代码来进行编排了。

1.演奏单音符的原理 一首音乐由若干音符组成,每一个音符唯一对应一个频率。如果我们知道了音符相对应的频率,再让 Arduino 按照这个频率输出到蜂鸣器或喇叭,蜂鸣器或喇叭就会发出相应频率下的声音。 Arduino官方网站给出了不同音符对应的不同频率的头文件,具体请见下文介绍。 2.音符演奏的持续时间 每个音符都会播放一定的时间,这样才能构成一首优美的曲子,而不是每个音符都播放一样长的时间。如何确定每个音符演奏的单位时间呢?我们知道,音符节奏分为1拍、1/2拍、1/4拍、1/8拍等等,我们规定一拍音符的时间为1;半拍为0.5;1/4拍为0.25;1/8拍为0.125……,所以我们可以为每个音符赋予这样的拍子播放出来,音乐就成了。 制作过程:所需硬件:Arduino板子一块,小型扬声器/蜂鸣器一个,导线两根。如果扬声器声音太大,也可适当配置220欧姆电阻一个与扬声器串联。 我们将扬声器一端串联电阻后接到数字6接口,另一端接地(GND)。数字接口可以自己选择,只是在代码中要对应修改一下。 函数的参数说明: pin: 你要接扬声器的接口,是整数(int 型) frequency:频率,是一个整数(int 型) duration: 音符持续的时间,是毫秒值,无符号长整型

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

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

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,即唱

PPT中插入声音的几种方法

重剑无锋 大巧不工 PPT中插入声音的几种方法 (一)将某段音乐作为整个演示文稿的背景音乐 如果用PowerPoint制作电子相册、画册时,人们不仅仅要欣赏精美的画面,还希望听到美妙动听的音乐。我们可以在第一张幻灯片上进行如下操作:- 1.准备好一个音乐文件,可以是W A V、MID或MP3文件格式。- 2.执行“插入”菜单下的“影片和声音”选项中的“文件中的声音”,插入你选择的声音文件,同时弹出对话框,询问是否在放映幻灯片时自动播放该声音文件,选择“是”。则幻灯片上有一个“喇叭”图标出现。- 3.用鼠标右击该“喇叭”图标,在弹出的快捷菜单中选择“自定义动画”。- 4.在“自定义动画”对话框的“多媒体设置”选项卡中,作如下设置:- 播放时:选“继续幻灯片放映”- 停止播放:选“在XX张幻灯片之后”,具体在第几张幻灯片之后,要视你的相册或画册中的幻灯片张数而定,比如总张数为20,则此处输入“20”。- 然后,单击该选项卡上的“其他选项…”按钮,在弹出的对话框中选择“循环播放,直到停止”,然后依次单击“确定”按钮,关闭各对话框。 - (二)在用PowerPoint制作课件时加入解说词 如果我们希望在播放到某一张幻灯片时,自动播放该张幻灯片的解说词,可以采用如下的方法:- 1.首先录制好该张幻灯片的解说词,并保存为声音文件。- 2.选择你要加入解说词的幻灯片作为当前操作的幻灯片,执行“幻灯片放映”菜单下的“幻灯片切换”命令。- 3.在弹出的“幻灯片切换”对话框中,进行如下操作:- 在“声音”的下拉列表中,选择“其它声音…”,在随后出现的“添加声音”对话框中选择你已录制好的声音文件,单击“确定”,关闭“添加声音”对话框,然后单击“应用”,

单片机蜂鸣器播放音乐

#include #define uchar unsigned char #define uint unsigned int sbit sp eaker = P1^7; uint j; uchar m=1; uchar flag; uchar line; uchar code * data song; // 中4 高3 中5 休止 符 低6 中7 低7 高1 中1 低3 中2 低5 中3 低4 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, //<< 兰花草>>

系统声音播放不正常 解决方法之一

【适用范围】: windows xp,windows vista,windows 7 【问题描述】:Windows系统声音播放功能不正常,常见问题包括: 1. Windows 开机、关机没有声音; 2. 视频播放时,声音和画面不同步; 3. 视频播放时,有图像没有声音; 4. CF 穿越火线,游戏内,脚步没有声音 5. 本地音乐有声音,但网上(网页上)的视频,播放时候没有声音 【解决方案】: 原因分析:此类问题,从根本上可以归结为:声音播放不正常,深层次的说,就是:系统中的音频解码,出现了故障。 简单解释一下,Windows系统中,声音和视频,都是有自己的“编码”的,比如MP3,就可以姑且算是一种音频(声音)编码,对应的视频编码,常见的有 mpeg-1 每种编码,在播放(正常使用)时,都需要有对应的解码,也就是解码器。只有解码器正常工作,才能正常的播放声音、播放视频画面。 解决方案: 针对本文提到的 5 种典型故障,解决方案 2 个步骤: 1. 使用附件中的 netvol.reg 文件,双击导入用户系统中。 注意:必须确保是完全导入,如果系统提示错误,只是部分导入,建议使用 LA 来导入此注册表; 2. 安装:完美解码,这款软件。从名称上应该可以猜到,完美解码,自然就是各种解码器的集合,包括了绝大多数常见的音频和视频解码。前面解释过了,声音播放不正常,可能的原因就是解码器对应文件出现异常,重新安装下就是了。 下载地址:https://www.360docs.net/doc/3110495537.html,/html/19.html

官方网站:官网有时候上不去,如果能上去,建议还是从官方网站下载最新版本:https://www.360docs.net/doc/3110495537.html,/ 附件:步骤1的注册表文件:netvol-开关机-网页没声音问题.rar

51单片机蜂鸣器播放单音节音乐

51单片机的唱歌实验 晶振:11.0592MHZ 程序: #include #define uchar unsigned char bit flag; //标志音乐输出脚电平的高低 uchar ptr = 0x00; //取音符 uchar high; //计数器高位 uchar low; //计数器低位 // 本曲谱为"新年好",前两个十六进制表示发声频率,后一个表示发声时间,0xFF,0xFF 表示休止符 // 0x00 表示结束 // 1 _ 1_ 1 .5 uchar code music[] = { 0xFC,0x44,0x7F, 0xFC,0x44,0x7F, 0xFC,0x44,0xFF, 0xFA,0x68,0xFF, // 3 _ 3_ 3 1 0xFD,0x23,0x7F, 0xFD,0x23,0x7F, 0xFD,0x23,0xFF, 0xFC,0x44,0xFF, // 1_ 3_ 5 5 0xFC,0x44,0x7F, 0xFD,0x23,0x7F, 0xFD,0x82,0xFF, 0xFD,0x82,0xFF, // 4_ 3_ 2 - 0xFD,0x23,0x7F, 0xFD,0x23,0x7F, 0xFC,0xAC,0xFF, 0xFF,0xFF,0xFF, // 2_ 3_ 4 4 0xFC,0xAC,0x7F, 0xFD,0x23,0x7F, 0xFD,0x34,0xFF, 0xFD,0x34,0xFF, // 3_ 2_ 3 1 0xFD,0x23,0x7F, 0xFC,0xAC,0x7F, 0xFD,0x23,0xFF, 0xFC,0x44,0xFF, // 1_ 3_ 2 .5 0xFC,0x44,0x7F, 0xFD,0x23,0x7F, 0xFC,0xAC,0xFF, 0xFA,0x68,0xFF, // .7_ 2_ 1 - 0xFC,0x0C,0x7F, 0xFC,0xAC,0x7F, 0xFC,0x44,0xFF, 0xFF,0xFF,0xFF, 0x00//结束 }; void Init(void); //初始化函数 void DelayMs(unsigned int time); //毫秒级延时函数 void main() { uchar time; Init(); TH0 = high; TL0 = low; while (1) {

播放声音的方法

播放声音的方法.txt你出生的时候,你哭着,周围的人笑着;你逝去的时候,你笑着,而周围的人在哭!喜欢某些人需要一小时,爱上某些人只需要一天,而忘记一个人得用一生播放声音的方法 内容提要 本文讨论了在VC++中播放声音文件的几种不同方法,并提供了具体的实现例句。 关键词 声音文件音频设备播放多媒体 文章正文 声音是多媒体的一个重要组成部分,在应用程序中加入声音可以使界面更友好。在VC++中可以根据不同的应用要求,用不同的方法实现声音的播放。 一.播放声音文件的简单方法 在VC++ 中的多媒体动态连接库中提供了一组与音频设备有关的函数。利用这些函数可以方便地播放声音。最简单的播放声音方法就是直接调用VC++中提供的声音播放函数BOOL sndPlaySound ( LPCSTR lpszSound,UINT fuSound ); 或BOOL PlaySound( LPCSTR lpszSound, HMODULE hmod, DWORD fuSound );其中参数lpszSound是需要播放声音的.WAV文件的路径和文件名, hmod在这里为NULL,fuSound是播放声音的标志,详细说明请参考VC++中的帮助。例如播放C:\sound\music.wav可以用sndPlaySound ("c:\\sound\\music.wav",SND_ASYNC);或PlaySound("c:\\sound\\music.wav",NULL, SND_ASYNC|SND_NODEFAULT );如果没有找到music.wav文件,第一种格式将播放系统默认的声音,第二种格式不会播放系统默认的声音。 二.将声音文件加入到程序中 在VC++的程序设计中,可以利用各种标准的资源,如位图,菜单,对话框等。同时VC++也允许用户自定义资源,因此我们可以将声音文件作为用户自定义资源加入程序资源文件中,经过编译连接生成EXE文件,实现无.WAV文件的声音播放。 要实现作为资源的声音文件的播放,首先要在资源管理器中加入待播放的声音文件(实现过程并不复杂,这里不在叙述)。假设生成的声音文件资源标识符为IDR_WAVE1。在播放时只需要调用下面的语句: PlaySound(MAKEINTRESOURCE(IDR_WAVE1),AfxGetResourceHandle(), SND_ASYNC|SND_RESOURCE|SND_NODEFAULT|SND_LOOP); 其中MAKEINTRESOURCE()宏将整数资源标识符转变为字符串,AfxGetResourceHandle()函数返回包含资源的模块句柄, SND_RESOURCE是必须的标志。 作为资源的声音文件的第二种播放方法是把资源读入内存后作为内存数据播放。具体步骤入下: 1.获得包含资源的模块句柄: HMODULE hmod=AfxGetResourceHandle(); 2.检索资源块信息: HRSRC hSndResource=FindResource(hmod,MAKEINTRESOURCE(IDR_WAVE1),_T("WAVE")); 3. 装载资源数据并加锁: HGLOBAL hGlobalMem=LoadResource(hmod,hSndResource); LPCTSTR lpMemSound=(LPCSTR)LockResource(hGlobalMem); 4.播放声音文件:

相关文档
最新文档