单片机温度传感器代码
时间: 2023-07-09 11:10:29 浏览: 78
下面是一个使用DS18B20数字温度传感器的单片机代码示例,代码中使用的是8051单片机,你可以根据自己的需要进行修改:
```c
#include <reg52.h>
#define DQ P2_0
unsigned char temp;
unsigned char T0RH,T0RL,T1RH,T1RL;
bit flag;
void Delay(unsigned char i)
{
while(i--);
}
void InitDS18B20()
{
DQ = 1;
Delay(1);
DQ = 0;
Delay(500);
DQ = 1;
Delay(60);
flag = DQ;
Delay(500);
}
void WriteDS18B20(unsigned char dat)
{
unsigned char i;
for(i = 0;i < 8;i++)
{
DQ = 0;
_nop_();
DQ = dat & 0x01;
dat >>= 1;
Delay(5);
DQ = 1;
_nop_();
}
}
unsigned char ReadDS18B20()
{
unsigned char i,dat;
for(i = 0;i < 8;i++)
{
DQ = 0;
_nop_();
DQ = 1;
_nop_();
dat >>= 1;
if(DQ)
{
dat |= 0x80;
}
Delay(5);
DQ = 1;
_nop_();
}
return dat;
}
void GetDS18B20Temp()
{
InitDS18B20();
WriteDS18B20(0xcc);
WriteDS18B20(0x44);
Delay(100);
InitDS18B20();
WriteDS18B20(0xcc);
WriteDS18B20(0xbe);
T0RL = ReadDS18B20();
T0RH = ReadDS18B20();
temp = T0RL >> 1;
if(T0RH & 0x01)
{
temp |= 0x80;
}
}
void main()
{
while(1)
{
GetDS18B20Temp();
//将温度值写入LED灯显示
P0 = temp;
Delay(1000);
}
}
```
这个代码示例假设你已经将DS18B20连接到了单片机的P2.0引脚上,并且将单片机的LED灯连接到了P0端口,代码将读取DS18B20的温度值并将其写入LED灯显示。