欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
DS18B20能讀數據但數據錯誤【已解決】
[打印本頁]
作者:
xiaoyao
時間:
2014-12-17 00:21
標題:
DS18B20能讀數據但數據錯誤【已解決】
程序分享出來給需要的人作參考
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit DQ=P2^2; //DS18B20單總線
sbit dula=P2^6; //控制數碼管段選的鎖存器
sbit wela=P2^7; //控制數碼管位選的鎖存器
sbit rs=P3^5;
sbit lcden=P3^4;
sbit s1=P3^0;
sbit s2=P3^1;
sbit s3=P3^2;
sbit rd=P3^7;
sbit wr=P3^6;
void delay(int us)
{
int s;
for(s=0;s<us;s++);
}
void delay1(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com)
{
rs=0;
lcden=0;
P0=com;
delay1(5);
lcden=1;
delay1(5);
lcden=0;
}
void write_date(uchar date)
{
rs=1;
lcden=0;
P0=date;
delay1(5);
lcden=1;
delay1(5);
lcden=0;
}
void init()
{
wr=0;
dula=0;
wela=0;
lcden=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80);
}
uchar reset()
{
uchar presence;
DQ=0;
delay(29);
DQ=1;
delay(3);
presence=DQ;
delay(25);
return(presence);
}
uchar read_bit()
{
uchar i;
DQ=0;
DQ=1;
for(i=0;i<3;i++);
return(DQ);
}
void write_bit(char bitval)
{
DQ=0;
if(bitval==1)DQ=1;
delay(5);
DQ=1;
}
uchar read_byte()
{
uchar i;
uchar value=0;
for(i=0;i<8;i++)
{
if(read_bit())value|=0x01<<i;
delay(6);
}
return(value);
}
void write_byte(char val)
{
uchar i;
uchar temp;
for(i=0;i<8;i++)
{
temp=val>>i;
temp&=0x01;
write_bit(temp);
}
delay(5);
}
uint get_tmp()
{
uchar a,b,temp;
float tt;
reset();
write_byte(0xcc);//SkipROM
write_byte(0x44);//開始轉換
delay(31);
reset();
write_byte(0xcc);
write_byte(0xbe);
a=read_byte();
b=read_byte();
temp=b;
temp<<=8; //two byte compose a int variable
temp=temp|a;
tt=temp*0.0625;
temp=tt*10+0.5;
return(temp);
}
void display(uchar num)
{
uchar bai,shi,ge;
bai=num/100;
shi=(num%100)/10;
ge=(num%100)%10;
write_com(0x80);
write_date(0x30+bai);
write_com(0x81);
write_date(0x30+shi);
write_com(0x82);
write_date(0x30+ge);
}
void main()
{
uchar a;
uint tmp;
init();
while(1)
{
for(a=28;a>0;a--)
{
tmp=get_tmp();
display(tmp);
delay(60);
}
}
}
復制代碼
作者:
xiaoyao
時間:
2014-12-17 00:22
把轉換時間調長一點
問題解決了,謝謝朋友了。
作者:
LJYOU1988
時間:
2016-10-7 08:53
你好, 請問我可以用ds18b20 ID 測試器測出ID,不過我有客戶說ID 是錯誤的,是怎么回事, 謝謝了
作者:
tyyhmtyyhm
時間:
2018-1-18 00:23
你好,這個地方為什么要加0x30
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1