找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3870|回復: 18
收起左側

求大佬看看溫度報警器出現(xiàn)的這個問題can't open file 'DS18B20.h'該怎么解決啊

  [復制鏈接]
ID:856835 發(fā)表于 2020-12-13 15:25 | 顯示全部樓層 |閱讀模式
本帖最后由 15836216717 于 2020-12-13 15:27 編輯

#include <AT89X52.h>
#include "DS18B20.h"   
#define uint unsigned int
#define uchar unsigned char   //???
#define SET  P3_1    //?????
#define DEC  P3_2    //?????
#define ADD  P3_3    //?????
#define BEEP P3_7    //?????
bit shanshuo_st;    //??????
bit beep_st;     //???????
sbit DIAN = P2^7;        //???
uchar x=0;      //???
signed char m;     //???????
uchar n;      //???????
uchar set_st=0;     //????
signed char shangxian=38;  //??????,????38
signed char xiaxian=5;   //??????,????38
uchar code  LEDData[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};
/*****?????*****/
void Delay(uint num)
{
while( --num );
}
/*****??????0*****/
void InitTimer(void)
{
  TMOD=0x1;
  TH0=0x3c;
  TL0=0xb0;     //50ms(??12M)
}
/*****???0??????*****/
void timer0(void) interrupt 1
{
TH0=0x3c;
TL0=0xb0;
x++;
}
/*****????0????*****/
void int0(void) interrupt 0
{

EX0=0;      //?????0
if(DEC==0&&set_st==1)
{
  shangxian--;
  if(shangxian<xiaxian)shangxian=xiaxian;
}
else if(DEC==0&&set_st==2)
{
  xiaxian--;
  if(xiaxian<0)xiaxian=0;
}
}
/*****????1????*****/
void int1(void) interrupt 2
{
EX1=0;      //?????1
if(ADD==0&&set_st==1)
{
  shangxian++;
  if(shangxian>99)shangxian=99;
}
else if(ADD==0&&set_st==2)
{
  xiaxian++;
  if(xiaxian>shangxian)xiaxian=shangxian;
}  
}
/*****????*****/
void check_wendu(void)
{
uint a,b,c;
c=ReadTemperature()-5;  //????????DS18B20?????
a=c/100;     //????????
b=c/10-a*10;    //????????
m=c/10;      //???????
n=c-a*100-b*10;    //???????
if(m<0){m=0;n=0;}   //????????
if(m>99){m=99;n=9;}   //????????   
}
/*****???????????*****/
Disp_init()   
{
P2 = 0xbf;      //??-
P1 = 0xf7;
Delay(200);
P1 = 0xfb;
Delay(200);   
P1 = 0xfd;
Delay(200);
P1 = 0xfe;
Delay(200);
P1 = 0xff;         //????
}
/*****???????*****/
Disp_Temperature()     //????
{
P2 =0xc6;      //??C
P1 = 0xf7;
Delay(300);
P2 =LEDData[n];    //????
P1 = 0xfb;
Delay(300);
P2 =LEDData[m%10];    //????
DIAN = 0;         //?????
P1 = 0xfd;
Delay(300);
P2 =LEDData[m/10];    //????
P1 = 0xfe;
Delay(300);
P1 = 0xff;         //????
}
/*****?????????*****/
Disp_alarm(uchar baojing)
{
P2 =0xc6;      //??C
P1 = 0xf7;
Delay(200);
P2 =LEDData[baojing%10]; //????
P1 = 0xfb;
Delay(200);
P2 =LEDData[baojing/10]; //????
P1 = 0xfd;
Delay(200);
if(set_st==1)P2 =0x89;
else if(set_st==2)P2 =0xc7; //??H???L??
P1 = 0xfe;
Delay(200);
P1 = 0xff;         //????
}
/*****?????*****/
void Alarm()
{
if(x>=10){beep_st=~beep_st;x=0;}
if((m>=shangxian&&beep_st==1)||(m<xiaxian&&beep_st==1))BEEP=0;
else BEEP=1;
}
/*****???*****/
void main(void)
{
    uint z;
InitTimer();    //??????
EA=1;      //??????
TR0=1;
ET0=1;      //?????0
IT0=1;        
IT1=1;
check_wendu();
check_wendu();
for(z=0;z<300;z++)
{
  Disp_init();        
  }
}


還有以下問題
1.c(2): warning C318: can't open file 'DS18B20.h'
1.c(73): warning C206: 'ReadTemperature': missing function-prototype
1.c(94): warning C290: missing return value
1.c(112): warning C290: missing return value
1.c(130): warning C290: missing return value


回復

使用道具 舉報

ID:275826 發(fā)表于 2020-12-13 17:55 | 顯示全部樓層
缺少 DS18B20.h 頭文件
回復

使用道具 舉報

ID:452950 發(fā)表于 2020-12-13 18:34 | 顯示全部樓層
代碼不全是這樣的,你只有主程序,沒有溫度傳感器的頭文件
回復

使用道具 舉報

ID:859624 發(fā)表于 2020-12-13 19:30 | 顯示全部樓層
沒有DS18B20的頭文件
回復

使用道具 舉報

ID:860332 發(fā)表于 2020-12-15 10:12 | 顯示全部樓層
光寫了DS18B20頭文件,卻沒有添加DS18B20的文件
回復

使用道具 舉報

ID:382454 發(fā)表于 2020-12-15 10:32 | 顯示全部樓層
頭文件沒有放到相應的目錄。
回復

使用道具 舉報

ID:844772 發(fā)表于 2020-12-15 10:44 | 顯示全部樓層
都是簡單問題。海保#include <AT89X52.h> #include "DS18B20.h"   ,是不是雙引號打錯了?2。是錯誤一導致的;3.這三個錯都是聲明函數(shù)前沒加void,或者隨便return  個值也行。
回復

使用道具 舉報

ID:318489 發(fā)表于 2020-12-15 10:46 | 顯示全部樓層
沒18b20的頭文件
回復

使用道具 舉報

ID:429356 發(fā)表于 2020-12-15 17:29 | 顯示全部樓層
你這是拿了別人的程序吧,而且還沒拿完。DS18B20.h那邊還有定義呢
回復

使用道具 舉報

ID:854384 發(fā)表于 2020-12-18 19:43 | 顯示全部樓層
DS18B20.h是一個頭文件,主函數(shù)里面會用到其中函數(shù),說以會報錯
回復

使用道具 舉報

ID:1053256 發(fā)表于 2023-1-15 15:32 | 顯示全部樓層
glinfei 發(fā)表于 2020-12-15 10:44
都是簡單問題。海保#include  #include "DS18B20.h"   ,是不是雙引號打錯了?2。是錯誤一導致的;3. ...

對,自己寫的必須用””
回復

使用道具 舉報

ID:944207 發(fā)表于 2023-1-15 23:08 | 顯示全部樓層
DS18B20是單獨定義了一個.h文件,這個函數(shù)里面又聲明調用了DS18B20.h這個函數(shù)文件,應該是你的這個DS18
回復

使用道具 舉報

ID:944207 發(fā)表于 2023-1-15 23:13 | 顯示全部樓層
原文件應該是對DS18B20進行了單獨的初始化,是一個.h文件,你給出的這個代碼中開頭對其進行了聲明以及調用,但是軟件沒有在工程文件夾中找到這個DS18B20.h這個文件,就會出現(xiàn)這樣的報錯了,再找一下這個代碼的出處,把代碼下載完全就好了,下面的warning是因為沒有調用DS18B20.h里面的函數(shù),所以DS18B20沒有初始化,不能正常工作,也就沒有return
回復

使用道具 舉報

ID:420836 發(fā)表于 2023-1-15 23:51 | 顯示全部樓層
該錯誤是由于編譯器無法找到包含的頭文件引起的。
回復

使用道具 舉報

ID:1034262 發(fā)表于 2023-1-16 13:01 | 顯示全部樓層
無法打開你指定的頭文件,檢查文件路徑,或者是否有這個頭文件。
回復

使用道具 舉報

ID:748788 發(fā)表于 2023-1-16 13:20 | 顯示全部樓層
先注掉這一行試試——#include "DS18B20.h" 。
回復

使用道具 舉報

ID:1074004 發(fā)表于 2023-4-28 15:52 | 顯示全部樓層
沒有返回變量
回復

使用道具 舉報

ID:1050969 發(fā)表于 2023-4-28 23:16 | 顯示全部樓層
1、檢查是否有“DS18B20.H"這個文件。
2.檢查kell軟件中是否把”ds18b20.h"這個文件所在路徑添加到工程中。
回復

使用道具 舉報

ID:1034262 發(fā)表于 2023-4-29 15:15 | 顯示全部樓層
缺少 "DS18B20.h" 文件,或文件路徑不對。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表