標(biāo)題: DS18B20溫度測(cè)試 [打印本頁]

作者: heicad    時(shí)間: 2014-10-24 14:42
標(biāo)題: DS18B20溫度測(cè)試

#include"reg51.h"
#define uchar unsigned char
#define uint unsigned int
#define led P1
#define ledw P2
uchar ledtab[]={0xc0,0xf9,0xa4, 0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
sbit dq=P3^7 ;
uchar delay,f;            

void dela(uchar i)   //5us   t=5+i*2
{
while(--i);
}

void ds18b20_reset()
{
while(1)
{
dq=1;
dq=0;
delay=250;    //540us延時(shí),當(dāng)delay=1時(shí)延時(shí)為2us ,T=2*x
while(--delay);
dq=1;
delay=25;
while(--delay);
while(dq==0)
{
  delay=220;
  while(--delay);
  if(dq==1)
  break;   
}
delay=150;
while(--delay);
break;
   }
}

void ds18b20_write(uchar dat)
{
uchar i=0;
for(i=0;i<8;i++)
{
  dq=1;
  dq=0;
  delay=3;
  while(--delay);
  dq=dat&0x01;
  delay=35;
  while(--delay);
  dq=1;
  dat=dat>>1;
}
}

uchar ds18b20_read()
{
uchar i=0,m=0;
for(i=0;i<8;i++)
   {
    //m>>=1
    dq=1;
  dq=0;
  delay=4;
  while(--delay);
  dq=1;
  delay=4;
  while(--delay);
  if(dq==1)
  m|=0x01<<i;
  //m=m|0x80;
   delay=25;
   while(--delay);
   dq=1;
   delay=1;
   while(--delay);   
   }
   return m;
}
         
uchar ds18b20_temp()
{
uchar temp=0,temph=0,templ=0,k=0;
ds18b20_reset();
ds18b20_write(0xcc);
ds18b20_write(0x44);

ds18b20_reset();
ds18b20_write(0xcc);
ds18b20_write(0xbe);

templ=ds18b20_read();
temph=ds18b20_read();

if((temph&0xf80)!=0)
{
  f=1;
  templ=~templ;
  temph=~temph;
  k=templ+1;
  templ=k;
  if(templ>0xff)
  {
  temph++;
  }
}
else
f=0;
templ=templ>>4;
temph=temph<<4;
temp=templ|temph;
return temp;
}

void main()
{
uchar a=0,b=0,c=0,temp=0;
while(1)
{   
temp=ds18b20_temp();
a=temp/100;
b=temp0/10;
c=temp;

if(f==1)
{
  led=0xbf;
  ledw=1;
  dela(5000);
  ledw=0;
  dela(600);
}
led=ledtab[c];
ledw=8;
dela(5000);
ledw=0;
dela(600) ;

  
  led=ledtab;
  ledw=4;
    dela(5000);
  ledw=0;
  dela(600) ;


  led=ledtab[a];
  ledw=2;
  dela(5000);
  ledw=0;
  dela(600) ;
  }
}


作者: 51hei電控2112312    時(shí)間: 2014-12-21 04:46
很好,正需要
作者: hhtl    時(shí)間: 2016-4-18 17:02
坑爹啊,原理圖都不見
作者: 15890155710    時(shí)間: 2017-5-27 12:58
仿真顯示不正常啊?




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1