📄 ds18b20.c
字号:
#include<ds18b20.h>
void delay(unsigned char us)//6*us+2+2+2
{
unsigned char k;
for(k=0;k<us;k++)
;
}
bit reset18b20(void)
{
unsigned char i;
bit exsit;
DQ=0;
for(i=0;i<100;i++)
;
//delay(60);
DQ=1;
for(i=0;i<12;i++)
;
//delay(6);
exsit=DQ;
for(i=0;i<70;i++)
;
// delay(20);
return(exsit);
}
bit readbit18b20(void)
{
char i;
DQ=0;
DQ=1;
for(i=0;i<3;i++)
;
return(DQ);
}
unsigned char readbyte18b20(void)
{
unsigned char i,value=0,j;
for(i=0;i<8;i++)
{ value>>=1;
if(readbit18b20())
value|=0x80;
else
value&=0x7f;
// if(i<7)
for(j=0;j<5;j++)
;
//
}
// delay(5);
return(value);
}
void writebit18b20(bit databit)
{
unsigned char j;
DQ=0;
for(j=0;j<1;j++)
;
if(databit==1)
DQ=1;
for(j=0;j<12;j++)
;
//delay(9);
DQ=1;
}
void writebyte18b20(unsigned char databyte)
{
unsigned char i,j,temp=0;
for(i=0;i<8;i++)
{
temp=databyte>>i;
if(temp&0x01)
writebit18b20(1);
else
writebit18b20(0);
}
for(j=0;j<20;j++)
;
//delay(24);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -