标题: 为什么我上一个lcd1602函数能读取到temp,但是在报警中却读取不了temp [打印本页]

作者: 不来也不去    时间: 2020-3-13 14:09
标题: 为什么我上一个lcd1602函数能读取到temp,但是在报警中却读取不了temp
相关如下
void LcdDisplay(int temp)得temp能用,但是void warn(int temp)说我的temp没定义?
程序如下
void LcdDisplay(int temp)   
{   
   unsigned char  datas[] = {0, 0, 0, 0, 0};
   unsigned char TempH,TempL;
if(temp&0x8000)  
   {
  LcdWriteCom(0x85);
  LcdWriteData('-');
  temp=~temp;
  temp +=1;
}
else   
{
  LcdWriteCom(0x85);  
  LcdWriteData('+');   
}
TempH=temp>>4;
TempL=temp&0x0F;
TempL=TempL*6.25+0.5;
datas[0] = TempH/100%10;
datas[1] = TempH/10%10;
datas[2] = TempH%10;
datas[3] = TempL/10%10;
datas[4] = TempL%10;

LcdWriteCom(0x86);   
LcdWriteData('0'+datas[0]);

LcdWriteCom(0x87);   
LcdWriteData('0'+datas[1]);

LcdWriteCom(0x88);
LcdWriteData('0'+datas[2]);

LcdWriteCom(0x89);  
LcdWriteData('.');  

LcdWriteCom(0x8a);
LcdWriteData('0'+datas[3]);
   
}
void warn(int temp)
{
if(temp>=27)
{
  beep=~beep;
  delay(50);
}

}


温度报警.zip

32.8 KB, 下载次数: 4


作者: wulin    时间: 2020-3-13 22:28
你的程序里到处定义变量名temp,有全局变量temp、局部变量temp、形式参数temp,不出错才怪。
作者: sZhou    时间: 2020-3-14 08:51
全局变量tempa、局部变量temp1、形式参数temp2 -------楼主一定会怎么改的,是不是?
作者: 不来也不去    时间: 2020-3-14 09:13
wulin 发表于 2020-3-13 22:28
你的程序里到处定义变量名temp,有全局变量temp、局部变量temp、形式参数temp,不出错才怪。

是不是把所有同一个temp统一成一个全局变量就可以了
作者: wulin    时间: 2020-3-14 15:54
不来也不去 发表于 2020-3-14 09:13
是不是把所有同一个temp统一成一个全局变量就可以了

给你改好了,自己对照就知道哪里错!
温度报警 仿真.zip (142.25 KB, 下载次数: 6)





作者: 不来也不去    时间: 2020-3-15 18:47
wulin 发表于 2020-3-14 15:54
给你改好了,自己对照就知道哪里错!

谢谢老师!问题已解决




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