²Î¿¼ÎÄÏ×
[1]Íõ¹úÓñ£¬µç×ÓÏß·CADÓëʵѵ£¬±±¾©£¬µç×Ó¹¤Òµ³ö°æÉ磬2011Äê¡£ [2]ÀîÈ«Àû£¬µ¥Æ¬»úÔÀí¼°Ó¦Ó㬱±¾©£¬Ç廪´óѧ³ö°æÉ磬2006Äê¡£
[3]¹ùÌìÏ飬51µ¥Æ¬»úCÓïÑԽ̳̣¬±±¾©£¬µç×Ó¹¤Òµ³ö°æÉ磬2012Äê¡£
20
¸½ ¼þ
4.1ÊäÈ벿·Ö³ÌÐò
int Ds18b20ReadTemp() {
float tp; uchar tmh, tml; Ds18b20ChangTemp(); Ds18b20Init();
Ds18b20WriteByte(0xcc); Ds18b20WriteByte(0xbe);
//Ìø¹ýROM²Ù×÷ÃüÁî //·¢ËͶÁȡζÈÃüÁî
//¶ÁȡζÈÖµ¹²16룬ÏȶÁµÍ×Ö½Ú //ÔÙ¶Á¸ß×Ö½Ú
//ÏÈдÈëת»»ÃüÁî
//¶ÁȡζÈ
tml = Ds18b20ReadByte(); tmh = Ds18b20ReadByte(); temp = tmh; temp <<= 8; temp |= tml; if(temp< 0)
//µ±Î¶ÈֵΪ¸ºÊý
{
DisplayData[0] = 0x40;
//ÒòΪ¶ÁÈ¡µÄζÈÊÇʵ¼ÊζȵIJ¹Â룬ËùÒÔ¼õ1£¬ÔÙÈ¡·´Çó³öÔÂë temp=temp-1; temp=~temp; tp=temp;
temp=tp*0.0625*100+0.5;
//ÁôÁ½¸öСÊýµã¾Í*100£¬+0.5ÊÇËÄÉáÎåÈ룬ÒòΪCÓïÑÔ¸¡µãÊýת»»ÎªÕûÐ͵Äʱºò°ÑС
Êýµã
//ºóÃæµÄÊý×Ô¶¯È¥µô£¬²»¹ÜÊÇ·ñ´óÓÚ0.5£¬¶ø+0.5Ö®ºó´óÓÚ0.5µÄ¾ÍÊǽø1ÁË£¬Ð¡ÓÚ
0.5µÄ¾Í }
else
//ËãÓÉ?.5£¬»¹ÊÇÔÚСÊýµãºóÃæ¡£
{
DisplayData[0] = 0x00;
21
tp=temp;//ÒòΪÊý¾Ý´¦ÀíÓÐСÊýµãËùÒÔ½«Î¶ȸ³¸øÒ»¸ö¸¡µãÐͱäÁ¿ //Èç¹ûζÈÊÇÕýµÄÄÇô£¬ÄÇôÕýÊýµÄÔÂë¾ÍÊDz¹ÂëËü±¾Éí temp=tp*0.0625*100+0.5;
//ÁôÁ½¸öСÊýµã¾Í*100£¬+0.5ÊÇËÄÉáÎåÈ룬ÒòΪCÓïÑÔ¸¡µãÊýת»»ÎªÕûÐ͵Äʱºò°ÑС
Êýµã
//ºóÃæµÄÊý×Ô¶¯È¥µô£¬²»¹ÜÊÇ·ñ´óÓÚ0.5£¬¶ø+0.5Ö®ºó´óÓÚ0.5µÄ¾ÍÊǽø1ÁË£¬Ð¡ÓÚ
0.5µÄ¾Í //Ëã¼ÓÉÏ0.5£¬»¹ÊÇÔÚСÊýµãºóÃæ¡£
}
return temp;
}
4.2Êä³ö²¿·Ö³ÌÐò
void warn(uchar s,uchar led) //·äÃùÆ÷±¨¾¯£¬µÆÉÁ˸ { uchar i;i=s;
//s¿ØÖÆÒôµ÷£¬led¿ØÖƵÆ
beep=0;
//·äÃùÆ÷Ïì
P1=led;
//¿ØÖÆÏàÓ¦µÄµÆÁÁ
while(i--) { Display(Ds18b20ReadTemp());
} beep=1; // ·äÃùÆ÷²»Ïì
P1=0x00;
//¿ØÖÆÏàÓ¦µÄµÆÃð
i=s; while(i--) { Display(Ds18b20ReadTemp());
}
}
void deal(int temp) //ζȴ¦Àíº¯Êý
{ uchar i;
if((temp>warn_l2)&&(temp<=warn_l1))
1
{ warn(20,0x01);
}
else if(temp<=warn_l2) { warn(5,0x03); }
else if((temp
else if(temp>=warn_h2) { warn(5,0x0c); } else { i=40; while(i--) { Display(Ds18b20ReadTemp());
}
}
}
void Display(int temp) //ÊýÂë¹ÜζÈÏÔʾ { DisplayData[1] =table[temp / 10000]; DisplayData[2] =table[temp % 10000 / 1000]; DisplayData[3] =table[temp % 1000 / 100] | 0x80; DisplayData[4] =table[temp % 100 / 10]; DisplayData[5] =table[temp % 10];
DigDisplay();
//¶¯Ì¬ÏÔʾ
//СÊýµã2