为什么我用蜂鸣器就用了一个输出脉冲它却会一直响?以下是我的代码

2019-07-15 10:04发布

#include <reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;

sbit beep=P1^5;

void delay (u16 b)
                {
                        while(b--);
                }

void main()
{
        u8 i=0;
        for (i=0;i<1;i++)
        {
   beep=~beep;
                delay (50);
        }
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
别离没有喧嚣
1楼-- · 2019-07-15 21:34
人中狼 发表于 2017-7-27 15:42
蜂鸣器分有源蜂鸣器和无源蜂鸣器,有源蜂鸣器只要有供电,就能一直响,无源蜂鸣器则需要一定频率的脉冲驱动才能响。
有源蜂鸣器一般都是一个黑 {MOD}的圆柱体,无源蜂鸣器一般就是一个薄片。

我开发板上的是无源蜂鸣器啊,为什么就for循环一次就一直响
人中狼
2楼-- · 2019-07-15 22:20
试试在for的循环之后,再加一个 beep=~beep;,看看还响不响
别离没有喧嚣
3楼-- · 2019-07-16 03:35
 精彩回答 2  元偷偷看……
莫名其妙的羊
4楼-- · 2019-07-16 05:11
i小于等于1试一下
别离没有喧嚣
5楼-- · 2019-07-16 09:42
莫名其妙的羊 发表于 2017-7-27 17:14
i小于等于1试一下

还是没有用啊,我就用的普通的51开发板
别离没有喧嚣
6楼-- · 2019-07-16 10:21
为什么会是死循环啊

一周热门 更多>