单片机编程,大佬们帮我看看到底哪里出错了。

#include<reg52.h>					//52头文件说明
#define	uchar	unsigned	char
#define	unit	unsigned	int

sbit	DATA=P1^2;					//DS18B20数据口
sbit	weixuan=P1^6;
sbit	duxuan=P1^5;
sbit	zhilen=P1^0;
sbit	zhire=P1^1;
sbit	SCL=P1^3;
sbit	SDA=P1^4;

uchar	bai,shi,ge;
uchar	code	seg7[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void	delay(uchar	us)
{
	while(us--);
}
void	init_ds18b20()
{
	uchar	init_resu;
	DATA=1;
	delay(10);
	DATA=0;
	delay(80);
	DATA=1;
	delay(20);
	init_resu=DATA;
	delay(30);
	DATA=1;
}
uchar	ReadOneChar()
{
	uchar	i	;
	uchar	ReadResult;
	for(i=8;i>0;i--)
	{
		ReadResult>>=1;
		DATA=1;
		delay(1);
		DATA=0;
		delay(1);
		DATA=1;
		delay(1);
		if(DATA)
			ReadResult|=0x80;
		else
		ReadResult&=0x7f;
		delay(8);
	}
	return	ReadResult;
}
WriteOneChar(uchar	dat)
{
	uchar	i;
	for(i=8;i>0;i--)
	{
		DATA=0;
		delay(1);
		DATA=dat&0x01;
		delay(10);
		DATA=1;
		dat>>=1;
	}
	delay(8);
}
void	display(uchar	bai,uchar,shi,uchar	ge)
{
	weixuan=1;
	P0=0xfe;
	weixuan=0;
	duxuan=1;
	P0=seg7[bai];
	duxuan=0;
	delay(30);
	
	weixuan=1;
	P0=0xfd;
	weixuan=0;
	duxuan=1;
	P0=(seg7[shi]|0x80);
	duxuan=0;
	delay(30);
	
	weixuan=1;
	P0=0xfb;
	weixuan=0;
	duxuan=1;
	P0=seg7[ge];
	duxuan=0;
	delay(30);
}
int	ReadTemp()
{
	uchar	a,b;
	int	t;
	float	tt;
	init_ds18b20();
	WriteOneChar(0xcc);
	WriteOneChar(0x44);
	init_ds18b20();
	WriteOneChar(0xcc);
	WriteOneChar(0xbe);
	a=ReadOneChar();
	b=ReadOneChar();
	t=b;
	t<<=8;
	t|=a;
	tt=t*0.0625;
	t=tt*10+0.5;
	return	t;
}
void	StarIic()
{
	SDA=1;
	delay(1);
	SCL=1;
	delay(1);
	SDA=0;
	delay(1);
}
void	StopIic()
{
	SDA=0;
	delay(1);
	SCL=1;
	delay(1);
	SDA=0;
	delay(1);
}
void	ResponsIic()
{
	uchar	i;
	SCL=1;
	delay(1);
	while((SDA==1)&&(i<200))
		i++;
	SCL=0;
	delay(1);
}
void	InitIic()
{
	SDA=1;
	delay(1);
	SCL=1;
	delay(1);
}
void	Write_byteIic(uchar	date)
{
	uchar	i,temp;
	temp=date;
	for(i=0;i<8;i++)
	{
		temp=temp<<1;
		SCL=0;
		delay(1);
		SDA=CY;
		delay(1);
		SCL=1;
		delay(1);
	}
		SCL=0;
		delay(1);
		SDA=1;
		delay(1);
}
void	WriteAddressDateIic(uchar	address	,uchar	date)
{
	StartIic();
	Write_byteIic(0xa0);
	ResponsIic();
	Write_byteIic(address);
	ResponsIic();
	Write_byteIic(date);
	ResponsIic();
	StopIic();
}
void	main()
{
	int	temp;
	InitIic();
	while(1)
	{
		display(bai,shi,ge);
		temp=ReadTemp();
		if(temp>=400)
		{
			zhilen=0;
			zhire=1;
			if(temp>=500)
				WriteAddressDateIic(2,temp);
		}
		else	if(temp<=150)
			zhire=0;
		zhilen=1;
	}
	else
	{
		zhilen=1;
		zhire=1;
	}
	bai=temp%1000/100;
	shi=temp%100/10;
	ge=temp%10;
	disaplay(bai,shi,ge);
}

 

你好,报错信息发给我看下

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

都不说什么错