¿Î³ÌÉè¼ÆÓÃÖ½
ͼ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 Ò³