WANG2010li 发表于 2012-5-14 15:59:49

蜂鸣器一直叫

sbit D1=P1^5;      //3.3V pass LED
sbit D2=P1^6;      //3.3V fail LED
sbit D3=P1^7;      //5V pass LED
sbit D4=P2^6;      //5V fail LED
sbit D5=P2^5;      //12V pass        LED
sbit D6=P2^4;      //12V fail        LED
sbit bee=P3^4;       //蜂鸣器


void panduan()           //判断电压范围
{
        ulong x1,x2,x3;
        ulong y1,y2,y3;
        if((y1<min33)||(y1>max33))
        {
                D1=1;
                D2=0;
                bee=0;
        }
        else
        {
                D1=0;
                D2=1;
                bee=1;
        }
       
        if((x1<min12)||(x1>max12))
//        if((x1<min33)||(x1>max33))
        {
                lcd_pos(4,0);
                lcd_wdat('P');
                D1=1;
                D2=0;
                bee=0;
        }
        else
        {
                lcd_pos(4,0);
                lcd_wdat('Q');
                D1=0;
                D2=1;
                bee=1;
        }

        if((y2<min5)||(y2>max5))
        {
                D3=1;
                D4=0;
                bee=0;
        }
        else
        {
                D3=0;
                D4=1;
                bee=1;
        }

        if((x2<min5)||(x2>max5))
        {
                D3=1;
                D4=0;
                bee=0;
        }
        else
        {
                D3=0;
                D4=1;
                bee=1;
        }

        if((y3<min12)||(y3>max12))
        {
                D5=1;
                D6=0;
                bee=0;
        }
        else
        {
                D5=0;
                D6=1;
                bee=1;
        }               

        if((x3<min12)||(x3>max12))
        {
                D5=1;
                D6=0;
                bee=0;
        }
        else
        {
                D5=0;
                D6=1;
                bee=1;
        }               
}


蜂鸣器一直叫,怎么解决,各位大侠

graycker 发表于 2012-5-14 16:08:25

本帖最后由 graycker 于 2012-5-14 16:10 编辑

x1,x2,x3,y1,y2,y3哪里赋值的?

WANG2010li 发表于 2012-5-14 17:25:56

        ulong x1,x2,x3;
        ulong y1,y2,y3;
        x1=(ulong)k*T20/100;
//        x1=(ulong)k*T5/10;               //AIN0
        x2=(ulong)a*T20/100;       //AIN1
        x3=(ulong)c*T20/100;       //AIN2

        y1=(ulong)j*T5/10;               //AIN3
        y2=(ulong)b*T20/100;       //AIN4
        y3=(ulong)d*T20/100;       //AIN5

WANG2010li 发表于 2012-5-15 08:23:25

#define T55000/4095               //5V量程
#define T20        20000/4095               //20V量程
#define min33 314       //3.14V
#define max33 346       //3.46V
#define min5475       //4.75V
#define max5525       //5.25V
#define min12 114       //11.4V
#define max12 126       //12.6V


蜂鸣器一直叫,大侠们,有何高见

newselect 发表于 2012-5-15 08:37:18

panduan()函数屏蔽掉, bee清零(视情况而定)
先检查驱动方式是否正确,
再将单个if....else....插入测试,
知道正常, 再一个个插入

MadCat 发表于 2012-5-15 08:43:53

排除方,先单独测试下BEEP的驱动是否正确,也就开关控制是否成功.
然后在把软件的逻辑图画出来,一点点对照程序.对新人有好处.

WANG2010li 发表于 2012-5-15 08:44:03

每个都是正常的,关键是程序顺序执行,只有当六路电压都在范围内才不会报警,现在蜂鸣器一直叫,很吵,如何关掉

linpin1368 发表于 2012-5-15 13:12:46

貌似蜂鸣器是要高低高低高低……这样的震荡才会发出声音的

无级电工 发表于 2012-5-15 13:22:33

用示波器看看。 有时电源不稳(有交流成分),蜂鸣器也会叫

junlove2012 发表于 2012-5-18 08:21:31

有源无源?有源蜂鸣器接三极管驱动 我那个是8550或9012给0才响 之前万能板焊接时 数据口跟地不小心接了 没注意 一直响
页: [1]
查看完整版本: 蜂鸣器一直叫