51单片机蜂鸣器程序,音乐的随时跳转

作者&投稿:芷研 (若有异议请与网页底部的电邮联系)
求助关于51单片机的蜂鸣器音乐控制的程序~

51控制音频一般是用定时器来做,根据音频决定定时初始值的调节从而产生不同的频率,控制蜂鸣器发出不同的声音。

把音乐函数作为闹钟的子函数就可以了,在需要闹铃响时调用该子函数。

这里修改:
sbit key1=P1^0;
sbit key2=P1^1;
void Play_Song(unsigned char i)
{
unsigned char Temp1,Temp2;
unsigned int Addr;
Count = 0; //中断计数器清0
Addr = i * 217;
while(1)
{
if(key2==0)break;           //插入这一句
Temp1 = SONG[Addr++];
if ( Temp1 == 0xFF ) //休止符
{
TR0 = 0;
Delay_xMs(100);
}
else if ( Temp1 == 0x00 ) //歌曲结束符
{
return;
}
else
{
Temp2 = SONG[Addr++];
TR0 = 1;
while(1)
{
_Speak = ~_Speak;
Delay_xMs(Temp1);
if ( Temp2 == Count )
{
Count = 0;
break;
}
}
}
}
}
PlaySong2(................
{
....
whlie(1)
    {
    if(key1==0)break;   //插入这一句
    .....
    }
}

void main()
{
Time0_Init(); //定时器0中断初始化
while(1)
    {
    Play_Song(0); //播放1
    Play_Song2(0); //播放2
    }
}


用按键触发外部中断,中断程序中直接切换另一个程序即可


单片机蜂鸣器发声代码
下面是一个通用的单片机蜂鸣器发声的代码。这个是基于Arduino的,但是大多数的单片机都可以使用类似的代码。c#define NOTE_B0 31#define NOTE_C1 33#define NOTE_CS1 35#define NOTE_D1 37#define NOTE_DS1 39#define NOTE_E1 41#define NOTE_F1 44#define NOTE_FS1 46#define NOTE_G1 49#define...

51单片机蜂鸣器程序是什么?
51单片机蜂鸣器程序为:include"reg52.h"typedef unsigned char u8;typedef unsigned int u16;sbit beep=P1^5;void delay(u16 i){ while(i--);} void main(){ while(1){ beep=~beep;delay(1000);\/\/控制音调频率 beep=~beep;\/控制声音大小 delay(10);} } ...

C51单片机中有源蜂鸣器的程序怎么写啊,还有就是,有源蜂鸣器是高电平触发...
1)如果连接PNP三极管驱动,设置P3_3=0,则蜂鸣器一直响;如果设置 P3_3=0;\/\/响 delay_500ms();P3_3=1;\/\/不响 delay_500ms();\/\/蜂鸣器每一秒响一次 2)如果连接NPN三极管驱动,设置P3_2=1,则蜂鸣器一直响;如果设置 P3_2=1;\/\/响 delay_500ms();P3_2=0;\/\/不响 delay_500ms();\/...

单片机用汇编语言怎么写一个蜂鸣器程序?
如果是蜂鸣器的话,那么加一个电平信号就可以发声了。\\x0d\\x0aFMQ EQU P1.0\\x0d\\x0aORG 0000H\\x0d\\x0aLJMP MAIN\\x0d\\x0aORG 0030H\\x0d\\x0aMAIN:\\x0d\\x0aCPL FMQ\\x0d\\x0aLCALL DELAY\\x0d\\x0aSJMP MAIN\\x0d\\x0aDELAY:\\x0d\\x0aMOV R2,#200\\x0d\\x0aDLY:\\x0d...

单片机蜂鸣器播放音乐加开关程序怎么设置
步骤如下:1、确定单片机型号和开发环境:根据项目需求选择合适的单片机型号,并选择相应的开发环境进行编程。2、配置蜂鸣器:根据蜂鸣器连接的引脚,配置引脚模式为输出模式。3、编写音乐播放程序:使用单片机的蜂鸣器播放音乐,需要编写相应的音乐播放程序。可以使用现成的音乐库函数或者自行编写音乐解码程序。4、...

单片机蜂鸣器不会响啊,郁闷至极
这么跟你讲吧!蜂鸣器用输出01的变化来控制是为了控制发声频率,给固定控制信号也是会响的,若输出0到控制端,蜂鸣器不响,输出1就一定会响。你再试试?可能你的程序就没有执行。或者你端口控制错了,蜂鸣器没有接在p1.5。

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

用单片机控制继电器和蜂鸣器的程序
sbit pluse=P1^0;sbit jdq=P1^1;sbit beep=P1^2;继电器和蜂鸣器保持吗?如果保持的话:while(1){ if(pluse==1){ jdq=1;beep=1;} } 如果不保持的话:while(1){ if(pluse==1){ jdq=1;beep=1;} else { jdq=0;beep=0;} } ...

单片机驱动蜂鸣器原理是什么
单片机驱动蜂鸣器的原理其实很简单,就是通过单片机控制蜂鸣器的开关,从而改变蜂鸣器的发声状态。具体来说,蜂鸣器是一个电气元件,可以通过控制电流的流动来发声。因此,我们可以通过控制单片机的输出引脚来控制蜂鸣器的电流流动,从而控制蜂鸣器的发声状态。要控制蜂鸣器的发声状态,可以使用单片机的模拟输出功能。...

求一个关于单片机的蜂鸣器的C语言程序,如果好,可行的话有追加分~_百度...
(2. 在“音频放大模块”区域中的SPK OUT端口上接上一个8欧的或者是16欧的喇叭;(3. 把“单片机系统”区域中的P1.7\/RD端口用导线连接到“四路拨动开关”区域中的K1端口上;4. 程序设计内容 (1. 信号产生的方法 500Hz信号周期为2ms,信号电平为每1ms变反1次,1KHz的信号周期为1ms,信号...

盖州市17711813448: 51单片机C语言控制按键蜂鸣器 -
朝彼伊特: unsigned char flag=1; //定义上升沿ready标志 while(1) {if(key1&&flag) // 默认key1下拉至GND,若产生上升沿,则响一次,同时清零标志 {SPK=1;delay();SPK=0;flag=0;}if(!key1) { flag=1;} //检测key1是否归零 准备第二次上升沿,是,则标志位置1...... } 仅供参考

盖州市17711813448: 用单片机控制有源蜂鸣器发出断断续续的声音 -
朝彼伊特: while(1) { FMQ=1;.delay_ms(500); FMQ=0;.delay_ms(500); } 实际上,如果你采用这种方式响0.5s,停 0.5s的话,听起来响的时间要长一些,因有源蜂鸣器内部有电容之类的储能装置

盖州市17711813448: 请问为什么用单片机控制蜂鸣器不停地响啊? -
朝彼伊特: 看看程序,打开蜂鸣器是不是没有关闭?还有单片机的程序是循环执行的,注意这一点,如果不加while(1);等语句 程序就会一直循环执行,还没有加延时的话就会一直的响了,多看看别人写的程序,就明白了!

盖州市17711813448: 如何使用51单片机的蜂鸣器来播放某些歌曲? -
朝彼伊特: 蜂鸣器的发声频率是固定的,不能改变声调.要播放歌曲的话最好用小喇叭,通过改变脉冲的频率可以控制小喇叭的声调.

盖州市17711813448: 通过一个按键来控制单片机蜂鸣器产生的音乐的暂停与播放 这是程序 #include <reg52.h -
朝彼伊特: 用for控制while啊,定义一个变量,将变量放while表达式内,for检测是否有键按下,有就变量加1while就会一直循环了,变量变2用for清0,这就可以实现了

盖州市17711813448: 51单片机蜂鸣器 献给爱丽丝代码 -
朝彼伊特: #include sbit SPK=P1^2; //定义音乐输出端口unsigned char t; // 休止符标志unsigned char w; // 节拍选择 unsigned char Timer0_H,Timer0_L,Time; //致爱丽丝unsigned char code MUSIC[]={ 3,2,1, 2,2,1, 3,2,1, 2,2,1, 3,2,1, 7,1,1, 2,2,1, 1,2,1, 6,...

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

盖州市17711813448: 89c52单片机蜂鸣器程序编程 -
朝彼伊特: 简易蜂鸣器程序: #include #define uchar unsigned char #define uint unsigned int sbit P36=P3^6;//我的系统板蜂鸣器口定义 sbit k1=P1^4; //按钮1 sbit k2=P1^5; //按钮2 void Delay(uint num)//延时函数 {uchar i,j; for(i=0;i0;j++)} } main() { while(1) { if(k1==0) {P36=0;//蜂鸣器响 Delay(); P36=1;//蜂鸣器停 Dalay(); key_time(); } } }

盖州市17711813448: 51单片机如何让蜂鸣器只响0.5s -
朝彼伊特: 加长延时就行 beep =~ beep ; delay (1000);//延时大约100us 这样的话 delay (50000);//延时大约5000us即5ms 调用100次就是0.5秒了,程序如下u8 i; while(1) {beep =~ beep ;for(i=0;i<100;i++){delay (50000);}//延时大约0.5秒 }

盖州市17711813448: 怎么利用单片机控制蜂鸣器唱歌呢.求帮助,新手 -
朝彼伊特: 使用单片机的定时器控制蜂鸣器的频率就可以发出不同的音调了,不同的音调组合就可以唱歌了,网上找下程序参考一下吧,新手自己做难道有点大

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