单片机蜂鸣器波放音乐怎样区分乐谱有几个半拍

作者&投稿:错皆 (若有异议请与网页底部的电邮联系)
单片机用蜂鸣器播放音乐、懂得音乐乐谱并且会转化成16进制数组的来。~

关16进制数什么事啊,你要把乐谱上对应的音高用相应的频率去输出http://wenku.baidu.com/view/e1f7a551f01dc281e53af02a.html 这个是音高频率表然后把频率算成周期,然后用自动重装的定时器,每次定时到了就翻转一下单片机得输出引脚

声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单处机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调。要准确奏出一首曲子,必须准确地控制乐曲节奏,即一音符的持续时间。音符的节拍我们可以用定时器T0来控制,送入不同的初值,就可以产生不同的定时时间。便如某歌曲的节奏为每分钟94拍,即一拍为0.64秒。其实就是一个控制单片机节拍的问题,如果想要51的具体程序,网上很多,没找到可以给我留言,我给你。

/*【音符频率对应表 】

音符 频率/HZ 半周期/us(N)
--------------------------------
低1DO 262 1908 #1DO# 277 1805
低2RE 294 1700 #2RE# 311 1608
低3MI 330 1516 #3MI# 340 1470
低4FA 349 1433 #4FA# 370 1350
低5SO 392 1276 #5SO# 415 1205
低6LA 440 1136 #6LA# 466 1072
低7SI 494 1012 #7SI# 524 0954

中1DO 523 0956 #1DO# 554 0903
中2RE 578 0842 #2RE# 622 0804
中3MI 659 0759 #3MI# 682 0733
中4FA 698 0716 #4FA# 740 0676
中5SO 784 0638 #5SO# 831 0602
中6LA 880 0568 #6LA# 932 0536
中7SI 988 0506 #7SI# 1046 478

高1DO 1046 478 #1DO# 1109 451
高2RE 1175 426 #2RE# 1245 402
高3MI 1318 372 #3MI# 1356 368
高4FA 1397 358 #4FA# 1480 338
高5SO 1568 319 #5S0# 1661 292
高6LA 1760 284 #6LA# 1865 268
高7SI 1976 253 #7SI# 2066 242
---------------------------------
("#"表示半音,用于上升半个音) */

/*------------------------------------------------*/
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#define uint unsigned int
#define uchar unsigned char
sbit SPK=P1^2; //定义喇叭端口
unsigned int i; //定义全局变量
uchar table[14]={ //中音音阶对应定时器初值
0xfc,0x44, //1
0xfc,0xb6, //2
0xfd,0x09, //3
0xfd,0x34, //4
0xfd,0x82, //5
0xfd,0xc8, //6
0xfe,0x06 //7
};
/******************************************************************/
/* 延时函数声明 */
/******************************************************************/
void delayms(unsigned int xms) //毫秒延时
{
uint i,j;
for(i=xms;i>0;i--)
for(j=125;j>0;j--);
}

void init() //定时器初始化函数
{
TMOD|=0x01; // 定时器工作方式,定时器0作定时用
TH0=table[0]; //定时器赋音阶1对应初值,高位0xfc,低位0x44
TL0=table[1];
ET0=1; // 定时器0允许
EA=1; //开总中断

}
/******************************************************************/
/* 主函数 */
/******************************************************************/
main()
{

init(); //定时器初始化
while(1)
{

for(i=0;i<7;i++) //循环播放7个音阶
{
TR0=1; //打开定时器0,开始计时,产生喇叭驱动频率
delayms(500); //每个音阶大致持续播放时间
TR0=0; //停止计时
delayms(1000); //喇叭停止工作,约1s间歇的时间,可更改
}
}

}

void timer0() interrupt 1 //定时器中断函数
{

TH0=table[i*2]; //音阶1234567对应定时器初值高位数值,
//table[i*2]代表table[]数组里面的第0 2 4 6 8 10 12 14个数值

TL0=table[i*2+1]; //table[i*2+1]代表table[]数组里面的第1 3 5 7 9 11 13 15个数值
SPK=~SPK; //定时时间到,喇叭电平取反,实现频率驱动
}

你可以设置最小延时是一个四分音符,然后设置延时次数就行了。


各种蜂鸣器的用途在哪里
1、电磁式蜂鸣器 电磁式蜂鸣器,主要是利用通电导体会产生磁场的特性,用一个固定的永久磁铁与通电导体产生磁力推动固定在线圈上的鼓膜。电磁式由于音色好,所以多用于语音、音乐等设备。2、压电式蜂鸣器 压电式蜂鸣器的主要部件是一种叫压电陶瓷片的电子发音元件,是在两片铜制圆形电极中间放入压电陶瓷介质...

为什么单片机控制蜂鸣器发的声音都一样
单片机负责给其一定频率(音频范围)的方波,频率不同音调也不同,因此利用单 片机和无源蜂鸣器可以产生音乐,但实际应用中,蜂鸣器只是用来提示或报警,为简化程序或减轻单片机的负担,通常输出方波的频率是一定的,因此也只有一个音调了

谁知道压电式陶瓷片(蜂鸣器)的工作原理?以及发出的声音是否都是一样...
压电陶瓷片的工作原理是利用特殊材料的压电效应实现人们的愿望。比如可以利用压电效应检测机械振动,也可以利用它作为发音原件。蜂鸣器就是利用为发音原件。蜂鸣器可以输入一个频率发出单调的单音,也可以通过调制那个频率让它发出合成音,调制越复杂发出的声音就越悦耳。

蜂鸣器有何作用?
电子玩具(音乐蜂鸣器)、农业、汽车电子设备行业(车载蜂鸣器,倒车蜂鸣器,汽车蜂鸣器,摩托车蜂鸣器)电话机(环保蜂鸣器)、定时器、空调、医疗设备等电声行业、环境监控。由于自激蜂鸣器是直流电压驱动的,不需要利用交流信号进行驱动,只需对驱动口输出驱动电平并通过三极管放大驱动电流就能使蜂鸣器发出声音,...

蜂鸣片的工作原理
压电蜂鸣片声音元件的声源主要来自压电振动板。压电振动板由一块两面印刷有电极的压电陶瓷板和一块金属板(黄铜或不锈钢等)组成。 使用粘合剂,将压电振动板和金属片粘接在一起,这就是我们俗称的蜂鸣片。图2所示为压电振动板的振荡体系。 当在压电振动板的两个电极间施加直流电压时,由于压电效应,...

主板蜂鸣器如何设置?急!!!
1短: 系统正常启动。这是我们每天都能听到的,也表明机器没有任何问题。2短: 常规错误,请进入CMOS Setup,重新设置不正确的选项。1长1短: RAM或主板出错。换一条内存试试,若还是不行,只好更换主板。1长2短: 显示器或显示卡错误。1长3短: 键盘控制器错误。检查主板。1长9短: 主板Flash RAM...

蜂鸣器结构原理
蜂鸣器的结构原理包含两种主要类型:压电式和电磁式。压电式蜂鸣器主要由以下几个部分组成:首先,是多谐振荡器,由晶体管或集成电路构建,接通1.5~15V直流电源后,它会产生1.5~2.5kHz的音频信号。接着是压电蜂鸣片,由锆钛酸铅或铌镁酸铅压电陶瓷制成,两面镀上银电极,并通过极化和老化处理,与...

什么是蜂鸣器蜂鸣器工作原理
汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“ZZG”、“LB”、“JD”等)表示。蜂鸣器工作原理1.电压式蜂鸣器压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、...

单片机驱动蜂鸣器电路???
单片机驱动蜂鸣器电路如下:蜂鸣器经常用于电脑、打印机、万用表这些设备上做提示音,提示音一般也很简单,就是简单发出个声音就行,我们用程序简单做了个 4KHZ 频率下的发声和 1KHZ 频率下的发声程序代码如下:include sbit BUZZ = P1^6; \/\/蜂鸣器控制引脚 unsigned char T0RH = 0; \/\/T0 重载值...

主板蜂鸣器有什么用
蜂鸣器是一种一体化结构的电厂讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“ZZG”、“LB”、“JD”...

丘北县17293502367: 如何使用51单片机的蜂鸣器来播放某些歌曲? -
陀唯骨刺: 蜂鸣器的发声频率是固定的,不能改变声调.要播放歌曲的话最好用小喇叭,通过改变脉冲的频率可以控制小喇叭的声调.

丘北县17293502367: 怎样用蜂鸣器播放任意一首音乐 -
陀唯骨刺: 1. 乐谱用编码软件编出代码,然后把代码复制到程序的代码段上.接着蜂鸣器就会放出音乐了.2. 蜂鸣器简介:蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件.蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型.蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“ZZG”、“LB”、“JD”等)表示.

丘北县17293502367: 51单片机蜂鸣器音乐 -
陀唯骨刺: 首先用定时器操作蜂鸣器发出不同的频率,而音阶也就是1(do)、2(re)、3(mi)等等就是不同的频率,找到他们的频率表就可以发出对应的音阶. 然后用定时器操作一拍的时间,也就是每个音阶发声 的时间长短. 最后把上面两个内容封装成函数,把青花瓷的谱子做成响应的参数,就可以实现了不过,蜂鸣器发出高音不太好,基本属于噪音范畴,所以推荐用喇叭之类的.有问题再联系哈.

丘北县17293502367: 关于直流蜂鸣器放音乐的问题(单片机) -
陀唯骨刺: 注意两点: 1、注意单片机的晶振,也就是频率对不对,有一点很重要的,就是单片机有的是双倍速,这样可能导致音符不对. 2、还有可以是放大电路出了问题,用较好的放大电路,最好用随身听的小喇叭,电子元件店有买.

丘北县17293502367: 单片机用蜂鸣器播放音乐、懂得音乐乐谱并且会转化成16进制数组的来. -
陀唯骨刺: 关16进制数什么事啊,你要把乐谱上对应的音高用相应的频率去输出 http://wenku.baidu.com/view/e1f7a551f01dc281e53af02a.html 这个是音高频率表 然后把频率算成周期,然后用自动重装的定时器,每次定时到了就翻转一下单片机得输出引脚

丘北县17293502367: 用单片机控制蜂鸣器放音乐 -
陀唯骨刺: 看起来数组应该是音乐数据,其中包括四种数据,就是休止符(每个100毫秒)、歌曲结束符、音阶(给出的是蜂鸣器的震荡周期)、一个音阶持续的时间长度.如果你的晶振是12MHz,按照定时器中断给Count加一来看,音阶持续的时间应该...

丘北县17293502367: 单片机蜂鸣器问题 请大虾举个简单例子来说明如何实现发出不同音调的音乐 -
陀唯骨刺: 用蜂鸣器产生音乐很诡异.大家都知道,单片机上的蜂鸣器都是加高低电平后,才有声音的.从理论上来说,声音是不具有频率,音色,等.对于单片机来说,用一个IO口的高低电平变化来产生的不同平率带动蜂鸣器产生各种生音事可以实现的...

丘北县17293502367: 单片机原理与应用中乐谱怎么与程序对应 -
陀唯骨刺: 相信您在作蜂鸣器发声实验时肯定为复杂的频率与音调之间的转换而伤脑筋,这里向大家介绍一款工具可以大大简化转换操作,只需要输入简谱就能自动生成音乐播放程序代码.以下此程序的主界面:程序范例可以点主界面上的“关于”按钮后就能找到,但是代码也不全,需要加入对音乐程序的调用代码,其它范例里也写的很清楚了,只需要调用Play函数就行了,其调用格式如下:Play(乐曲名,调号,升降八度,演奏速度); 经过实践,此函数的的后三个参数分别设为0,2和350时演奏出的音乐比较符合“原味”,下面给出本站的入门型51实验板结合此工具作的音乐程序:

丘北县17293502367: 单片机怎样用于音响中 -
陀唯骨刺: 单片机用于音响中,用单片机做一个简单的播放器:外接一个蜂鸣器,将曲谱存进单片机,控制播放的花样.旋转编码器的解码旋转编码器(外形参见图II-1.0)在音响中多用于取代普通的滑动电阻电位器作为音量/音调控制的编码输入.它使...

丘北县17293502367: 怎么利用单片机控制蜂鸣器唱歌呢.求帮助,新手 -
陀唯骨刺: 使用单片机的定时器控制蜂鸣器的频率就可以发出不同的音调了,不同的音调组合就可以唱歌了,网上找下程序参考一下吧,新手自己做难道有点大

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网