»ùÓÚDS18B20µÄζȲɼ¯ÏÔʾϵͳµÄÉè¼Æ ÏÂÔØ±¾ÎÄ

¿Î³ÌÉè¼ÆÓÃÖ½

ͼ4-2 DS18B20¸´Î»×Ó³ÌÐò

DS18B20¸´Î»×ÓµÄCÓïÑÔ³ÌÐòÈçÏ£º ow_reset(void) {

char presence=1;

while(presence) {

while(presence) {

DQ=1;_nop_();_nop_(); DQ=0;

delay(50); //ÑÓʱ550ºÁÃë DQ=1; delay(6); presence=DQ; }

delay(45); presence=~DQ; } DQ=1; }

4.2.2 дDS18B20ÃüÁî×Ó³ÌÐò

Á÷³ÌͼÈçͼ4-3Ëùʾ£º

µÚ 19 Ò³

¿Î³ÌÉè¼ÆÓÃÖ½

DQÖÃ0 Ñ­»·´ÎÊýi=8 дÈëÊý¾ÝµÄ×îµÍһλ ¶ÌÑÓʱ DQÖÃ1 дÈëÊý¾ÝÓÒÒÆÒ»Î» i =i-1 i=0£¿ N Y ¶ÌÑÓʱ ·µ»Ø ͼ4-3 дDS18B20ÃüÁî×Ó³ÌÐò

дDS18B20ÃüÁîµÄCÓïÑÔ³ÌÐòÈçÏ£º

void write_byte(uchar val) //Ïò1-WIRE×ÜÏßÉÏдһ×Ö½Ú { uchar i;

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

DQ=1;_nop_();_nop_();

DQ=0;_nop_();_nop_();_nop_();_nop_();_nop_();

µÚ 20 Ò³

¿Î³ÌÉè¼ÆÓÃÖ½

DQ=val&0x01; //×îµÍÎ»ÒÆ³ö delay(6);

val=val/2; //ÓÒÒÆ1λ } DQ=1; delay(1); }

4.2.3¶ÁζÈ×Ó³ÌÐò

¶Á³öζÈ×Ó³ÌÐòµÄÖ÷Òª¹¦ÄÜÊǶÁ³öRAMÖеÄ9×Ö½Ú£¬ÔÚ¶Á³öʱÐè½øÐÐCRCУÑ飬ÑéÓдíʱ£¬²»½øÐÐζÈÊý¾ÝµÄ¸Äд¡£Æä³ÌÐòÁ÷³ÌͼÈçͼ4-4Ëùʾ

DS18B20µÄ¸÷¸öÃüÁî¶ÔʱÐòµÄÒªÇóÌØ±ðÑϸñ£¬ËùÒÔ±ØÐë°´ÕÕËùÒªÇóµÄʱÐò²ÅÄÜ´ïµ½Ô¤ÆÚµÄÄ¿µÄ£¬Í¬Ê±£¬Òª×¢Òâ¶Á½øÀ´µÄÊǸßλÔÚºóµÍλÔÚǰ£¬ ¹²ÓÐ12λÊý£¬Ð¡Êý4룬ÕûÊý7룬»¹ÓÐһλ·ûºÅλ¡£

µÚ 21 Ò³

¿Î³ÌÉè¼ÆÓÃÖ½

DS18B20¸´Î»¡¢Ó¦´ð×Ó³ÌÐò Ìø¹ýROMÆ¥ÅäÃüÁî дÈë×Ó³ÌÐò ζÈת»»ÃüÁî дÈë×Ó³ÌÐò ÏÔʾ×Ó³ÌÐò£¨ÑÓʱ£© DS18B20¸´Î»¡¢Ó¦´ð×Ó³ÌÐò Ìø¹ýROMÆ¥ÅäÃüÁî дÈë×Ó³ÌÐò ¶ÁζÈÃüÁî×Ó³ÌÐò ½áÊø ͼ4-4 ¶ÁζÈ×Ó³ÌÐò

¶ÁζȵÄCÓïÑÔ³ÌÐòÈçÏ£º read_temp() {

ow_reset(); write_byte(0xcc);

µÚ 22 Ò³