CS18b20 显示温度,,总是不成功
把显示函数给屏蔽了!设置成>30度 小灯亮;我屋里的温度也就25度、为什么打开小灯就亮;
请帮我看看 代码呗、、谢谢
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit QD=P2^2;
//sbit dula=P2^6;
//sbit wela=P2^7;
/*
signed char temp1[]={0};
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,
0x76,0x79,0x38,0x3f,0};
*/
float wendu ;
uchar aa, bb,cc,dd;
void display(uchar aa,uchar bb,uchar cc);
void delay(uchar z);
uchar chushihua();
void xie(uchar a);
void read() ;
uchar du();
//uchar ds18b20_V()
//{
// return(QD);
//}
void main()
{
wendu=0;
while(1)
{
read();
if(wendu>30.0)
{
P1=0XFE;
}
}
}
/*************************************/
uchar chushihua() //初始化
{
uchar n,i;
QD=0;
for(i=240;i>0;i--);
QD=1;
for(i=40;i>0;i--);
n=QD;
for(i=200;i>0;i--);
return(n);
}
/*************************************/
uchar du() //读函数
{
uchar i,temp,j;
for(i=8;i>0;i--)
{
temp>>=1;
QD=0;
for(j=2;j>0;j--);//4um
QD=1;
for(j=4;j>0;j--); //8um
if(QD)
{
temp|=0x08;
};
for(j=15;j>0;j--);
QD=1;
}
return(temp);
}
/*************************************/
void xie(uchar a) //写函数
{
uchar i,j;
for(i=8;i>0;i--)
{
QD=0;
for(j=7;j>0;j--);
if((bit)(a&0x01)==1)
{
QD=1;
}
else
{
QD=0;
}
for(j=30;j>0;j--);
QD=1;
a>>=1;
}
}
/*************************************/
void read() //读温度函数
{
uchar i;
chushihua(); //初始化
xie(0xcc); //写命令 跳过ROM
xie(0x44); //写命令 启动温度转换
chushihua(); //初始化
xie(0xcc); //写命令 跳过ROM
xie(0xbe); //读暂存器里的温度命令
for(i=0;i>2;i++)
{
temp1= du();
}
chushihua();//结束读温度
wendu = (temp1<<8 | temp1) * 0.0625;
}
/*************************************/
void delay(uchar z) //延时
{
uchar x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/*
void display(uchar aa,uchar bb,uchar cc)
{
dula=1;
P0=table;
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delay(5);
dula=1;
P0=table;
dula=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delay(5);
dula=1;
P0=table;
dula=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delay(5);
} */
:dizzy::dizzy:没有人帮助、、 骑着蜗牛狂奔 发表于 2014-6-28 15:18
没有人帮助、、
待会帮你看看 沉思的牛 发表于 2014-7-14 23:07
待会帮你看看
:handshake 谢谢、、 楼主你能正常显示吗? 沉思的牛 发表于 2014-7-23 19:14
楼主你能正常显示吗?
不能正常显示。。。我终于自己憋出来程序了。。。谢谢楼主哈哈哈。。 骑着蜗牛狂奔 发表于 2014-7-29 13:26
不能正常显示。。。我终于自己憋出来程序了。。。谢谢楼主哈哈哈。。
这就是好样的!{:5_106:}
记住,写程序不能总让别人改~ void read() //读温度函数
{
uchar i;
chushihua(); //初始化
xie(0xcc); //写命令 跳过ROM
xie(0x44); //写命令 启动温度转换
chushihua(); //初始化
xie(0xcc); //写命令 跳过ROM
xie(0xbe); //读暂存器里的温度命令
for(i=0;i>2;i++)
{
temp1= du();
}
chushihua();//结束读温度
wendu = (temp1<<8 | temp1) * 0.0625;
}
自己看 tao819tao 发表于 2014-8-6 00:33
void read() //读温度函数
{
uchar i;
:loveliness:
页:
[1]