Temperature
temp.h
DS18B20温度头文件
#ifndef __TEMP_H_
#define __TEMP_H_
#include<reg52.h>
#include "delay.h"
#include "core51_uart.h"
//---重定义关键词---//
#ifndef uchar
#define uchar unsigned char
#endif
#ifndef uint
#define uint unsigned int
#endif
#define Delay1ms Delay_Xms
sbit DSPORT = P3^7;
uchar Ds18b20Init(void); //DS18B20初始化
void Ds18b20WriteByte(uchar com); //写一个字节
uchar Ds18b20ReadByte(void); //读取一个字节
void Ds18b20ChangTemp(void); //让18b20开始转换温度
void Ds18b20ReadTempCom(void); //读取温度的命令
int Ds18b20ReadTemp(void); //读取温度
void Test_Temp_UART(void); //DS18B20测试程序
#endif
temp.c
DS18B20温度源文件
#include "temp.h"
/*******************************************************************************
* 函 数 名 : Ds18b20Init
* 输 入 : 空
* 输 出 : 初始化成功返回1,失败返回0
* 函数功能 : DS18B20初始化
* 详细描述 : 初始化函数
*******************************************************************************/
uchar Ds18b20Init(void)
{
uchar i;
DSPORT = 0; //将总线拉低480us~960us
i = 70;
while(i--); //延时642us
DSPORT = 1; //然后拉高总线,如果DS18B20做出反应会将