关于PIC1824 读18b20温度程序
最近在做一个实验,由PIC1824读出18B20温度后传给主单片机STM32F,程序里已做了温度上限90的限制,但仍然会有大于90的数据出现在STM32里面,将程序发上,大侠们帮忙看看是不是程序上有什么不妥。unsigned int wendu() //处理温度数据赋值
{
U8 n,i;
int temp_Data,temp_Data_2=0;
DS1820_Reset();
DS1820_WriteData(0xcc);
DS1820_WriteData(0x44);
__delay_ms(100);
DS1820_Reset();
DS1820_WriteData(0xcc);
DS1820_WriteData(0xbe);
for(n=0;n<2;n++)
{
temperature=DS1820_ReadData();
}
DS1820_Reset();
temp_Data=temperature;
temp_Data&=0xf0;
temp_Data=temperature<<4;
temp_Data_2=temperature>>4;
temp_Data=temp_Data|temp_Data_2;
if(temp_Data<90)
{
TEME=temp_Data;
}
DS1820_Reset();
DS1820_WriteData(0xcc);
DS1820_WriteData(0x44);
__delay_ms(100);
DS1820_Reset();
DS1820_WriteData(0xcc);
DS1820_WriteData(0xbe);
for(n=0;n<2;n++)
{
temperature=DS1820_ReadData();
}
DS1820_Reset();
temp_Data=temperature;
temp_Data&=0xf0;
temp_Data=temperature<<4;
temp_Data_2=temperature>>4;
temp_Data=temp_Data|temp_Data_2;
if(temp_Data<90)
{
TEMD=temp_Data;
}
if(TEMD==TEME)
{
TEMP=TEMD;
}
}
温度是读了两次后都相同再传的,现正郁闷中...................
1.03926E+13 10392556500000 10:39 25 56 50 0
1.03926E+13 10392556500000 10:39 25 56 50 0
1.03926E+13 10392556500000 10:39 25 56 50 0
1.03926E+13 10392556500000 10:39 25 56 50 0
1.03926E+13 10392556500000 10:39 25 56 50 0
1.04027E+13 10402656500000 10:40 26 56 50 0
1.04026E+13 10402556500000 10:40 25 56 50 0
1.04027E+13 10402656500000 10:40 26 56 50 0
1.04027E+13 10402656960008 10:40 26 56 96 8
1.04021E+13 10402055960000 10:40 20 55 96 0
1.04021E+13 10402055960000 10:40 20 55 96 0
1.04021E+13 10402055960000 10:40 20 55 96 0
1.04021E+13 10402055960000 10:40 20 55 96 0
1.04021E+13 10402055960000 10:40 20 55 96 0
1.04021E+13 10402055500000 10:40 20 55 50 0
1.04021E+13 10402055500000 10:40 20 55 50 0
1.04021E+13 10402055500000 10:40 20 55 50 0
1.04021E+13 10402055500000 10:40 20 55 50 0
1.04021E+13 10402055500000 10:40 20 55 50 0
1.04121E+13 10412055500000 10:41 20 55 50 0
1.04121E+13 10412055490000 10:41 20 55 49 0
1.04121E+13 10412055490000 10:41 20 55 49 0
1.04121E+13 10412055490000 10:41 20 55 49 0
1.04121E+13 10412055490000 10:41 20 55 49 0
1.04129E+13 10412859530000 10:41 28 59 53 0
1.04129E+13 10412859530000 10:41 28 59 53 0
1.04129E+13 10412859530000 10:41 28 59 53 0
1.04129E+13 10412859530000 10:41 28 59 53 0
10412859:20008 10412859:20008 10:41 28 59 #VALUE! 8
10412658:20000 10412658:20000 10:41 26 58 #VALUE! 0
10412558:20000 10412558:20000 10:41 25 58 #VALUE! 0
10422558:20000 10422558:20000 10:42 25 58 #VALUE! 0
10422558:20000 10422558:20000 10:42 25 58 #VALUE! 0
10422558:20000 10422558:20000 10:42 25 58 #VALUE! 0
10422558:20000 10422558:20000 10:42 25 58 #VALUE! 0
1.04226E+13 10422558520000 10:42 25 58 52 0
1.04226E+13 10422558520000 10:42 25 58 52 0
1.05128E+13 10512759500000 10:51 27 59 50 0
1.05128E+13 10512759500000 10:51 27 59 50 0
1.05128E+13 10512759500000 10:51 27 59 50 0
1.05127E+13 10512659500000 10:51 26 59 50 0
10512659:50008 10512659:50008 10:51 26 59 #VALUE! 8
10512258:50000 10512258:50000 10:51 22 58 #VALUE! 0
10512258:50000 10512258:50000 10:51 22 58 #VALUE! 0
10522258:50000 10522258:50000 10:52 22 58 #VALUE! 0
10522257:50000 10522257:50000 10:52 22 57 #VALUE! 0
10522257:50000 10522257:50000 10:52 22 57 #VALUE! 0
1.05223E+13 10522258520000 10:52 22 58 52 0
1.05223E+13 10522257520000 10:52 22 57 52 0
1.05223E+13 10522258520000 10:52 22 58 52 0
1.05223E+13 10522257520000 10:52 22 57 52 0
1.05223E+13 10522257520000 10:52 22 57 52 0
这里的是已超过两位数温度值了,这是为什么呢? 人工顶起,寻求帮助!
页:
[1]