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

📄 cewen.c

📁 18B20的程序 大家分享 刚刚接触的可以看看 挺有帮助的
💻 C
字号:
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar tplsb,tpmsb;
sbit DQ=P3^7;
void delay(uint t);
void TxReset(void);
void RxWait(void);
bit RdBit(void);
uchar RdByte(void);
void WrByte(uchar b);
void convert(void);
void RdTemp(void);
 main()
{  
   do
{   delay(1);
    convert();
    delay(1000);
    RdTemp();
}
 while(1);
}
void delay(uint t)
{   
   uint i;
  while(t--)
{
  for(i=0;i<125;i++)
  {}
}
}
void TxReset(void)
{  
   uint i;
  DQ=0;
  i=100;
  while(i>0) i--;
  DQ=1;
  i=4;
  while(i>0) i--;
}
void RxWait(void)
{  
    uint i;
    while(DQ);
    while(~DQ);
    i=4;
    while(i>0) i--;
}
bit RdBit(void)
{  uint i;
   bit b;
   DQ=0;
   i++;
   DQ=1;
   i++; i++;
   b=DQ;
   i=8;
   while(i>0) i--;
   return (b);
}
uchar RdByte(void)
{  
   uchar i,j,b;
   b=0;
   for(i=1;i<=8;i++)
{      
     j=RdBit();
     b=(j<<7)|(b>>1);
}
return(b);
}
void WrByte(uchar b)
{  
  uint i;
  uchar j;
 bit btmp;
for(j=1;j<=8;j++)
{
  btmp=b&0x01;
  b=b>>1;
  if(btmp)
{
   DQ=0;
   i++;i++;
   DQ=1;
   i=8;
  while(i>0) i--;
}
else
{  
   DQ=0;
   i=8;
   while(i>0) i--;
   DQ=1;
   i++;
   i++;
 }
 }
}
void convert(void)
{  
   TxReset();
   RxWait();
   delay(1);
   WrByte(0xcc);
   WrByte(0x44);
}
void RdTemp(void)
{   char a,b,c;
    TxReset();
    RxWait();
    delay(1);
    WrByte(0xcc);
    WrByte(0xbe);
    tplsb=RdByte();
    tpmsb=RdByte();
	a=tplsb<<4;
	a>>=4;
	b=tplsb>>4;
	c=tpmsb<<5;
	c>>=5;
   
    
}

⌨️ 快捷键说明

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