蜂鸣器类代码

发布时间:2024-08-15  

/*

标题:蜂鸣器的使用

电路:P1.0口接P11


*/

#include 'sys.h'//包含延时函数头文件

#include

#include 'beep1.h'


sbit beez = P2^1;//位声明,P2端口的第一位为蜂鸣器所用

void beep1()     //非空函数+函数名

{

    while(1)       //while死循环

    {

        beez = 1;      //赋高电平

        delays(100);  //调用延时函数

        beez = 0;      //赋低电平

        delays(100);  //同上

    }

}


//----------------------------------------------

/*

if not defined的简写为ifndef,c语言在对程序进行

编译时,会先根据预处理命令进行“预处理”。C语言

编译系统包括预处理,编译和链接等部分。

*/

#ifndef _BEEP1_H_                 //先测试函数是否被宏定义过 

#define _BEEP1_H_ 


void beep1();                     //如果程序没有被定义过,定义函数

                                  //并编译程序段beep1


#endif                            //终止if,条件指示符#endif的最主要目的是

                                  //防止头文件的重复包含和编译。


/*

标题:蜂鸣器发出不同的音调

电路:p2.1口接P11


*/


#include

#include 'sys.h'

#include 'beep2.h'

sbit beez = P2^1;


void beep2(){

    int i;

    while(1){

    for(i = 0;i<1000;i++){

            beez = 0;

            delays(100);

            beez = 1;

            delays(100);

        }

        

        for(i = 0;i<1000;i++){

            beez = 0;

            delays(200);

            beez = 1;

            delays(200);

        }

        

        for(i = 0;i<1000;i++){

            beez = 0;

            delays(50);

            beez = 1;

            delays(50);

        }

        

        for(i = 0;i<1000;i++){

            beez = 0;

            delays(150);

            beez = 1;

            delays(150);

        }

    

    }

        


}


//----------------------------------------------

#ifndef _BEEP2_H_

#define _BEEP2_H_


void beep2();


#endif


/*

标题:蜂鸣器播放音乐

电路:p2.1口接P11


*/


#include

#include 'beep3.h'

#include 'sys.h'


//八月桂花

unsigned char code music_code[] ={   

0x18, 0x30, 0x1C , 0x10, //格式为:频率常数、节拍常数、频率常数、节拍常数   

0x20, 0x40, 0x1C , 0x10,   

0x18, 0x10, 0x20 , 0x10,   

0x1C, 0x10, 0x18 , 0x40,   

0x1C, 0x20, 0x20 , 0x20,   

0x1C, 0x20, 0x18 , 0x20,   

0x20, 0x80, 0xFF , 0x20,   

0x30, 0x1C, 0x10 , 0x18,   

0x20, 0x15, 0x20 , 0x1C,   

0x20, 0x20, 0x20 , 0x26,   

0x40, 0x20, 0x20 , 0x2B,   

0x20, 0x26, 0x20 , 0x20,   

0x20, 0x30, 0x80 , 0xFF,   

0x20, 0x20, 0x1C , 0x10,   

0x18, 0x10, 0x20 , 0x20,   

0x26, 0x20, 0x2B , 0x20,   

0x30, 0x20, 0x2B , 0x40,   

0x20, 0x20, 0x1C , 0x10,   

0x18, 0x10, 0x20 , 0x20,   

0x26, 0x20, 0x2B , 0x20,   

0x30, 0x20, 0x2B , 0x40,   

0x20, 0x30, 0x1C , 0x10,   

0x18, 0x20, 0x15 , 0x20,   

0x1C, 0x20, 0x20 , 0x20,   

0x26, 0x40, 0x20 , 0x20,   

0x2B, 0x20, 0x26 , 0x20,   

0x20, 0x20, 0x30 , 0x80,   

0x20, 0x30, 0x1C , 0x10,   

0x20, 0x10, 0x1C , 0x10,   

0x20, 0x20, 0x26 , 0x20,   

0x2B, 0x20, 0x30 , 0x20,   

0x2B, 0x40, 0x20 , 0x15,   

0x1F, 0x05, 0x20 , 0x10,   

0x1C, 0x10, 0x20 , 0x20,   

0x26, 0x20, 0x2B , 0x20,   

0x30, 0x20, 0x2B , 0x40,   

0x20, 0x30, 0x1C , 0x10,   

0x18, 0x20, 0x15 , 0x20,   

0x1C, 0x20, 0x20 , 0x20,   

0x26, 0x40, 0x20 , 0x20,   

0x2B, 0x20, 0x26 , 0x20,   

0x20, 0x20, 0x30 , 0x30,   

0x20, 0x30, 0x1C , 0x10,   

0x18, 0x40, 0x1C , 0x20,   

0x20, 0x20, 0x26 , 0x40,   

0x13, 0x60, 0x18 , 0x20,   

0x15, 0x40, 0x13 , 0x40,   

0x18, 0x80, 0x00   

};   


unsigned char* pin;//频率

unsigned char* pai;//节拍

sbit beez = P2^1;


void beep3()

{

    int i,j;

    play://为goto所用,当程序执行到goto play时,重回此

    pin = music_code;

    pai = pin+1;

    beez = 0;

    while(1)

        {

        if(pin == 0x00)//if条件函数

            {

            //遇到结束符

            goto play;

          }

        if(pai == 0xff)

            {

            //遇到休止符,等待一段时间

            delays(200000);

          }

        for(i=0;i<(*pai)*10;i++)//for嵌套

            {

            

            for(j=0;j<(*pin);j++)

                {

                beez = ~beez;

              }

        

          }

        pin += 2;

        pai += 2;

        

    }


}




//------------------------------------------------

#ifndef _BEEP3_H_

#define _BEEP3_H_


void beep3();


#endif


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>