精华内容
下载资源
问答
  • 本文主要写了一个单片机蜂鸣器响生日快乐编程程序,一起来学习一下
  • 单片机蜂鸣器代码+仿真

    千次阅读 2021-02-04 14:05:02
    //最简单的蜂鸣器发声代码: #include<reg52.h> #include<intrins.h> sbit beep=P1^5; typedef unsigned int u16; typedef unsigned char u8; void delay(u16 i) { while(i--); } void main() { ...

    源代码:

    //最简单的蜂鸣器发声代码:
    #include<reg52.h>
    #include<intrins.h>
    sbit beep=P1^5;
    typedef unsigned int u16;
    typedef unsigned char u8;
    
    void delay(u16 i)
    {
    	while(i--);
    }
    void main()
    {
    	
    	while(1)
    	{beep=0;
      beep=~beep;
    	delay(100);
    		//变化来实现一个脉冲
    		 //延迟程序来控制脉冲的频率,以达到不同的声音
    	}
    } 
    

    仿真:密码9856

     

    展开全文
  • 单片机蜂鸣器代码

    万次阅读 多人点赞 2020-07-10 19:20:24
    //最简单的蜂鸣器发声代码: #include<reg52.h> #include<intrins.h> sbit beep=P1^5; typedef unsigned int u16; typedef unsigned char u8; void delay(u16 i) { while(i--); } void main() { while...

    我用的蜂鸣器固定的控制端口是P1.5这个端口
    蜂鸣器必须通过脉冲来实现发声

    在这里插入图片描述

    //最简单的蜂鸣器发声代码:
    #include<reg52.h>
    #include<intrins.h>
    sbit beep=P1^5;
    typedef unsigned int u16;
    typedef unsigned char u8;
    
    void delay(u16 i)
    {
    	while(i--);
    }
    void main()
    {
    	while(1)
    	{
    		 beep=~beep;//变化来实现一个脉冲
    		 delay(100);//延迟程序来控制脉冲的频率,以达到不同的声音
    	}	
    } 
    

    用蜂鸣器来播放一首歌曲《两只老虎》:

    #include <reg52.h>
    #define RldTmr(fr) 65536 - (11059200 / 12) / (fr << 1)
    #define FuDian(n) (n << 1) / 3    //附点n分音符的换算
     
    typedef unsigned char UCHAR;
    typedef unsigned int UINT;
    typedef unsigned long ULONG;
     
    sbit BUZZ = P1^5;
     
    UINT code noteFreq[] = {    //中音 1-7 和高音 1-7对应的频率列表
        523, 587, 659, 698, 784, 880, 988,
        1047, 1175, 1319, 1397, 1568, 1760, 1976
    };
    UINT code tmrRld[] = {      //中音 1-7 和高音 1-7对应的定时器重载值
        RldTmr(523), RldTmr(587), RldTmr(659), RldTmr(698), RldTmr(784), RldTmr(880), RldTmr(988),
        RldTmr(1047), RldTmr(1175), RldTmr(1319), RldTmr(1397), RldTmr(1568), RldTmr(1760), RldTmr(1976),
    };
    UCHAR code musicNote[] = {      //音名
        1, 2, 3, 1,
        1, 2, 3, 1,
        3, 4, 5,
        3, 4, 5,
        5, 6, 5, 4, 3, 1,
        5, 6, 5, 4, 3, 1,
        1, 5, 1,
        1, 5, 1
    };
    UCHAR code noteDuration[] = {       //音名对应的时值,4表示4分音符,8表示8分音符,16表示16分音符
        4, 4, 4, 4,
        4, 4, 4, 4,
        4, 4, 2,
        4, 4, 2,
        FuDian(8), 16, FuDian(8), 16, 4, 4,
        FuDian(8), 16, FuDian(8), 16, 4, 4,
        4, 4, 2,
        4, 4, 2
    };
    bit enable = 1, tmrFlg = 0;
    UCHAR T0RH = 0XFF, T0RL = 0X00;
     
    void Delay(UINT n);
    void PlayMusic(UCHAR speed);    //固定标准为4分音符的速度:例如speed = 108 表示一分钟扫过108个4分音符
     
    void main() {
        EA = 1;
        TMOD = 0X01;
        TH0 = T0RH;
        TL0 = T0RL;
        ET0 = 1;
        TR0 = 1;
        while (1) {
            PlayMusic(72);
            Delay(40000u);
        }
    }
     
    void Delay(UINT n) {
        UINT i;
        for (i = 0; i < n; i++) ;
    }
     
    void PlayMusic(UCHAR speed) {
        UCHAR i;
        UCHAR idx;
        UINT cnt = 0;
        UINT durationCnt = 0;	//当前音符的时值对应的定时器计数
        UINT soundCnt = 0;		//当前音符的发声时值对应的计数值
        for (i = 0; i < sizeof (musicNote); ) {
            while (!tmrFlg) ;
            tmrFlg = 0;
            if (cnt == 0) {
                idx = musicNote[i] - 1;
                T0RH = tmrRld[idx] >> 8;
                T0RL = tmrRld[idx];
                durationCnt = (ULONG)240 * (ULONG)noteFreq[idx] / ((ULONG)noteDuration[i] * (ULONG)speed);
                soundCnt = durationCnt - (durationCnt >> 2);	//当前音符时值的前3/4发声,后1/4静音
                enable = 1;
                cnt++;
            }
            else {
                if (cnt == durationCnt) {
                    cnt = 0;
                    i++;
                }
                else {
                    cnt++;
                    if (cnt == soundCnt) {
                        enable = 0;
                    }
                }
            }
        }
    }
     
    void InterruptTmr0() interrupt 1 {
        TH0 = T0RH;
        TL0 = T0RL;
        tmrFlg = 1;
        if (enable)
            BUZZ = ~BUZZ;
        else
            BUZZ = 1;
    }
    
    

    上面这段代码的原码 点击这里访问

    展开全文
  • 初学单片机。使用stc89c52rc的单片机,用stc-isp烧录了一个点亮LED的程序,结果蜂鸣器一通电就一直,程序并没有涉及蜂鸣器,不管烧录什么程序,都是蜂鸣器一直,求解答!
  • emlc让 MATLAB 的代码进入单片机 通常情况下如果我在 MATLAB 上完成了某个功能比如某图像识别的算法却想把它 用在单片机上需要自己再写一遍 C 的代码我这里说的单片机确切的来说还是指所有 微控制比较好但有了 ...
  • 蜂鸣器分为有源和无源,区别就是有源(有振荡源)的加上额定电压就能工作(发声),而一般的无源蜂鸣器里面没有振荡器,需要输入一定频率脉冲电压时,才会发声。
  • 该压缩文件为单片机蜂鸣器 各种发声程序,实测工作正常。
  • 51单片机蜂鸣器程序

    2012-05-06 16:19:01
    用51单片机驱动蜂鸣器发出铃声,音乐,内含祝你平安,八月桂花,生日快乐等音乐代码
  • 51 单片机 蜂鸣器

    千次阅读 2020-01-04 17:05:31
    普中51单片机中的蜂鸣器 sbit与define的区别 sbit 是定义 位 ,就是说只能 用于 位, 编译器 会检测的。 define 就是简单的 文字替换,用途广 无源蜂鸣器与有源蜂鸣器 (普中51单片机里的那个需要进行脉冲) ###区别...

    普中51单片机中的蜂鸣器

    sbit与define的区别

    sbit 是定义 位 ,就是说只能 用于 位, 编译器 会检测的。
    define 就是简单的 文字替换,用途广

    无源蜂鸣器与有源蜂鸣器

    (普中51单片机里的那个需要进行脉冲)
    ###区别
    一、有无震荡源
    无源这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。
    二、价格不同
    有源蜂鸣器往往比无源蜂鸣器贵,就是因为里面多个震荡电路。
    三、高度不同

    从图a、b外观上看,两种蜂鸣器好像一样,但仔细看,两者的高度略有区别,有源蜂鸣器a,高度为9mm,而无源蜂鸣器b的高度为8mm。如将两种蜂鸣器的引脚郡朝上放置时,可以看出有绿色电路板的一种是无源蜂鸣器,没有电路板而用黑胶封闭的一种是有源蜂鸣器。

    四、万用表测电阻区别

    用万用表电阻档Rxl档测试:用黑表笔接蜂鸣器 "+"引脚,红表笔在另一引脚上来回碰触,如果触发出咔、咔声的且电阻只有8Ω(或16Ω)的是无源蜂鸣器;如果能发出持续声音的,且电阻在几百欧以上的,是有源蜂鸣器。
    同时有源蜂鸣器直接接上额定电源(新的蜂鸣器在标签上都有注明)就可连续发声;而无源蜂鸣器则和电磁扬声器一样,需要接在音频输出电路中才能发声。
    五、优点不同

    (1)无源蜂鸣器的优点是:
    1、便宜;
    2、声音频率可控,可以做出“多来米发索拉西”的效果;
    3、在一些特例中,可以和LED复用一个控制口。
    (2)有源蜂鸣器的优点是:程序控制方便。
    ###实现方法

    sbit beep = P1^5;
    while(1)
    {
    	beep = ~beep;//~就是改变正负情况的一个符号,类似于!
    	delay(10);//是一个延时的函数
    }
    

    完整的代码

    ###实现方法

    sbit beep = P1^5
     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(10);//100us
    	}
    }
    
    展开全文
  • 【51单片机】驱动蜂鸣器实验代码

    千次阅读 2018-11-17 14:45:20
    //驱动蜂鸣器实验 #include &amp;lt;reg52.h&amp;gt; sbit buzzer = P3^7; //声明蜂鸣器位置 void delay(int); //声明延迟函数 void pulse_BZ(int,int,int); //声明发声函数 //主程序。...
    //驱动蜂鸣器实验
    #include <reg52.h>						
    sbit buzzer = P3^7;				//声明蜂鸣器位置
    void delay(int);				//声明延迟函数
    void pulse_BZ(int,int,int);		//声明发声函数
    
    //主程序。
    main()
    {
    	while(1)
    	{
    		pulse_BZ(100,10,10);	//响100次,频率为100Hz
    		delay(2000);			//延迟2000×0.5ms=1s
    	}
    }
    
    //延迟函数。延迟时间=n×0.5ms
    void delay(int n)
    {
    	int i,j;
    	for(j=0;j<n;j++)
    		for(i=0;i<60;i++);		//循环60次约0.5ms
    }
    
    //发声函数。在0.5(TH+TL)ms的时间里响count次
    void pulse_BZ(int count,int TH,int TL)
    {
    	int i;
    	for(i=0;i<count;i++)
    	{
    		buzzer = 1;				//输出高电平
    		delay(TH);
    		buzzer = 0;				//输出低电平
    		delay(TL);
    	}
    }
    
    展开全文
  • 打开Keil 建好我们的工程,和程序文件,并把程序文件添加到工程里面。 这次我们要做一个蜂鸣器,首先先...这里我们需要的是让蜂鸣器一直,所以我们将程序写在while里面。 #include<reg51.h> sbit FMQ36=.
  • 51单片机蜂鸣器

    千次阅读 2020-07-10 23:45:01
    蜂鸣器是一种一体化结构的电子讯器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两...
  • 蜂鸣器实验* 蜂鸣器 蜂鸣器是一种一体化结构的电子讯器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式...
  • 51单片机蜂鸣器操作

    千次阅读 2016-09-08 19:38:49
    蜂鸣器响很简单,给蜂鸣器加一个低电平,这样电流通过,蜂鸣器就会响。 #include sbit beep=P2^3; void main() { int a; while(1) { a=66666; beep=0; while(a--); a=66666; beep=1; while(a--);...
  • //下面是我为了防止它一直,写了有关蜂鸣器代码,但是它还是会一通电就一下 #include sbit beep = P2^4; //P2^4是蜂鸣器的端口 void delay(int j) { int n; for(n=0;nvoid main() { int i; beep = ~beep; //...
  • 目录蜂鸣器简介MIDI音乐制作原理《小星星》制作代码展示引言:在单片机开发中我们经常会用到蜂鸣器实现一些简单提示的功能,但如何利用单片机制作一些更有趣的事情呢,今天我们将利用蜂鸣器来制作一首好听的MIDI音乐...
  • 单片机蜂鸣器和弦音

    2021-05-12 13:24:32
    前言 现在一些家电(空调,风扇,加湿器)按键时有悦耳的和弦音...50ms后,BZV输出低电平,无源蜂鸣器由电容来提供驱动电流。 随著电容放电,声音逐渐减弱,产生类似风铃尾音的效果。 200ms后,关闭BUZ的输出。 ...
  • 蜂鸣器是很常见的设备,分为无源和有源两种。根据项目需求选择不同类型的蜂鸣器。最近的项目里有用到有源蜂鸣器对有源蜂鸣器。还是老一套,把电路板画完,接着编程。在项目中原理图如下:如果不能保证I/O的输出性能...
  • 单片机控制蜂鸣器

    千次阅读 2015-11-28 14:58:42
    蜂鸣器是一种一体化结构的电子讯器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。在单片机电路中一般作为报警、提示或者播放...
  • 89C52单片机 蜂鸣器的实现

    千次阅读 2019-09-27 20:22:17
    开发板蜂鸣器电路 我们可以看到 蜂鸣器是连接开发板 P2.3口, 并且通过三极管来控制蜂鸣器供电电路的连接和断开。 2、实现代码 #include <reg52.h> //引入51头文件 sbit beep = P2^3; //得到控制蜂鸣器的...
  • 有源蜂鸣器与无源蜂鸣器的区别这里的“源”不是指电源,而是指震荡源。内部自带震荡源的为有源蜂鸣器,给电就能,但是的频率是固定的,即的声音是固定...单片机驱动蜂鸣器发声原理" class="reference-link">...
  • 【51单片机蜂鸣器

    2020-12-30 00:09:56
    【51单片机蜂鸣器【51单片机蜂鸣器1 蜂鸣器介绍1.1蜂鸣器分类2. 电路设计3.软件设计3.1单片机如何实现延时3.2示例代码 【51单片机蜂鸣器 1 蜂鸣器介绍 1.1蜂鸣器分类 无源蜂鸣器 无源蜂鸣器: 百科. 无源...
  • 51单片机驱动蜂鸣器发声教程(扫盲)

    万次阅读 多人点赞 2019-03-25 14:27:44
    51单片机 蜂鸣器 蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加...
  • //蜂鸣器响 函数 声明 void disp(uchar num0,uchar num1,uchar num2,uchar num3,uchar num4,uchar num5,uchar num6,uchar num7); //数码管显示 声明 //----------------------------------------------------------...
  • 北京奥运会宣传曲再次传耳边,这次却是在一颗蜂鸣器上。 本篇主要讲述在STM32单片机开发板上通过STM32CubeIDE配置相关管脚和参数,来操作无源蜂鸣器播放歌曲《北京欢迎你》的步骤和原理。 软硬件需求 硬件:STM32...
  • 单片机通过控制HC595实现数码管倒计时,流水灯,当倒计时结束时蜂鸣器鸣叫,并重新附新值给倒数,多任务执行程序
  • 51单片机蜂鸣器与LED流水灯的简单结合

    万次阅读 多人点赞 2019-01-02 11:08:19
    蜂鸣器bz1接着上拉电阻为高电平,所以想让蜂鸣器响,就要让bz口接低电平。(蜂鸣器bz口接单片机的P1^5口) 下面给出一个代码例子: 该代码实际结果,LED灯从d1到d8依次亮,再从d8到d1依次亮,灯每移一次,蜂鸣器就...
  • 蓝桥杯蜂鸣器如何做到在烧写程序不叫蓝桥杯单片机开发板正确下载程序姿势:解决下载过程中蜂鸣器问题现象描述:即使在程序中写了关闭蜂鸣器的程序,但是在下载过程中,蜂鸣器仍然会。STC-ISP启动 下载程序双击...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 924
精华内容 369
关键字:

单片机蜂鸣器响的代码