蜂鸣器类代码

发布时间: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


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

相关文章

    AT89C52控制蜂鸣器电路图详解;  蜂鸣器的介绍   1.蜂鸣器的作用 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子......
    以扫描来自按钮的输入,并在显示设备(7 段显示器)上显示相应的数字。这是一个简单的电路,元件数量最少,没有任何复杂性。尽管该系统仅为 8 个小组设计,但可通过使用另一组 8 个按钮来增加更多小组。 测验蜂鸣器电......
    蜂鸣器可以发出不同声音吗 如何让蜂鸣器发出不同频率的声音;  蜂鸣器是干什么用的   蜂鸣器是一种常见的电子元件,用于发出声音信号。它通常由一个振动装置(如压电晶体或电磁线圈)和一个共鸣腔体(如塑......
    蜂鸣器驱动电路(2024-10-14 12:31:55)
    蜂鸣器驱动电路; 蜂鸣器是电路设计中常用的器件,广泛用于工业控制报警、机房监控、门禁控制、计算机 等电子产品作预警发声器件,驱动电路也非常简单,然而很多人在设计时往往随意设计,导......
    的区别 5.编码器的使用接线 6.台达变频器模拟量控制接线 7.电动机星接与角接线电路图 8.伺服放大器面板符号含义解释 9.控制图元件符号与实物对照 10.RS232和RS485的区......
    能想知道这个项目如何负责降低事故率。好吧,该指示器电路会定期关注制动器的状况,并提供情况的视听指示。 该项目包括两个LED和一个压电蜂鸣器作为指示灯。在正常情况下,当施加制动器时,绿色 LED会闪烁,压电蜂鸣器......
    个固定的永久磁铁与通电导体产生磁力推动固定在线圈上的鼓膜。电磁式由于音色好,所以多用于语音、音乐等设备。 2、压电式蜂鸣器 压电式蜂鸣器的主要部件是一种叫压电陶瓷片的电子发音元件,是在两片铜制圆形电极中间放入压电陶瓷介质材料,当在......
    全新电路图符号大全,助你快速看懂图; 电路图,是一种以物理电学标准符号来绘制各电子元器件组成和关系的电路原理布局图,它被广泛应用于人类工程规划和电路研究。通过分析电路图,可以得知电子元......
    电路图怎么看呢?;是电子工程师和电子设备制造商之间沟通的桥梁,对于电子设备厂家的采购人员来说,掌握阅读的基本技能至关重要。本文引用地址:以下将从几个方面详细解析如何阅读和理解。 一、了解基础元件符号......
    件等)、封装、安装方式,以及PCB设计、生产、验证等过程。 2. 认识原理图schematic中的元件符号符号库、线、网络标签等;电路布板PCB Layout中的元件封装、封装库、布线、过孔......

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

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

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

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

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

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

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