#include <reg52.h>
#include<intrins.h>
#include<stdio.h>
#include"./lcd/lcd.h"
#include"./delay/delay.h"
sbit ds = P2^3;
sbit LED1 = P2^1;
bit ack = 0;
#define SUCC 1
#define ERR 0
#define HIGH 1
#define LOW 0
void Ds18b20_init()
{
ds = 0;
delay_us(200);
delay_us(200);
ds = 1;
delay_us(30);
if(ds == 0)
{
ack = SUCC;
}
else
{
ack = ERR;
}
delay_us(200);
}
void Ds18b20_write_byte(unsigned char byte)
{
unsigned char i;
for( i = 0; i < 8; i++)
{
ds = 0;
_nop_();
_nop_();
ds = byte&0x01;
byte >>= 1;
delay_us(30);
ds = 1;
}
delay_us(30);
}
bit Ds_read_bit()
{
bit tmp;
ds = 1;
ds = 0;
_nop_();
_nop_();
ds = 1;
tmp = ds;
return tmp;
}
unsigned char Ds_read_byte()
{
unsigned char i,j,k;
for( i = 0; i < 8; i++)
{
j = Ds_read_bit();
k = (j << 7)
单片机ds18b20测量温度
最新推荐文章于 2022-01-04 18:03:52 发布
本文介绍了一种使用单片机进行温度测量的方法,通过DS18B20传感器获取数据,并在LCD上显示温度。代码中包含了初始化、写入和读取数据的函数,实现了温度转换为浮点数并格式化显示的功能。
摘要由CSDN通过智能技术生成