找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

51单片机ds18b20有几句不懂 请各位大侠帮帮忙

[复制链接]
admin 发表于 2012-9-2 12:01:42 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit DS=P2^2;
uint temp;
uchar flag1;
sbit dula=P2^6;
sbit wela=P2^7;
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
//不带小数的0、1、2、3、4、5、6、7、8、9
unsigned char code table1[]={0xbf,0x86,0xdb,0xcf,0xe6,
0xed,0xfd,0x87,0xff,0xef};
//带小数的0、1、2、3、4、5、6、7、8、9
void delay(uint count)
{
uint i;
while(count)
{
i=200;
while(i>0)
i--;
count--;
}
}
void dsreset(void)
{
uint i;
DS=0;
i=103;
while(i>0)i--;
DS=1;
i=4;
while(i>0)i--;
}
bit readbit(void)
{
uint i;
bit dat;
DS=0;i++;
DS=1;i++;i++;
dat=DS;
i=8;while(i>0)i--;
return (dat);
}
uchar read(void)
{
uchar i,j,dat;
dat=0;
for(i=0;i<8;i++)
{
j=readbit();
dat=(j<<7)|(dat>>1);//这句是什么意思?j为何要左移7位dat右移一位之后 相与。有什么作用呢?
}
return(dat);
}
void writebyte(uchar dat)
{
uint i;
uchar j;
bit testb;
for(j=0;j<8;j++)
{
testb=dat&0x01; //这句是什么意思
dat=dat>>1; //dat是存放在哪的?为何要右移
if(testb)
{
DS=0;
i++;i++;
DS=1;
i=8;while(i>0)i--;
}
else
{
DS=0;
i=8;while(i>0)i--;
DS=1;
i++;i++;
}
}
}
void change(void)
{
dsreset();
delay(1);
writebyte(0xcc);
writebyte(0x44);
}
uint tmp()
{
float tt;
uchar a,b;
dsreset();
delay(1);
writebyte(0xcc);
writebyte(0xbe);
a=read();
b=read();
temp=b;
temp<<=8;
temp=temp|a; //为何要和a相与它的结果是什么样的
tt=temp*0.0625;
temp=tt*10+0.5;
return temp;
}
void display(uint temp)
{
dula=0;
P0=table[temp/100];
dula=1;
dula=0;
wela=0;
P0=0x7e;
wela=1;
wela=0;
delay(1);
dula=0;
P0=table1[temp/10%10];
dula=1;
dula=0;
wela=0;
P0=0x7d;
wela=1;
wela=0;
delay(1);
P0=table[temp%100%10];
dula=1;
dula=0;
P0=0x7b;
wela=1;
wela=0;
delay(1);
}

void main(void)
{
uchar a;
while(1)
{
change();
for(a=10;a>0;a--)
display(tmp());
}
}
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-24 23:23 , Processed in 0.049652 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表