|
部分源碼:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
sbit shi=P2^0;
sbit ge=P2^1;
sbit DQ=P2^2;
sbit C=P2^3;
sbit D=P2^4;
uint temp;
void delay(uint t) //延時函數
{ while(t--); }
void init_ds18b20( ) //DS18B20初始化
{
uchar n;
DQ=1; delay(8);
DQ=0; delay(80);
DQ=1; delay(14);
n=DQ; delay(20);
}
void write_byte(uchar dat) //寫一個字節函數
{
uchar i;
for(i=0;i<8;i++)
{
DQ=0; DQ=dat&0x01;
delay(4);
DQ=1; dat=dat>>1;
}
}
uchar read_byte( ) //讀一個字節函數
{
uchar i,value;
for(i=0;i<8;i++)
{
DQ=0; value>>=1;
DQ=1; if(DQ) value|=0x80; delay(4);
}
return value;
}
uchar readtemperature( ) //讀取溫度函數
{
uchar a,b;
uint t=0;
init_ds18b20(); write_byte(0xcc); write_byte(0x44);
init_ds18b20(); write_byte(0xcc); write_byte(0xbe);
a=read_byte(); b=read_byte();
t=b; t<<=8; t=t|a; t=t*0.0625+0.5;
return t;
}
|
評分
-
查看全部評分
|