DS18B20单片机C语言温度数据转换22DS18B20数字温度计使用1.DS18B20基本知识D

22DS18B20数字温度计使用1.DS18B20基本知识DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点.因此用它...
Word文档-8页-117.0KB单片机中使用DS18B20温度传感器C语言程序(参考1)/********************************************************************************DS18B20测温程序硬件:AT89S52(1)单线ds18...
Word文档-6页-47.0KB单片机DS18B20温度计C语言程序(2008-09-2717:01:06);标签:ds18b20的c语言程序#include<reg51.h>#include<intrins.h>#include<math.H>//要用到取绝对值函数abs...
将温度传感器DS18B20插到开发板白色3芯插针(开发板上的标识符为DS18B20)上,插上液晶,将程序烧录到单片机中,完毕后复位或者重新上电,液晶显示如下:源代码:#...查看全部>>
[图文]csdn已为您找到关于ds18b20温度转换相关内容,包含ds18b20温度转换相关文档代码介绍、相关教程视频课程,以及相关ds18b20温度转换问答内容。为您解决当下相关问题...
[图文]将12位的温度值转换为数字量所需时间不超过750ms;(6)、内部有温度上、下限告警设置。DS18B20引脚分布图DS18B20详细引脚功能描述:1、GND地信号;2、DQ数据...
ds18b20如何读取温度;ds18b20温度传感器程序;ds18b20怎么读温度;怎么读取18b20的数据;18b20温度怎么标注;18b20怎么读取温度;ds18b20温度转化算法;sim800l与单片机相连;ds18b20温度转换;ds18b20温度0;温度数据转换;ds18b20;ds18b20温度转换过程;ds18b20温度转换源代码;ds18b20数据手册;ds18b20温度转换部分程序;
[图文]DS18B20是美信公司的一款温度传感器,单片机可以通过1-Wire协议与DS18B20进行通信,最终将温度读出。1-Wire总线的硬件接口很简单,只需要把DS18B20的数据引...
4个答案-提问时间:2011-07-31-12个赞
Word文档-11页-下载需要10.0豆元看了好多天单片机,找了好多资料想自己利用实验板上的DS18B20做个温度计(最近温度实在是太热了).在网上找了好多关于这个的程序,结果发现对我的板子来说就这个好用...
//温度值小数部分对照表codeuchartable_tempfh[]={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9};//读取DS18B20当前温度voidread_temp(void){uchara=0;ucharb=0;//DS18B20默认为12位精度ds18b20_init();ds18b20w_byte(0xCC);//跳过读序号列号的操作ds18b20w_byte(0x44);//启动温度转换delayus(100);//等待足够长时间以读取温度值ds18b20_init();ds18b20w_byte(0xCC);ds18b20w_byte(0xBE);//读取温度寄存器等(共可读9个寄存器)前两个就是温度delayus(100);a=ds18b20r_byte();//读取温度值低位b=ds18b20r_byte();//读取温度值高位tempvalue=b<<4;//转化成字节温度tempvalue+=(a&0xf0)>>4;//整数部分tempvalue_fh=table_tempfh[a&0x0f];//小数部分(查表对照,获取小数位)}上面的程序采用12位精度,查阅18B20手册,LSB的最低四位代表小数,MSB的最高5位为符号位,其余的7位为整数部分,其分辨率为0.0625°,根据此规律,整数就是两字节凑在一起,而小数部分则是最低四位的值,乘以0.0625,看你取几位小数,再取整即可。上述的对照表是取1位小数的结果,取四舍五入。比如现在LSB的最低四位是0111,那么小数部分就是0.0625*7=0.4375,如果取1位小数,就是“4”,两位小数就是“44”..依次类推。
很简单,两次读出16位数,把它当成一个数来看。
其高5位是相同的,代表符号。
后面11位,是温度的二进制数,7位整数、4位小数。
就是这些,就是这么简单。

有很多程序,是故弄玄虚。
假如读出的数值是:0000 0000 1111 1111,那么该值的前五位表示温度的符号,0000 0表示正温度,1111 1表示负温度,然后将值乘以0.0625,那么得出的值就是温度的实际值。后9位000 1111 1111为256,256乘0.0625=?就是实际温度值。