找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4276|回复: 6
收起左侧

单片机温度报警器编译出错,请大佬帮帮忙 c318 can't open file DS18B20

[复制链接]
ID:515075 发表于 2019-4-17 23:12 | 显示全部楼层 |阅读模式
谢谢大家帮我解答问题,我修改了很多,,,我刚才又试了一下,发现error都改掉了!!!!!!!!!!~谢谢大家的指正和帮助!!!!!

单片机源程序如下:

#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;
signed char xiaxian=5;
uchar code
LEDData[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};


void Delay (uint num)
{
while (--num);
}

void InitTimer(void)
{
  TMOD=0x1;
  TH0=0x3C;
  TL0=0xb0;
  }

void timer0(void) interrupt 1
{
  TH0=0x3C;
  TL0=0xb0;
  x++;
  }

void int0(void) interrupt 0
{
  EX0=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;
   }
  }

void int1(void) interrupt 2
{
  EX1=0;
  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;
   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;
   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;
   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;
               
   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=0;
  }
  
  void main(void)
  {
   uint z;
   InitTimer();
   EA=1;
   TR0=1;
   ET0=1;
   IT0=1;
   IT1=1;
   cheak_wendu();
   cheak_wendu();
   for(z=0;z<300;z++)
   {
    Disp_init();
         }
        while(1)
          {
           if(SET==0)
           {
            Delay(2000);
            do{}while(SET==0);
            set_st++;x=0;shanshuo_st=1;
            if(set_st>2)set_st=0;
           }
            if(set_st==0)
           {
            EX0=0;
            EX1=0;
            cheak_wendu();
            Disp_Temperature();
            Alarm();
           }
           else if(set_st==1)
           {
            BEEP=1;
            EX0=1;
            EX1=1;
            if(x>=10){shanshuo_st=~shanshuo_st==0;x=0;}
            if(shanshuo_st) {Disp_alarm(shangxian);}
           }
            else if(set_st==2)
           {
            BEEP=1;
            EX0=1;
            EX1=1;
            if(x>=10){shanshuo_st=~shanshuo_st==0;x=0;}
            if(shanshuo_st) {Disp_alarm(xiaxian);}
           }
          }
         }
        




回复

使用道具 举报

ID:96682 发表于 2019-4-18 00:23 | 显示全部楼层
软件提示:缺少 DS 18B20.h 文件
               把 } 删除
            
回复

使用道具 举报

ID:164602 发表于 2019-4-18 08:16 | 显示全部楼层
第二行的错误是找不到DS18B20头文件,说明你的工程中缺少了这个文件。你在哪里找的程序,就到那里去找。
第73行的错误,是说缺少原型说明,就是说没有申明函数。这个问题就是由前面第二行的问题衍生出来的。
138行的错误是少了一个括号},系统错误。
回复

使用道具 举报

ID:158375 发表于 2019-4-18 10:46 | 显示全部楼层
一点英文不懂多难啊。楼主该知道学好英文多么重要!
回复

使用道具 举报

ID:308437 发表于 2019-4-18 10:49 | 显示全部楼层
你找到那个18B20.h  添加到整个工程中这样应该可以了
回复

使用道具 举报

ID:515075 发表于 2019-4-18 12:52 | 显示全部楼层
HC6800-ES-V2.0 发表于 2019-4-18 08:16
第二行的错误是找不到DS18B20头文件,说明你的工程中缺少了这个文件。你在哪里找的程序,就到那里去找。
...

这个文件的内容我在程序中有写,可是不知道为什么引用不上
就是198行开始的部分
回复

使用道具 举报

ID:515075 发表于 2019-4-18 12:57 | 显示全部楼层
笨笨兔 发表于 2019-4-18 10:46
一点英文不懂多难啊。楼主该知道学好英文多么重要!

唉,我在努力了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表