οØϵͳ¿Î³ÌÉè¼Æ˵Ã÷Êé - ͼÎÄ

²Î¿¼ÎÄÏ×

[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=warn_h1)) { warn(20,0x04); }

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

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ì滻Ϊ@)