(ÍêÕû°æ)»ùÓÚ51µ¥Æ¬»úµÄζȱ¨¾¯Æ÷Éè¼Æ±ÏÒµÉè¼Æ ÏÂÔØ±¾ÎÄ

ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 2025/10/21 22:17:40ÐÇÆÚÒ» ÏÂÃæÊÇÎÄÕµÄÈ«²¿ÄÚÈÝÇëÈÏÕæÔĶÁ¡£

/*****ÑÓʱ×Ó³ÌÐò*****/ void Delay_DS18B20(int num) {

while(num--) ; }

void delay()//5΢ÃëÑÓʱº¯Êý { ;; }

void start() //¿ªÊ¼ÐźŠ{ }

void stop() //ÖÕÖ¹ÐźŠ{ }

SDA=1; delay(); SCL=1; delay(); SDA=0; delay();

SDA=0; delay(); SCL=1; delay(); SDA=1; delay();

void respons() //Ó¦´ð {

uc i; SCL=1; delay();

while((SDA==1)&&(i<250))i++;//Èç¹ûSDAΪµÍÓ¦´ðÓÐЧ£¬»òÕß³¬¹ýÒ»¶¨Ê±¼äĬ

ÈÏÓ¦´ðÓÐЧ }

void init24c04()//I2C×ÜÏß³õʼ»¯ { }

void write_byte(uc date)//д²Ù×÷ {

SCL=0; delay();

SDA=1; delay(); SCL=1; delay();

uc i,temp; temp=date; for(i=0;i<8;i++) {

temp=temp<<1; SCL=0;

}

delay(); } SCL=0; delay(); SDA=1; delay();

SDA=CY; delay(); SCL=1; delay();

uc read_byte()//¶Á²Ù×÷ {

uc i,k; SCL=0; delay(); SDA=1; delay();

for(i=0;i<8;i++) {

SCL=1; delay();

k=(k<<1)|SDA; SCL=0; delay();

}

}

return k;

void write_add(uc address,uc date)//ÍùÈÎÒâµØÖ·´æÊý¾Ý { }

uc read_add(uc address)//¶ÁËæÒâµØÖ·ÄÚÈÝ {

start();

write_byte(0xa0);//0xa0´ú±íдÈë respons();

write_byte(address); respons(); write_byte(date); respons(); stop();

uc date; start();

write_byte(0xa0);//0xa0´ú±íдÈë respons();

write_byte(address); respons(); start();

write_byte(0xa1);//0xa1´ú±í¶Á³ö respons();

}

date=read_byte(); stop();

return date;//·µ»ØÖµ

/*****³õʼ»¯DS18B20*****/ void Init_DS18B20(void) {

uc w=0;

DQ = 1; //DQ¸´Î» Delay_DS18B20(8); //ÉÔ×öÑÓʱ DQ = 0; //µ¥Æ¬»ú½«DQÀ­µÍ

Delay_DS18B20(80); //¾«È·ÑÓʱ£¬´óÓÚ480us DQ = 1; //À­¸ß×ÜÏß Delay_DS18B20(14);

w = DQ; //ÉÔ×öÑÓʱºó£¬Èç¹ûx=0Ôò³õʼ»¯³É¹¦£¬x=1Ôò³õʼ»¯Ê§°Ü Delay_DS18B20(20); }

/*****¶ÁÒ»¸ö×Ö½Ú*****/

unsigned char ReadOneChar(void) {

uc i=0; uc dat = 0; for (i=8;i>0;i--) {

DQ = 0; // ¸øÂö³åÐźÅ