学海荡舟手机网
导航

主页 > 电子设备技术 > 电器电路基础 > > 详细内容

18b20测温源程序

#include <reg51.h>
#include<intrins.h>

#define  BUSY1    (DQ1==0)
sbit      DQ1    =  P0^4;
 

unsigned char idata TMP;
unsigned char idata TMP_d;
unsigned char f;
void wr_ds18_1(char dat);
unsigned char rd_ds18_1();

/***************延时程序,单位us,大于10us*************/
void time_delay(unsigned char time)
{
 
  time=time-10;
  time=time/6;
  while(time!=0)time--;
}

 


/*****************************************************/
/*                reset ds18b20                      */
/*****************************************************/
void ds_reset_1(void)
{
  unsigned char idata count=0; 
  DQ1=0;
   time_delay(240);
 time_delay(240);
  DQ1=1;
  return;
}

 

void check_pre_1(void)
{
     while(DQ1);
     while(~DQ1);
 
        time_delay(30);
}


void read_ROM(void)
{
 int n;
 ds_reset_1();
  check_pre_1();
  wr_ds18_1(0x33);
  for(n=0;n<8;n++){ROM[n]=rd_ds18_1();} 
}


/*****************************************************/
/*      Read a bit from 1820      位读取            */
/*****************************************************/
bit tmrbit_1(void)
{
        idata char i=0;
     bit dat;
     
     DQ1=0;_nop_();
   
        DQ1=1;
       
   _nop_();
   _nop_();
   _nop_();
 _nop_();
  _nop_();
   _nop_();
   _nop_();
   _nop_();
        _nop_();
  _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
 
   
     dat = DQ1;
     
        time_delay(50);
     
     return dat;
}

 


/*****************************************************/
/*                read a bety from ds18b20 字节读取  */
/*****************************************************/
unsigned char rd_ds18_1()
{
  unsigned char idata i,j,dat=0;
     for(i=1;i<=8;i++)
     {
         j=tmrbit_1();
         dat=(j<<(i-1))|dat;
     }
     return dat;
}


/*****************************************************/
/*        write a bety from ds18b20  写字节        */
/****************************************************/
void wr_ds18_1(char dat)
{
     signed char  idata i=0;
     unsigned char idata j;
     bit testb;


相关文章