#include<reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar data disdata[5];
sbit lcdrs=P1^0;
sbit lcdwr=P1^1;
sbit lcden=P1^5;
sbit busy =P0^7;
sbit DQ = P3^2; //温度输入口
#define nops(); {_nop_(); _nop_(); _nop_(); _nop_();} //定义空指令
void delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void delay_us(uint n)
{
while (n--);
}
/*
* 18B20复位函数
*/
void DS18b20_reset(void)
{
bit flag=1;
while (flag)
{
while (flag)
{
DQ = 1;
delay_us(1);
DQ = 0;
delay_us(50); // 550us
DQ = 1;
delay_us(6); // 66us
flag = DQ;
}
delay_us(45); //延时500us
flag = ~DQ;
}
DQ=1;
}
/*
* 18B20写1个字节函数
* 向1-WIRE总线上写一个字节
*/
void write_byte(uint val)
{
uint i;