标题:
ds18b20温度显示编译错误的问题
[打印本页]
作者:
lantian28
时间:
2018-9-16 13:24
标题:
ds18b20温度显示编译错误的问题
202801ohrcq789c9cwdhdy.png
(53.26 KB, 下载次数: 50)
下载附件
2018-9-16 13:21 上传
各位大侠帮忙查看一下是什么问题,
作者:
臭屁大王
时间:
2018-9-16 14:50
检查一下你的分号位置,应该是你少括号之类的
作者:
臭屁大王
时间:
2018-9-16 14:51
void Init_DS18B20(void){//初始化ds1820温度传感器
unsigned char x=0;
DQ = 1; //DQ复位
delayy(80); //稍做延时
DQ = 0; //单片机将DQ拉低
delayy(800); //精确延时 大于 480us
DQ = 1; //拉高总线
delayy(140);
x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
delayy(200);
}
unsigned char ReadOneChar(void){//读一个字节(DS18B20驱动)
unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; // 给脉冲信号
dat>>=1;
DQ = 1; // 给脉冲信号
if(DQ)
dat|=0x80;
delayy(40);
}
return(dat);
}
void WriteOneChar(unsigned char dat){
unsigned char i=0;
for (i=8; i>0; i--)
{
DQ = 0;
DQ = dat&0x01;
delayy(50);
DQ = 1;
dat>>=1;
}
}
unsigned int wd(void){
unsigned char a=0;
unsigned char b=0;
unsigned int t=0;
float tt=0;
Init_DS18B20();
WriteOneChar(0xCC); // 跳过读序号列号的操作
WriteOneChar(0x44); // 启动温度转换
Init_DS18B20();
WriteOneChar(0xCC); //跳过读序号列号的操作
WriteOneChar(0xBE); //读取温度寄存器
a=ReadOneChar(); //读低8位
b=ReadOneChar(); //读高8位
t=b;
t<<=8;
t=t|a;
tt=t*0.0625;
t= tt*10; //放大10倍输出并四舍五入
return(t);
}
作者:
臭屁大王
时间:
2018-9-16 14:53
//温度送显
void wsongxian(){
iii=wd();//读温度并送显
mmm=iii/100;
bbb=iii/10-mmm*10;
ddd=iii-mmm*100-bbb*10;
shuma(10,mmm,bbb,ddd,24,10);
}
作者:
HC6800-ES-V2.0
时间:
2018-9-17 08:34
我看到了:
你的38行if语句,39行用的是小括号(),应该用大括号{}
作者:
lantian28
时间:
2018-9-19 22:27
谢谢各位 问题解决了,是我本人大意错把小括号应用了大括号上,也没有细查一下。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1