ds18b20在温室环境监测中的应用_第1页
ds18b20在温室环境监测中的应用_第2页
ds18b20在温室环境监测中的应用_第3页
ds18b20在温室环境监测中的应用_第4页
ds18b20在温室环境监测中的应用_第5页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ds18b20在温室环境监测中的应用

1ds18b20温度信号采集在许多应用于温室环境监控的温敏元件中,尽管温敏电阻成本低,但后续电路复杂,需要进行温度校正。由于输出是模型信号,输出信号较弱,因此需要对后续电路进行放大和转换。如果采用普通传输,精度难以得到保证,但测量放大器的价格非常高,这增加了系统的成本。本系统采用美国DALLAS公司的产品可编程单总线数字式温度传感器DS18B20实现温室内温度信号的采集,进而实现温室内的温度监测及对其他传感器进行温度补偿。DS18B20具有很多优点:如直接输出数字信号,故省去了后继的信号放大及模数转换部分,外围电路简单,成本低;单总线接口,只有一根信号线作为单总线与CPU连接,且每一只都有自己唯一的64位系列号存储在其内部的ROM存储器中,故在一根信号线上可以挂接多个DS18B20,便于多点测量且易于扩展。DS18B20的测温范围从-55~125℃,且在-10~85℃之间精度为±0.5℃满足温室内温度监测的要求。2sd18b20温室温度监测2.1ds18b20工作原理系统采用美国ATMEL公司的AT89C51单片机,其内部含有可重复编程的Flash存储器,可进行1000次擦写操作,故在开发过程中可以十分容易进行程序的修改,大大缩短了开发周期。AT89C51外接E2PROM存储器,可采集大量数据进行计算并存储,进而通过RS232通讯接口将数据传送到上层计算机进行进一步分析处理,再根据分析结果对单片机进行控制。系统通过键盘实现监测方式的选择:循环显示各路测量值、单独显示某一路的测量值、给每一路设定上下限报警值等。DS18B20有两种封装模式:3脚和8脚封装,其中3脚封装比较常用,引脚功能分别为地GND、电源VDD、信号DQ。DS18B20可通过两种方式供电:外加电源工作方式和寄生电源方式。前者需要外加电源,正负极分别接引脚VDD及GND;后者不需外加电源,当总线(信号线)为高时稳定电源的提供是通过单线上的上拉电阻实现,总线信号为低时则由其内部的电容供电,在此种方式下VDD接地。系统采用3脚封装的DS18B20,选用外加电源工作方式。采用此种方式能增强DS18B20的抗干扰能力,保证工作的稳定性。2.2ds18b20读取时序测温子系统流程图见图2。通过编程可实现DS18B20温度转换结果的位数(9~12bit)选择,其各自对应的分辨率为0.5℃、0.25℃、0.125℃和0.0625℃,其默认值为12,可在最多750ms内把温度值转换为数字且实现12位分辨率。本系统采用其默认值12位分辨率。对DS18B20处理顺序为:第一步:初始化;第二步:发送ROM命令;第三步:发送功能命令。初始化包括主机发出复位脉冲(通过将总线拉低至少480μs来实现)随即主机等待DS18B20发回的存在脉冲。DS18B20则从检测到复位脉冲的上升沿开始等待15~16μs后通过将单线总线拉低60~240μs实现存在脉冲的发送。初始化完成后即可发送ROM命令,包括搜索ROM命令(FOH)、读ROM命令(33H)、符合ROM命令(55H)、跳过ROM命令(CCH)及报警搜索命令(ECH)。随后即可发送功能命令,包括温度变换命令(44H)、写暂存器(4EH)读暂存器(BEH)命令等。命令的传送是通过写时序实现的,而主机读取DS18B20传送的数据是通过读时序实现的。本测温子系统主要使用的命令为匹配ROM命令、温度变换命令及读暂存器命令。其中主要子程序代码如下:复位子程序:TRESET:SETBP1.1NOPCLRP1.1MOVR0,#78HRESET1:DJNZR0,RESET1;延时484μsSETBP1.1MOVR0,#0AHRESET2:JNBP1.1,RESET3DJNZR0,RESET2;延时84μsLJMPRESET4RESET3:MOVR2,#00H;有传感器则将R2置0LJMPRESET5RESET4:MOVR2,#0FHRESET5:MOVR0,#15HRESET6:DJNZR0,RESET6写时序子程序:TWRITE:SETBP1.1MOVA,R3MOVR6,#08HWRITE1:RRCACLRP1.1NOPMOVP1.1C;将欲传送值以进位形式送出MOVR0,#15H;延时88μsWRITE2:DJNZR0,WRITE2SETBP1.1NOPDJNZR6,WRITE1RET读时序子程序:TREAD:MOVR1,#21H;温度值存放的首址MOVR5,#09H;读取的字节数READ1:MOVR6,#08HREAD2:SETBP1.1NOPNOPCLRP1.1;下降沿启动读时隙NOP;延时2μsSETBP1.1主机释放总线MOVR0,#01HREAD3:DJNZR0,REA3;延时8μsMOVC,P1.1RRCAMOVR0,#09H;使整个读时隙不小于60μsREAD4:DJNZR0,READ4DJNZR6,READ2MOV@R1,AINCR1DJNZR5,READ1RET程序中R0存储的数值用来决定延时时间;R1用于存放读得的DS18B20暂存器的RAM首地址;R2中存放的值代表总线上有无传感器;R3为指令入口,存放欲发送的指令值;R5用于控制读取的字节数;R6用于控制发送、接收的字符数。DS18B20无论是初始化还是读写操作都有较为严格的时序要求。初始化主机需将总线拉低至少480μ?s且等待DS18B20发回的存在脉冲。DS18B20将在收到复位脉冲后15~60μs后将总线拉低60~240μs作为存在脉冲,故主机需等待15~60μs读取存在脉冲。读写时序分别包括“写1”“写0”时序和“读1”“读0”时序。所有读写时序必须经过至少60μs且在各个读写时序之间要有1μs的恢复时间。本系统采用6MHz晶振,则机器周期为2μs.复位子程序中要求低电平要持续至少480μs,本程序中由于MOVRn,direct和DJNZRn,rel均为2周期指令,故延时为(7×16+8)×4μs+4μs=484μs.然后等待DS18B20发存在脉冲约84μs.本程序中的初始化及读写程序的延时经逻辑分析

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论