⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 18b20.h

📁 ds18b20温度传感器的头文件
💻 H
字号:
#include <math.h>
#define uchar unsigned char
#define uint  unsigned int
void WriteData(uchar *p);
uchar s[4];
//sbit  SID=P2^6;
//sbit  SCK=P2^5;          //12864
//sbit  feng=P1^4;         //蜂鸣
sbit DQ= P2^2;          //18b20  入口

uchar data temp_data[]={0x00,0x00};
uchar tempdata=25;
bit fu_flag;           //负温度标志

/*******11us延时程序***********/
void delay(uint t)
{
  for(;t>0;t--);
}


/*******DS18B20复位程序*******/
void ow_reset(void)
{
  char presence=1;
  while(presence)
  {
     while(presence)
     {
       DQ=1;_nop_();_nop_();
       DQ=0;
       delay11us(50);
       DQ=1;
       delay11us(6);
       presence=DQ;
     }
   delay11us(45);
   presence=~DQ;
   }
   DQ=1;
}

/**********DS18B20写字节函数**********/
void write_byte(uchar val)
  {
   uchar i;
   for(i=8;i>0;i--)
   {
     DQ=1;_nop_();_nop_();
     DQ=0;_nop_();_nop_();_nop_();_nop_();_nop_();
     DQ=val&0x01;
     delay11us(6);
     val=val/2;
   }
   DQ=1;
   delay(1);
   }

/**********DS18B20读字节函数**********/
uchar read_byte(void)
  {
   uchar i;
   uchar value=0;
   for(i=8;i>0;i--)
   {
    DQ=1;_nop_();_nop_();
    value>>=1;
    DQ=0;_nop_();_nop_();_nop_();_nop_();
    DQ=1;_nop_();_nop_();_nop_();_nop_();
    if(DQ)value|=0x80;
    delay11us(6);
   }
   DQ=1;
   return(value);
  }

/*************读温度数据函数***********/
void read_temp(void)
{
  ow_reset();
  write_byte(0xcc);
  write_byte(0xbe);
  temp_data[0]=read_byte();
  temp_data[1]=read_byte();
  ow_reset();
  write_byte(0xcc);
  write_byte(0x44);
}

/***************温度数值处理***************/
void work_temp(void)
{
  uchar zheng;
  if(temp_data[1]>127)                       //负温度取补码,标志位置位
   {
   temp_data[1]=(256-temp_data[1]);
   temp_data[0]=(256-temp_data[0]);
   fu_flag=1;
   }

  zheng=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x0f)<<4);  //整数数值(三数位)

   tempdata=zheng;
}

/***************温度测量函数**************/
void temperture(void)
{
  read_temp();
  work_temp();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -