用单片机控制DS18B20温度传感器采集温度的工作过程是不是这样?

作者&投稿:玉庄 (若有异议请与网页底部的电邮联系)
单片机上18b20温度传感器的工作原理是什么?~

我对DS18B20还是很熟悉的,前一阵才用过。如果你是应用这个的,那么你不需要搞清楚它的内部原理,内部主要有ROM.RAM和温度传感器。DS18B20是使用一根数据线进行通信,首先你要先向它发送一系列脉冲信号。一般我们用的步骤大致为:初始化--跳过ROM操作--启动温度转换--(延时)--初始化--跳过ROM操作--读温度寄存器命令然后就可以读出温度的数据了。先读出的是低8位,然后是高位。由于是单线通信,所以对时序的要求相对较高,所以你要根据时序图和自己的晶振频率好好计算一下。最后还要注意的是,它的数据线平时是要拉到高电平的。以上都是我自己打出来的,希望对你有帮助!

温度传感器(temperature transducer)是指能感受温度并转换成可用输出信号的传感器。温度传感器是温度测量仪表的核心部分,品种繁多。按测量方式可分为接触式和非接触式两大类,按照传感器材料及电子元件特性分为热电阻和热电偶两类。
工作原理
金属膨胀原理设计的传感器
金属在环境温度变化后会产生一个相应的延伸,因此传感器可以以不同方式对这种反应进行信号转换。
双金属片式传感器
双金属片由两片不同膨胀系数的金属贴在一起而组成,随着温度变化,材料A比另外一种金属膨胀程度要高,引起金属片弯曲。弯曲的曲率可以转换成一个输出信号。
双金属杆和金属管传感器
随着温度升高,金属管(材料A)长度增加,而不膨胀钢杆(金属B)的长度并不增加,这样由于位置的改变,金属管的线性膨胀就可以进行传递。反过来,这种线性膨胀可以转换成一个输出信号。
液体和气体的变形曲线设计的传感器
在温度变化时,液体和气体同样会相应产生体积的变化。
多种类型的结构可以把这种膨胀的变化转换成位置的变化,这样产生位置的变化输出(电位计、感应偏差、挡流板等等)。

整体时序

总线上只有一个传感器18B20时,
时序:复位→忽略ROM匹配(0xcc)→温度转换(0x44)→延时→复位→忽略ROM匹配→读指令→分别读取温度两个字节

总线上有多个传感器18B20时,
时序:复位→ROM匹配(0x55)→发送8字节ROM ID →温度转换(0x44)→延时→复位→ROM匹配→再次发送8字节ROMID→读指令→分别读取温度两个字节

当然,在第一次发送温度转换之前 可以忽略ROM匹配,此时所有的传感器都进行温度转换

不太对,实际上要两个循环才能读数据,
1——先复位信号。然后跳过ROM指令 ,这时发出温度转换指令
等待750uS后
2——复位信号,跳过ROM指令,这次是读取RAM。
就得到温度了
其实在复位信号后检测下存在脉冲比较稳妥,不然出了问题都不知道哈

我有现成的程序


最近用18B20做了个温度测试,单片机控制,
TSR3: SETB FLAG1 ;置标志位,表示DS1820存在 LJMP TSR5 TSR4: CLR FLAG1 ;清标志位,表示DS1820不存在 LJMP TSR7 TSR5: MOV R0,#117 TSR6: DJNZ R0,TSR6 ;时序要求延时一段时间 TSR7: SETB DQ RET ;--- GET_TEMPER: ;读出转换后的温度值 SETB DQ LCALL INIT_1820 ;先复位DS18B20...

为什么ATmega128单片机连接DS18B20时可以不接上拉电阻(外部电源供电...
unsigned char ds1820_reset(void){ unsigned char i;flag = SREG;\/*中断保护*\/ CLI();\/*关中断*\/ DQ_OUT; \/\/设置输出 DQ_CLR; \/\/置低电平 delay_10us(49);\/*延时500uS(480-960)*\/ DQ_SET;DQ_IN;delay_10us(7);\/*延时80uS*\/ i = DQ_R; \/\/读电平 delay_10us(4...

求STC89C51型单片机与DS18B20传感器和MQ-2烟雾传感器电路连接图(A\\D转...
我就18B20的 \/*us级延时函数 *\/ \/***\/ void Delay(unsigned int num){ while( --num ) ;} \/*初始化ds1820 *\/ \/***

DS1820与单片机如何读取温度?
我来回答吧,上个学期, 我做的课程设计就是基于单片机的数据温度计。以下是我写出一程序,如果看不懂的话,就发邮件给我,amwjie72@163.com include<reg52.h> include<intrins.h> include<math.h> include<absacc.h> define uint unsigned int define uchar unsigned char uchar table[]={...

DS18B20与单片机AT89S52设计的温度控制上下限报警器
ds18b20 是总线式的。。。直接接io口就行 把读到的串行数据,转换、动态显示到数码管,会吧?判断,一个上限,一个下限,哪个条件yes,哪个灯亮。。。很简单,自己动脑子呗

高分求单片机温度采集系统的课程设计
本设计中以DS1820为传感器、AT89C52单片机为控制核心组成的多点温度测试系统如图3所示[4]。用6只DS1820同时测控6路温度(视实际需要还可扩展通道数)。89C52单片机P1.1口接单线总线。DS1820采用寄生电源供电方式。为保证在有效的DS1820时钟周期内能提供足够的电流,图3中采用一个MOSFET管和89C52的H.0口来完成对DS18...

80c51单片机 1 到20 数码管显示程序
49、利用80C31单片机串行口实现多个LED 显示的一种简单方法 50、基于PIC单片机的智能IC卡燃气表电控系统设计 51、由单片机和多片DS1820组成的 多点温度测控系统 52、MCS-51系列单片机在SDH系统中的应用 53、异种单片机共享片外存储器及其与微机通信的方法 54、基于Intel80C196的通用伺服控制系统 55、12位...

89c52控制ds1820释放总线是什么意思,是用单片机将总线拉高还是怎么样...
1,释放总线一般就是指使管脚变为高阻态,这样就把总线空出来让其他器件用了。2,对于51单片机,由于引脚内有上拉电阻,则释放总线代表对引脚写入1,这样总线被拉高,又很容易被其他器件的开集、开漏电路拉为低电平,也相当于空出总线让其他器件用。

大学物理实验 温度传感器研究
1.课题的意义 传感器网络在我们日常生活中的应用越来越多,他的实用性也逐渐的被人们所接受。温度检测就是传感器网络中不可缺少的一个重要部分,我的课程设计,就是制作传感器网络中的温度检测部分。整个系统由单片机控制,温度传感器采用18B20,单片机控制采集到的温度输出到四个数码管上进行显示。关于DS1820...

ds1820 测量外界环境温度?
DS18S20采用带隙温度检测结构,是DS1820的升级产品。DS18S20内部有3个主要部件:64位激光刻制的唯一ROM序列号、温度传感器以及非易失性温度报警触发器TH和TL。DS18S20通过1-Wire总线结构,仅需一个引脚即可实现数据的发送或接收。另外,用于DS18S20的供电电源可以从数据线本身获得,无须外部电源。每个DS18S20在...

山丹县18847216508: 用单片机控制DS18B20温度传感器采集温度的工作过程是不是这样?
厨人罚严肽: 整体时序总线上只有一个传感器18B20时,时序:复位→忽略ROM匹配(0xcc)→温度转换(0x44)→延时→复位→忽略ROM匹配→读指令→分别读取温度两个字节总线上有多个传感器18B20时,时序:复位→ROM匹配(0x55)→发送8字节ROM ID →温度转换(0x44)→延时→复位→ROM匹配→再次发送8字节ROMID→读指令→分别读取温度两个字节当然,在第一次发送温度转换之前 可以忽略ROM匹配,此时所有的传感器都进行温度转换

山丹县18847216508: 基于51单片机的DS18B20程序(数码管显示) -
厨人罚严肽: 参考下吧! 18B20数字温度显示系统 综合实验:用18B20(数字温度采集)74LS47(数码管译码)74LS138(三八译码) DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125...

山丹县18847216508: 基于单片机AT89C51控制DS18B20温度传感器对水温的控制系统 -
厨人罚严肽: 设计电路,参考一下带数码管的开发板神马的,然后根据硬件,分别调通DS18B20,数码管.控制部分一般用继电器,很好控制.最后根据你的控制方法设计主程序的流程,把调通的各部分关联起来就好了.硬件部分只是做实物,包括单片机小系统及其电源设计,外围传感器接口,数码管驱动电路,继电器控制电路等,如果要自己做电路板,还需要在电脑上做PCB设计,用到一些设计软件.

山丹县18847216508: 温度控制程序:AT89C52单片机,DS18B20温度传感器 -
厨人罚严肽: 可以上网先找点DS18B20的资料,应用它时,控制延时很重要.;**延时均按12M晶振计算********************************FLAG1 BIT F0 ;DS18B20存在标志位 DQ BIT p1.0 ;DS18B20占用的总线 TEMPER_L EQU 29H TEMPER_H EQU 28H ROM...

山丹县18847216508: 单片机:18B20温度传感器的程序: -
厨人罚严肽: 这两句话是在读取18B20里面的数据,这个温度传感器是将温度已16个字节上传的,高5位表示的时温度的正负,后面12位表示的是无符号数值.最大精度为0.0625度.第一句是将16字节数据的低8位读出来,第二局是将数据的高8位读出来.

山丹县18847216508: 求C语言程序,AT89C51单片机为核心,DS18B20测温度,实时用4位LED显示温度,并且用单片机控制继电器 -
厨人罚严肽: #include // 试试#define uchar unsigned char #define uint unsigned int sbit DQ=P1^4; //ds18b20与单片机连接口 unsigned char code str[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40} ; //共阴数码管字码表 unsigned char code ...

山丹县18847216508: 如何在单片机AT89S52连接10至20个DS18B20温度传感器? -
厨人罚严肽: 好好看18B20 datasheet,你只接到20个,那么单片机的p0,p1,p2口加起来就24个了,一个脚接一个都还剩4个脚,记得在18B20的数据引脚接4.7K的上拉电阻,如果你只有一个IO接口可用,那么就把所有的18B20数据引脚都接到这个引脚,还是记得上拉电阻.先调取每个18B20唯一身份证号,然后写入rom中,利用18B20序列号查询命令进行核对,是哪个就读取哪个 ,读是33H,匹配是55H,略过为ccH .建议仔细读它的datasheet,上面介绍很详细

山丹县18847216508: 单片机通过一根线来读DS18B20温度传感器采集的温度,DS18B20输出的脉冲时序是怎样的? -
厨人罚严肽: 由于18b20是单总线结构 所以 时序一定要正确,也就是中间哪怕只差了几个us都可能出错误!所以仔细看看说明书 ,读或写的时候 分别要多长时间,计算你系统IO输出输入读取的时间,要对应上 如果中间出现长时间延时(比如等待温度转换等等),此时一定要再次执行复位操作,以便时序达到统一 总体执行步骤是:复位→匹配ROM→温度转换→延时→复位→匹配ID→读取温度 如果线上只有一个传感器的话,可以发送忽略匹配ID命令.我这里有现成的程序,PIC单片机C语言控制的 6条总线,每条线上挂载40以内 的程序,如果需要可供你参考

山丹县18847216508: 用AT89S51单片机如何做数字温度计{用DS18B20温度传感器} -
厨人罚严肽: DS18B20感应到对应温度值时会出输一个对应电压,对过AD采样模快对电压采样,得到对应值,数据给单片机计算然后输出显示就行了!

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网