引用: 酱油一号 发表于 2012-11-16 18:23
我所做的设计是自动控制水位 用一个传感器检测水位的高低 当检测到水位小于10CM的时候报警指示灯亮蜂 ...
那你的程序问题就不大,还是觉得最后应该加上一个大括号
/****************
水位h,
h<10cm:指示灯报警,蜂鸣器报警,抽水指示灯亮
10
h>40cm: 指示灯报警,蜂鸣器报警,
*******************/
if (h
{
led1=1; //电机启动抽水指示灯
beep=1; //蜂鸣器启动报警
led2=1; //报警指示灯
Delay400Ms;
}
else if (h>max) //水位超出最大值40cm
{
beep=1; //蜂鸣器启动报警
led2=1; //报警指示灯
led1=0;
}
else
{
beep=0; //蜂鸣器断开
led2=0; //报警指示灯
led1=0; //电机启动抽水指示灯
}
你所说的问题:
1、h在10 和 40之间时候LED1一直亮,因为你忽略了最后那个大括号所致,加上以后应该可以解决问题了.......
2、蜂鸣器的问题:建议首先判断是否为有源蜂鸣器,(直接给蜂鸣器加电,若一直响则为有源,否则为无源),要是为有源蜂鸣器的话,以上程序没有问题.....要是为无源蜂鸣器的话,需要输出一定频率的方波来驱动。。。。当时我是打开定时器,让定时器产生pwm,来驱动蜂鸣器,你可以参考下......
引用: 酱油一号 发表于 2012-11-16 18:23
我所做的设计是自动控制水位 用一个传感器检测水位的高低 当检测到水位小于10CM的时候报警指示灯亮蜂 ...
那你的程序问题就不大,还是觉得最后应该加上一个大括号
/****************
水位h,
h<10cm:指示灯报警,蜂鸣器报警,抽水指示灯亮
10
h>40cm: 指示灯报警,蜂鸣器报警,
*******************/
if (h
{
led1=1; //电机启动抽水指示灯
beep=1; //蜂鸣器启动报警
led2=1; //报警指示灯
Delay400Ms;
}
else if (h>max) //水位超出最大值40cm
{
beep=1; //蜂鸣器启动报警
led2=1; //报警指示灯
led1=0;
}
else
{
beep=0; //蜂鸣器断开
led2=0; //报警指示灯
led1=0; //电机启动抽水指示灯
}
你所说的问题:
1、h在10 和 40之间时候LED1一直亮,因为你忽略了最后那个大括号所致,加上以后应该可以解决问题了.......
2、蜂鸣器的问题:建议首先判断是否为有源蜂鸣器,(直接给蜂鸣器加电,若一直响则为有源,否则为无源),要是为有源蜂鸣器的话,以上程序没有问题.....要是为无源蜂鸣器的话,需要输出一定频率的方波来驱动。。。。当时我是打开定时器,让定时器产生pwm,来驱动蜂鸣器,你可以参考下......
举报