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

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

这里修改:

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

    }

}

      蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。我们开发板上常用的蜂鸣器就是常常说的交流蜂鸣器或直流蜂鸣器(自激式蜂鸣器)。 直流蜂鸣器是给一定的驱动直流电压就会响。而交流蜂鸣器是需要给蜂鸣器一个脉冲才会响。常见的有PWM波控制蜂鸣器的频率。脉冲就是高低电平的切换,如下图:一个方波脉冲

我们用单片机的IO口实现一种这样高低电平的方波,驱动蜂鸣器发音。我们板子上配的就是交流蜂鸣器。

     接下来我们看一下蜂鸣器的硬件电路:

蜂鸣器通过三极管驱动。我们利用杜邦线将蜂鸣器的一端J8连接到板子上P15管脚上。

 示例程序:

  #include "reg52h"

  #include "intrinsh"

  typedef unsigned char uint8;

  typedef unsigned int  uint16;

  sbit beep = P1^5;

  void delay(uint16 i)

  {

  while(i--);

  }

  void main()

  {

while(1)

{

beep = ~beep;

delay(10);

}

  }

该程序实现蜂鸣器的响和停,程序较为简单,可以在此基础上进行扩展。

蜂鸣器的连续鸣叫时间过长。蜂鸣器使用一段时间后出现变音或无音,这种情形可能是蜂鸣器的连续鸣叫时间过长(蜂鸣器连续鸣叫时间不能超过8-10小时,否则会变音或烧坏)或是蜂鸣器受环境影响。

P2是端口啊,所以P2=_crol_(P2,1);这句中等号左边的P2表示的读取P2端口,这时的值取决于外围电路,而不是原来的赋值。所以需要一个变量来解决这个问题。

由你的代码看,是直流蜂鸣器,它的声音频率是无法改变的。而你也只是要改变鸣叫和不鸣叫的间隔频率(只是纠正一下名词),但这个程序不行。修改如下:

void sp()

{

speak=1;

Delay_ms(5);

speak=0;

Delay_ms(5);

}

void main(void)

{

uchar j,k,a;

a=0xfe;

P2=0xfe;

Delay_ms(500);

while(1)

{

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

{

a=_crol_(a,1);

P2=a;

sp();

Delay_ms(500);

}

for(k=0;k<7;k++)

{

a=_cror_(a,1);

P2=a;

sp();

Delay_ms(500);

}

}

}

以上就是关于51单片机蜂鸣器程序,音乐的随时跳转全部的内容,包括:51单片机蜂鸣器程序,音乐的随时跳转、51单片机之蜂鸣器、矩阵按键蜂鸣器程序不响等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10165696.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存