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

📄 ds1820v2.c

📁 DS1820v2.c simple 1wire example
💻 C
字号:

/**************************************
** Filename: 18b20v2.c
**************************************/

#include "config.h"

unsigned char wmh,wml,flag,count; //flag??????,count?????
void init_1820(void) 
{ 
  SET_DIR_1WIRE;     //??PC2 ??? 
  SET_OP_1WIRE;   
  CLR_OP_1WIRE; 
  delay_us(480);   //480us?? 
  SET_OP_1WIRE; 
  CLR_DIR_1WIRE; 
  delay_us(20);   //15~60us 
  while(CHECK_IP_1WIRE); 
  SET_DIR_1WIRE; 
  SET_OP_1WIRE; 
  delay_us(140);   //60~240us 
} 
void write_1820(unsigned char x) 
{   
  unsigned char m; 
  for(m=0;m<8;m++) 
  { 
    CLR_OP_1WIRE; 
    if(x&(1<<m))   //????,?????! 
    SET_OP_1WIRE; 
    else 
    {CLR_OP_1WIRE;} 
    delay_us(40);   //15~60us 
    SET_OP_1WIRE; 
  } 
  SET_OP_1WIRE; 
} 
unsigned char read_1820(void) 
{     
  unsigned char temp,k,n; 
  temp=0; 
  for(n=0;n<8;n++) 
  {
    CLR_OP_1WIRE; 
    SET_OP_1WIRE; 
    CLR_DIR_1WIRE; 
    k=(CHECK_IP_1WIRE);   //???,????? 
    if(k) 
    temp|=(1<<n); 
    else 
    temp&=~(1<<n); 
    delay_us(50); //60~120us     
    SET_DIR_1WIRE; 
  } 
  return (temp); 
}   

void gettemp(void)       //????? 
{ 
  unsigned char temh,teml,wm0,wm1,wm2,wm3; 
  init_1820();     //??18b20 
  write_1820(0xcc);   // ?????? 
  write_1820(0x44); 
// delay_nms(800);   //??????,???????! 
  init_1820(); 
  write_1820(0xcc); //????? 
  write_1820(0xbe); 
  teml=read_1820(); //??? 
  temh=read_1820(); 
  wm0=teml>>4;     //???8???????8?????,????0~99?! 
  wm1=temh<<4;
    
//count=(temh*256+teml)*6.25; //??????     
if((temh&0xF8) == 0xF8) 
{ 
  flag=1; 
  count=((0xFF-temh)*256+(0xFF-teml))*6.25; 
  //count=((0xFF-temh)*256+(0xFF-teml))*625; 
} 
else 
{   
  flag=0; 
  count=(temh*256+teml)*6.25; 
  //count=(temh*256+teml)*625; //?????? 
}
  wm2=wm1+wm0;     //16???10?? 
  wm3=wm2/100; 
  wmh=(wm2%100)/10;   //?????!wmh??????,wml?????? 
  wml=(wm2%100)%10;
    
    
}

⌨️ 快捷键说明

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