蜂鸣器一直叫
sbit D1=P1^5; //3.3V pass LEDsbit 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:10 编辑
x1,x2,x3,y1,y2,y3哪里赋值的? 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
#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
蜂鸣器一直叫,大侠们,有何高见
panduan()函数屏蔽掉, bee清零(视情况而定)
先检查驱动方式是否正确,
再将单个if....else....插入测试,
知道正常, 再一个个插入 排除方,先单独测试下BEEP的驱动是否正确,也就开关控制是否成功.
然后在把软件的逻辑图画出来,一点点对照程序.对新人有好处. 每个都是正常的,关键是程序顺序执行,只有当六路电压都在范围内才不会报警,现在蜂鸣器一直叫,很吵,如何关掉 貌似蜂鸣器是要高低高低高低……这样的震荡才会发出声音的 用示波器看看。 有时电源不稳(有交流成分),蜂鸣器也会叫 有源无源?有源蜂鸣器接三极管驱动 我那个是8550或9012给0才响 之前万能板焊接时 数据口跟地不小心接了 没注意 一直响
页:
[1]