#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);

}

}

展开

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐