ds18b20触摸没反应_求助:DS18B20温度测试,数码管显示。但是没有任何反应,不知道哪里出错了。请教高手指点。(附上程序)...
#include#defineucharunsignedchar#defineuintunsignedintuintd_table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x0f,0x5e,0x4f,0x71};uchartemp;s...#include #define uchar unsigned char
#include#defineucharunsignedchar#defineuintunsignedintuintd_table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x0f,0x5e,0x4f,0x71};uchartemp;s...
#include
#define uchar unsigned char
#define uint unsigned int
uint d_table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x0f,0x5e,0x4f,0x71};
uchar temp;
sbit DQ = P2^0;
sbit smg1=P3^0;
sbit smg2=P3^1;
void inti_ds18b20(void);
void delay(uchar i);
void write_byte (uchar dat);
uchar read_byte (void);
uchar read_temperature(void);
void xian_shi(uchar t);
void delay(uchar i)
{
while(i--);
}
void inti_ds18b20(void)
{
uchar n;
DQ=1;
delay(8);
DQ = 0;
delay(80);
DQ = 1;
delay(8);
n=DQ;
delay(4);
// while(!DQ); //DQ为低说明初始化成功;为高说明初始化身边,DS18B20损害或不存在
// return n;
}
void write_byte(uchar dat)
{
uchar i;
for(i=0;i<8;i++)
{
DQ=0;
// delay(1);
DQ=dat&0x01;
delay(4);
DQ=1;
dat=dat>>1;
}
delay(4);
}
uchar read_byte(void)
{
uchar i,val;
for(i=0;i<8;i++)
{
DQ=0;
val=val>>1;
DQ=1;
if(DQ)
{
val=val|0x80;
}
delay(4);
}
return val;
}
uchar read_temperature()
{
uchar a,b,c;
inti_ds18b20();
write_byte(0xcc);
write_byte(0x44);
delay(300);
inti_ds18b20();
write_byte(0xcc);
write_byte(0xbe);
a=read_byte();
b=read_byte();
b=b<<4;
a=(a&0xf0)>>4;
c=a+b;
return c;
}
void xian_shi(uchar t)
{
smg1=0;
smg2=1;
P0 = d_table[t%10];
delay(100);
smg1=1;
smg2=0;
P0 = d_table[t/10];
delay(100);
}
void mian()
{
while(1)
{
temp=read_temperature();
xian_shi(temp);
}
}
展开
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)