µ¥Æ¬»úDS18B20Êý×ÖζȼÆÉè¼Æ - ͼÎÄ

2026/1/14 3:57:28

void delay_DS(uchar z) {

for(;z>0;z--); }

void init_DS() //DS18B20³õʼ»¯º¯Êý { reset_DS(); }

uchar reset_DS() //DS18B20¸´Î»º¯Êý { uchar reset; dq=1; delay_DS(1); //¸ßµçƽÉÔ×÷ÑÓʱ dq=0; delay_DS(50); //ÏÂÀ­Êý¾ÝÏß500us×óÓÒ dq=1; delay_DS(3); //ÊÍ·ÅÊý¾ÝÏß30us×óÓÒ reset=dq; delay_DS(25); return(reset); }

void write_byte(uchar dat) //Ïòµ¥×ÜÏßÉÏдÈëÒ»¸ö×Ö½Ú { uchar i; for(i=0;i<8;i++) { dq=0; dq=dat&0x01; //ÌáÈ¡³ö×îµÍλ£¨Ã¿´ÎÖ»ÄÜ·¢Ò»Î»£© delay_DS(5); //ÑÓʱ50us×óÓÒ dq=1; //Êý¾ÝÏßÀ­¸ß dat=dat>>1; //ÓÒÒÆÒ»Î»£¬×¼±¸·¢ËÍÏÂһλ } delay_DS(5); }

uchar read_byte() //´Óµ¥×ÜÏßÉ϶Áȡһ¸ö×Ö½Ú { uchar i, value=0; for(i=0;i<8;i++) { value=value>>1;

30

dq=0; dq=1; delay_DS(1); if(dq==1) value=value|0x80; delay_DS(6); //ÑÓʱ60us×óÓÒ£¬µÈ´ýDS18B20Íê³ÉÒ»¸ö¶ÁʱÐò } return(value); }

void read_temp() //¶ÁDS18B20ζȺ¯Êý {

reset_DS(); write_byte(0xcc); //Ìø¹ýROM write_byte(0x44); //Æô¶¯Î¶Èת»» reset_DS(); write_byte(0xcc); //Ìø¹ýROM write_byte(0xbe); //¶ÁÄÚ²¿RAMÖÐÄÚÈÝ low_temp=read_byte(); //¶ÁζȵÍ×Ö½Ú high_temp=read_byte(); //¶Áζȸß×Ö½Ú }

void convert_temp() //ζÈת»»º¯Êý { temp=high_temp*256+low_temp; if(high_temp>0xf8) //ÅжÏζÈÊÇ·ñΪ¸ºÊý { flag=1; temp=(~temp)+1; } temp=temp*0.0625; //¼ÆËãζÈÊýÖµ bai=temp/100; //¼ÆËãζȰÙλÊý shi=temp/10; //¼ÆËãζÈʮλÊý ge=temp; //¼ÆËãζȸöλÊý xs=(low_temp&0x0f)*10*0.0625;//ζȵÍ×ֽڵĵÍËÄλ´ú±íµÄÊÇСÊýÖµ£¨0.0625*16=1£© }

/*************************ζȼì²â*******************************/ void test_temp() {

uchar tem,a,b; if(flag==1) a=-1; else a=1;

31

tem=a*(bai*100+shi*10+ge); if(temp>=high_test_temp||temp

/*************************°´¼ü¼ì²â*******************************/ void delay() { uchar u,d; for(u=0;u<200;u++) for(d=0;d<200;d++) {} }

void test_aj() { if(high_test_temp_up==0) { delay(); high_test_temp++; } else if(high_test_temp_down==0) { delay(); high_test_temp--; } else if(low_test_temp_up==0) { delay(); low_test_temp++; } else if(low_test_temp_down==0) { delay(); low_test_temp--; } }

/*************************Ö÷º¯Êý*******************************/ void main()

32

{ init_1602(); init_DS(); display1(); for(j=0;j<30;j++)for(i=0;i<30000;i++); wc51r(0x01); //ÇåÆÁ delay5ms(); display2(); for(j=0;j<30;j++)for(i=0;i<30000;i++); wc51r(0x01); //ÇåÆÁ delay5ms(); while(1) { bj=1; //ÔÚеÄÒ»´Î²âοªÊ¼£¬·äÃùÆ÷ÎÞЧ flag=0; //ÔÚеÄÒ»´Î²âοªÊ¼£¬flagÇåÁã test_aj(); //¼ì²âÓÐûÓа´¼ü°´ÏÂÏëÒªÐÞ¸Äζȱ¨¾¯ÏÞ read_temp(); //¶ÁDS18B20ÎÂ¶È convert_temp(); //ת»»ÎÂ¶È display0(); //ÏÔʾÎÂ¶È test_temp(); //¼ì²âÎÂ¶È } //ΪÁËʵʱ¼ì²âζȣ¬Òò´Ëÿ´Î²âνáÊø²»ÓÃÑÓʱ }

33


µ¥Æ¬»úDS18B20Êý×ÖζȼÆÉè¼Æ - ͼÎÄ.doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ
ËÑË÷¸ü¶à¹ØÓÚ£º µ¥Æ¬»úDS18B20Êý×ÖζȼÆÉè¼Æ - ͼÎÄ µÄÎĵµ
Ïà¹ØÍÆ¼ö
Ïà¹ØÔĶÁ
¡Á ÓοͿì½ÝÏÂÔØÍ¨µÀ£¨ÏÂÔØºó¿ÉÒÔ×ÔÓɸ´ÖƺÍÅŰ棩

ÏÂÔØ±¾ÎĵµÐèÒªÖ§¸¶ 10 Ôª

Ö§¸¶·½Ê½£º

¿ªÍ¨VIP°üÔ»áÔ± ÌØ¼Û£º29Ôª/ÔÂ

×¢£ºÏÂÔØÎĵµÓпÉÄÜ¡°Ö»ÓÐĿ¼»òÕßÄÚÈݲ»È«¡±µÈÇé¿ö£¬ÇëÏÂÔØÖ®Ç°×¢Òâ±æ±ð£¬Èç¹ûÄúÒѸ¶·ÑÇÒÎÞ·¨ÏÂÔØ»òÄÚÈÝÓÐÎÊÌ⣬ÇëÁªÏµÎÒÃÇЭÖúÄã´¦Àí¡£
΢ÐÅ£ºxuecool-com QQ£º370150219