?? 18b20.h
字號:
#include <reg52.h>
//#include <stdio.h>
sbit EQ=P2^0;
#define uint unsigned int
#define uchar unsigned char
uchar temp_int,temp_piont;
uint flag;//器件檢測位
uint templ;
uint temph;
void delay18b20(unsigned int i)
{
while(--i);
}
void initial()
{
EQ=1;
delay18b20(1);
EQ=0;
delay18b20(600);
EQ=1;
delay18b20(30);
flag=EQ;
delay18b20(20);
while(flag);
}
void wrbyte(uchar word)
{
uchar i;
for(i=0;i<8;i++)
{
EQ=0;
EQ=word&0x1;
delay18b20(15);
EQ=1;
word>>=1;
}
}
uint rebyte(void)
{
uchar i,word=0;
for(i=0;i<8;i++)
{
word>>=1;
EQ=0;
EQ=1;
delay18b20(1);
if(EQ) word|=0x80;
delay18b20(8);
}
return(word);
}
readtemp()
{
initial();
wrbyte(0xcc);//跳過ROM匹配
wrbyte(0x44);//啟動溫度轉(zhuǎn)換
delay18b20(160);
initial();
wrbyte(0xcc);//跳過ROM匹配
wrbyte(0xbe);//讀取溫度寄存器等
templ=rebyte();
temph=rebyte();
temp_int=((temph<<4)&0x70)|((templ>>4)&0x0f);//整數(shù)部分
temp_piont=(templ&0x0f)*5;//小數(shù)部分
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -