标题: 一个单片机程序中的函数,在仿真运行时无法达到预期效果,想问问该怎么改? [打印本页]

作者: 石寨爆欠    时间: 2022-5-3 19:49
标题: 一个单片机程序中的函数,在仿真运行时无法达到预期效果,想问问该怎么改?
void warn()  //报警函数   低电平有效
{
   if((TH>WenDu)&&(RH>ShiDu))                              
     {
      bee=0; //报警
                        fan=0;//风扇
                        heater=0;//加热
     }   
     else if((TH<WenDu)&&(RH>ShiDu))
    {         bee=0; //报警
                        fan=1;
                        heater=0;//加热
    }
                 else if((TH>WenDu)&&(RH<ShiDu))
    {         bee=1;
                        fan=0;
                        heater=1;
    }
                else if((TH<WenDu)&&(RH<ShiDu))
    {         bee=1;
                        fan=1;
                        heater=1;
    }}

作者: Hephaestus    时间: 2022-5-3 21:03
你预期的效果是什么用软件勉强可以看出来,没达到效果你自己不说谁也猜不到是没达到什么效果。
作者: 18520649817    时间: 2022-5-3 21:54
不要用else if
作者: lkc8210    时间: 2022-5-3 22:57
只看代码没问题
预期效果是什么?
TH/WenDu/RH/ShiDu的单位相符吗?
有些代码会把数值乘大10倍来显示小数位

作者: zhxiufan    时间: 2022-5-4 11:22
关键是你预期效果是什么?知道你的预期,才能知道如何帮你。
作者: 来51学习    时间: 2022-5-4 17:58
首先说明一下你的要求,而后捋清楚逻辑关系
作者: 石寨爆欠    时间: 2022-5-4 18:52
lkc8210 发表于 2022-5-3 22:57
只看代码没问题
预期效果是什么?
TH/WenDu/RH/ShiDu的单位相符吗?

温湿度传感器的程序是我从黑51这移植的,TH和RH是带小数了。我现在把乘10加在显示里后,湿度比较好使了,温度的还是没有用。我不懂这个if()里的表达式为什么没用。

V}TXT9H0X`1KM01Y{(0HSW3(1).png (27.12 KB, 下载次数: 56)

V}TXT9H0X`1KM01Y{(0HSW3(1).png





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1