您当前的位置:五五电子网电子知识单片机-工控设备AVR单片机M16温度传感器DS18B20控制示例程序 正文
M16温度传感器DS18B20控制示例程序

M16温度传感器DS18B20控制示例程序

点击数:7971 次   录入时间:03-04 11:46:23   整理:http://www.55dianzi.com   AVR单片机
  value >>= 1;
  
        }
 
}
//*************************************************************************
//    发送温度转换命令
//************************************************************************* 

/*启动ds1820转换*/
void ds1820_start(void) {

 ds1820_reset();
 ds1820_write_byte(0xCC); //勿略地址
 ds1820_write_byte(0x44); //启动转换
}

//*************************************************************************
//    DS8B20读取温度信息
//************************************************************************* 

unsigned int ds1820_read_temp(void) 
{

 unsigned int i;
 unsigned char buf[9];

 ds1820_reset();
 ds1820_write_byte(0xCC); //勿略地址
 ds1820_write_byte(0xBE); //读取温度
 for (i = 0; i < 9; i++) 
        {
  buf[i] = ds1820_read_byte();
  
        }
 i = buf[1];
 i <<= 8;
 i |= buf[0];
 value=i;
        value=value*0.625;    //不是乘以0.0625的原因是为了把小数点后一位数据也转化为可以显示的数据
                          //比如温度本身为27.5度,为了在后续的数据处理程序中得到BCD码,我们先放大到275
                                        //然后在显示的时候确定小数点的位置即可,就能显示出27.5度了
        //value=value*10;
 return i;
}

 

//*************************************************************************
//  温度数据处理函数
//*************************************************************************
 void data_do(uint d)
 {
     uint A2t;
     A1=d/100;                       //分出百,十,和个位
     A2t=d%100;
     A2=A2t/10;
     A3=A2t%10;
}

//*************************************************************************
//   主程序
//*************************************************************************

void main(void)
{

 DDRC = 0x00;
 PORTC = 0xFF;
 system_init();                         //系统初始化
 delay_ms(250); 
 ds1820_reset();         //复位D18B20
 while (1)
        {
  ds1820_start();         //启动一次转换
  delay_ms(300);   //等待转换结束
  ds1820_read_temp();  //读取温度数值
        data_do(value);            //处理数据,得到要显示的值
     display(A1,A2,A3);              //显示温度值
     delay_ms(1000);                 //延时1S
  
        }
}



上一页  [1] [2] [3] 


本文关键字:温度传感器  程序  AVR单片机单片机-工控设备 - AVR单片机

《M16温度传感器DS18B20控制示例程序》相关文章>>>