温度纪录器Word文档下载推荐.docx
- 文档编号:20931890
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:39
- 大小:207.34KB
温度纪录器Word文档下载推荐.docx
《温度纪录器Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《温度纪录器Word文档下载推荐.docx(39页珍藏版)》请在冰豆网上搜索。
3.2.1电路接法7
3.2.2主CPU访问DS1820的工作流程8
3.3DS18B20型单线可编程智能温度传感器11
3.3.1DS18B20的性能特点11
3.3.2DS18B20的使用注意事项12
4AT24C512存储器的功能及应用12
4.124C512存储器简介12
4.2AT24C512存储器的功能13
4.3读存储器的部分程序说明14
5调试过程17
5.1硬件部分调试17
5.2软件部分调试18
6结束语18
致谢19
参考文献19
附录
(一)汇编语言程序设计20
1引言
温度采集记录在生活领域、医疗领域、科学研究、生产实践中均有着广泛应用,如测量病人体温、分析气温变化、控制某生产加工车间的温度等。
所以温度的采集记录仪便成为现代生产、生活中不可缺少的设备之一。
目前市场上已有的温度采集记录仪为需经常换纸的跟纸式记录仪和采用热敏电阻传感器的普通温度仪,如常州热工仪表厂生产的XRZ-Cu50和XRZ-Cu100采用的就是采用热电阻传感器,XRZ-Cu50的温度测量范围为:
0℃~150℃,XRZ~Cu100的测量范围为十0℃~100℃,这种温度记录仪精确度为±
1℃,价格为200元左右,体积约为200mm*200mm*180mm,只能显示即时温度,不可存储温度数据,体积较大;
与欧陆公司合资的常州宏基仪器仪表厂生产的纸记录式温度计,该温度记录议采用在纸上绘制曲线的方法来记录温度数据,虽能把温度记录下来,但需要人工定时更换记录纸张,且价格较高,在3000——4000元之间。
市场上也有部分无纸记录仪,采用液晶显示屏作为数据输出,但存在测试精度低、不便于存放大量温度数据、成本高的缺点。
随着人们对产品质量要求的不断提高,生产加工设备机械化水平的不断完善,传统的温度测试仪在现代化生产中已不能满足要求了。
针对以上情况我们设计开发了一种融数字温度传感器、单片机、PC机、外部存储器和串行通信于一体的掌上型温度采集、记录仪,从而达到体积小、重量轻、测试精度高、存储容量大、成本低、便于随身携带、随时可进行温度数据分析的掌上型温度采集记录仪,目前尚无与本作品同档次的温度采集、记录仪,具有较好的推广应用价值,属国内外首创。
2总体设计概述
2.1作品产生背景
由于温度采集记录在生活领域、医疗领域、科学研究、生产实践中均有着广泛应用,如测量病人体温、分析气温变化、控制某生产加工车间的温度等。
目前市场上已有的温度采集记录仪为需经常换纸的跟纸式记录仪和采用热敏电阻传感器的普通温度仪,价格高、体积较大,而且精度低,也有部分无纸记录仪,采用液晶显示屏作为数据输出,但存在测试精度低、不便于存放大量温度数据、成本高的缺点,我们设计开发了一种融数字温度传感器、单片机、外部存储器于一体的掌上型温度采集记录仪,从而达到体积小、重量轻、测试精度高、存储容量大、成本低、便于随身携带、随时可进行温度数据分析的掌上型温度采集记录仪,具有较好的推广应用价值。
本作品是利用智能数字温度传感器DS18B20进行温度采集,DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进产品。
DS18B20采集到的温度数据按采样间隔存入外部存储器24C512中(24C512的容量为64KB,也可根据实际需要选取合适容量的外部存储器)。
2.2硬件方面设计
该作品具有极高的可靠性和稳定性,可工作于任何环境底下。
电路原理图分为三部分:
温度数据采集部分,即时温度显示驱动部分,温度数据存储部分。
(一)温度数据采集部分
DS18B20是智能型的数字温度传感器,通信方式为串行通信方式。
其数据线与单片机的P1.1相连接。
(二)即时温度显示驱动部分
显示驱动方式按常规设计实施,选用高亮度发光LED器件显示。
(三)存储部分
基于便携式的目的,存储数据设计采用了AT24C512串行EEPROM器件,该器件体积小、功耗低,通信采用IIC串行通信协议,AT89C51的P1.3、P1.4和AT24C512的SCL和SDA相连实现存储功能的。
图1硬件原理图
2.3软件设计方面
软件设计部分按功能主要分三大部分,具体如下所述:
(一)主监控程序
单片机的主监控程序为:
当监测到ONTIME1和ONTIME2时作相应温度的存储、转换、发送处理,并负责即时温度的显示。
(二)定时中断程序
采用定时中断是为了隔一定时间让DS18B20采样一次,并把采样到的数据保存到EEPROM中。
(三)串行通信
当需要用EEPROM中的数据画出温度变化曲线进行分析时,就运用串行通信子程序完成数据发送任务。
设计部分流程图如下:
图2程序流程框图
3DS1820产品的原理及应用设计
3.1DS1820型单线智能温度传感器的原理
DS1820采用3脚PR-35封装或8脚SOIC封装,I/O为数据输入/输出端(单线总线)它属于漏极开路输出,外接上拉电阻后,常态下呈高电平。
UDD可供选用的外部+5V电源端,不用时需接地。
GND为地,NC为空脚。
主要包括7部分:
①寄生电源;
②温度传感器;
③64位激光(laser)ROM与单线接口;
④高速暂存器,即便笺式RAM,用于存放中间数据;
⑤TH触发寄存器和TL触发寄存器,分别用来存储用户设定的温度的上、下限tH、tL值;
@存储与控制逻辑;
@8位循环冗余码(CRC)发生器。
下面分别介绍各部分的工作原理。
1.寄生电源
寄生电源由二极管VD1、VD2和寄生电容C所组成。
电源检测电路用于判定供电方式并输出相应的逻辑电平(“0”表示用寄生电源供电,“1”表示用外部电源供电),以便高速暂存器能够读出数据和电平。
采用寄生电源供电时UDD端需接地,DS1820就从单线总线上获取电源。
当I/O线为高电平时VD1导通,VD2截止,除向DS1820供电外,还把部分电能储存在C中。
当I/O线为低电平时,VD1截止,改由C上的电压UC继续向DS1820供电。
该寄生电源有两个显著优点:
第一,检测远程温度时无须本地电源;
第二,在缺少正常电源时也能读ROM。
使用寄生电源时应注意,在温度转换期间CPU应使I/O线保持高电平。
若使用外部电源UDD,就通过VD2向器件供电,此时VD1截止。
N片DS1820与单片机的接线,R为上拉电阻,典型值可取5.1kΩ或4.7kΩ。
主CPU和DS1820所用的电源电压,分别用UCC、UDD表示,下同。
现将单片机的P1.0端接单线总线,加总线驱动电源后,理论上总线最多可挂248片DS1820。
单片机依次发出操作指令,各片DS1820即可在200~500ms之内完成温度转换。
2.原理
在DS1820内部测温电路中温度系数振荡器用于产生稳定的频率f0,高温度系数振荡器则相当于T/f转换器,能将被测温度t转换成频率信号f0图中还隐含着计数门,当计数门打开时,DS1820就对低温度系数振荡器产生的时钟脉冲f0进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定。
每次测量前,首先将-55℃所对应的基数分别置入减法计数器、温度寄存器中。
在计数门关闭之前若计数器已减至零,温度寄存器中的数值就增加0.5℃。
然后,计数器依斜率累加器的状态置入新的数值,再对时钟计数,然后减至零,温度寄存器值又增加0.5℃。
只要计数门仍未关闭,就重复上述过程,直至温度寄存器达到被测温度值。
这就是DS1820的测温原理。
斜率累加器能对振荡器的非线性予以补偿,提高测量精度。
需要指出,温度值本应为9位(其中,符号占一位)但因符号位又被扩展成高8位,故实际以16位补码的形式读出。
其中高8位代表符号,“0”表示t>0℃,“1”表示t<0℃;
低8位则以0.5℃/LSB(最低有效位)的形式表示温度值。
测量华氏温度(0F)需进行下述换算:
t(0F)=9/5t(℃)+32(2-1-1)
DS1820型单线智能温度传感器典型的测温误差在0~70℃范围内,DS20的上、下限测温误差分别为+0.5℃、-0.5℃,而典型产品的误差仅为±
0.25℃。
3.64位激光ROM
芯片内部有经过激光修正的ROM,内含64位ROM编码,包括系列产品(高8位)、产品序号(中间48位)和CRC编码(低8位)。
编码格式如下:
图3
4.高速暂存器(简称暂存器)
它由便笺式RAM、非易失性电擦写EERAM所组成,后者用来存储tH和tL值。
数据先写入RAM,经校验后再传给EERAM。
便笺式RAM占9个字节,第0、1字节是测量出的温度信息,第2、3字节分别是tH和tL值,第4、5字节不用。
第6、7字节为计数寄存器,可用于提高温度分辨力。
第8字节用来存储上述8字节的循环冗余校验码。
详见图4。
暂存器的命令集见表4-1-3。
6条命令分别为温度转换、读暂存器、写暂存器、复制暂存器、重新调出EERAM、读电源供电方式。
图4DS18B20内部RAM分配表
5.初始化
对DS1820的操作是首先进行初始化,然后执行ROM操作命令,再执行暂存器操作命令,最后完成数据处理。
6.报警信号
在完成温度转换之后,DS20就把测得的温度值t同tH和tL值作比较。
若t>tH或t<tL,则将该器件的报警标志,并对主CPU发出的报警搜索命令作出响应。
因此可用多片DS1820同时测量温度并进行报警搜索。
一旦某个测温点越限,主CPU用报警搜索命令即可识别正在报警的DS1820,并且读出其序号,不必考虑其他未报警的DS1820。
7.循环冗余校验码(CRC)的产生
在64位激光ROM的最低位8位字节中存在CRC。
主CPU根据ROM的前56位来计算CRC值,并存入DS1820中的CRC值进行比较,以判断主CPU接受到的ROM的前56位来计算CRC值,并与存入DS1820中的CRC值进行比较,以判断主CPU接受到的ROM数据是否正确。
CRC的函数表达式为
CRC=X8+X5+X3+1(2-1-4)
此外,DS1820尚需按照式(4-1-2)所规定的格式,为暂存器的数据产生一个8位CRC,送给主CPU,以确保暂存器的数据传送无误。
3.2单线总线系统的电路接法及通讯协议
单线总线是一种具有一个总线主机(亦称主CPU)和一个或多个从机(从属器件)的系统,DS1820起从机的作用。
下面分别介绍单线总线的电路接法及通信协议。
3.2.1电路接法
根据定义,单线总线只有一根线,这意味着总线上的每一个器件只能分时驱动单线总线,并要求每个器件必须具有漏极开路输出或三态输出的特性。
DS1820的单线接口I/O端就属于漏极开路输出。
TX、RX分别表示发送与接受。
在单线总线上必须接上拉电阻,其电阻阻值为5kΩ(标称值可取5.1kΩ或4.7KΩ)。
当单线总线上挂有多个从属器件时,亦称之为多点总线。
单线总线在空闲状态下呈高电平。
操作单线总线时,必须从空闲状态开始。
单线总线加低电平的时间超过480us时,总线上所有的器件均复位。
在主CPU发出复位脉冲之后,从属器件就发出应答脉冲(PRESENCEPULSE),来通知主CPU它已做好了接受数据和命令的准备工作。
3.2.2主CPU访问DS1820的工作流程
主CPU经过单线接口访问DS1820的工作流程为:
对DS1820进行初始化→ROM操作命令→存储器(包括便笺式RAM和EERAM)操作命令→数据处理。
主CPU对ROM操作完毕,即发出控制操作命令,使DS1820完成温度测量并将测量结果存入高速暂存器中,然后读出此结果。
1.初始化
单线总线上所有处理过程均从初始化开始。
初始化包括首先由主CPU发出一个复位脉冲,然后由从属器件发出应答脉冲,通知主CPU。
初始化时主CPU首先发出一个复位信号,将单线总线上所有DS1820复位;
然后释放单线总线,改成接受状态,单线总线被上拉电阻R拉成高电平。
在检测到次上升延后,DS1820需要等待15~60μs才向主CPU发出响应脉冲。
初始化过程的时序波形如图5所示。
此后便可对ROM、RAM进行操作。
图5DS18B20的初始化复位
2.对ROM的5种操作命令
一旦主CPU检测到从属器件的存在,就可以发出ROM操作命令。
所有ROM操作命均为8位(二进制)字长。
主CPU对ROM的操作命令有以下5种:
(1)读ROM命令(读ROM,约定代码为33H)。
该命令允许主CPU读取DS1820中的8位产品系列编码、48位序列号以及8位的CRC。
该命令适用于总线上只接一片DS1820的情况。
当总线上挂有多片DS1820时禁止使用该命令,否则多片DS1820同时发送数据,必然会导致互相冲突。
(2)符合ROM命令(MATCHROM,约定代码为55H)。
主CPU在发出“符合”ROM命令后,接着送出64位的ROM数据序列,从而使主CPU实现对单线总线上特定DS1820的寻址。
只有与64位ROM序列严格相符的DS1820,才能对后续的存储器操作命令作出响应。
所有与64位ROM序列不相符的DS1820将等待复位脉冲。
该命令对于总线上挂有单个或多个器件的情况均适用。
(3)搜索ROM命令(SEARCHROM,约定代码为F0H)。
搜索ROM命令允许主CPU使用一种“消除法”(ELMINATION)来识别总线上所有DS1820的64位ROM编码,即完成整个系统的初始化工作。
为以后对各个单线器件的操作做好准备。
该部分也是对DS1820芯片进行软件编程的重点和难点之一。
(4)跳过ROM命令(SKIPROM,约定代码为CCH)。
在单线总线系统中,该命令使用主CPU不必提供64位ROM编码就能访问各片DS1820。
该命令主要用于向所有的DS1280同时发出温度转换命令,从而大大节省访问各器件的时间。
但有一点必须注意,主CPU如果同时发出SKIPROM命令之后,又发出了读存储器命令,那么由于多片DS1820同时向总线上提供数据且漏极开路状态下产生“线与”的结果,此时读出的数据已经没有实际意义了。
(5)报警搜索命令(ALARMSEARCH,约定代码为ECH)。
该命令的流程与搜索ROM命令的流程相同。
仅在最近一次温度测量出现报警的情况下,DS1820才对该命令作出响应。
报警的条件定义为温度超过上限(t>tH),或者低于下限(t<tL=)。
上电时,DS1820预置报警条件为设置状态,直到首次温度测量结果既不超过tH,也不低于tL时,报警信号才被解除。
3.2.3DS1820的通讯协议
DS1820有严格的通信协议来保证各位数据传输的正确性和完整性。
通信协议规定了复位脉冲、应答脉冲、写0、写1、读0和读1等几种信号的时序。
除了应答脉冲,其余信号均由主CPU控制。
在对DS1820进行ROM及RAM操作之前,主CPU首先发出一个复位脉冲(最小脉冲宽度为480μs的低电平信号);
然后主CPU便释放单线总线(I/O线),使之处于接受状态。
单线总线经过上拉电阻被拉至高电平。
当DS1820检测到I/O端的上升延后,就等待15~60μs,再向主CPU发出应答脉冲(60~240μs的低电平信号)。
1.存储器操作命令
存储器操作命令共6条,具体如下:
(1)度转换命令(CONVERTT){44H}。
令DS1820进行温度转换。
如果主CPU在该命令之后为读时序,那么只要DS1820正忙于进行温度转换,即读得“0”;
当温度转换完成时,DS1820则返回“1”。
假如由寄生电源DS1820供电,主CPU在发出该命令后立即将单线总线拉成高电平,并且保持500ms时间,以便在温度转换期间给DS1820提供所需要的电源。
(2)读暂存存储器(READSCRATCHPAD){BEH}。
该命令为读暂存存储器9个字节的内容。
从字节0开始读,直至读到字节8。
主CPU可以在读暂存存储器期间发出一个复位脉冲来终止读操作。
(3)写读暂存存储器(WRITESCRATCHPAD){4EH}。
该命令发出后,主CPU送给DS1820的两个字节数据就分别写入TH触发寄存器和TL触发寄存器中,顺序是先写TH,后写TL。
主CPU也可以在写暂存存储器期间发出一个复位脉冲来终止写操作。
(4)复制暂存存储器(COPYSCRATCHPAD){48H}。
该命令把触发器中的TH、TL字节分别复制到EERAM的TH、TL字节上。
若主CPU发出该命令后又进行操作,只要DS1820正忙于复制,主CPU在发出该命令后就把单线总线拉到高电平,并保持10ms.
(5)重新调出EERAM(RECALLEERAM){B8H}。
该命令把是把存储器在EERAM温度触发器TH、TL内的数据重新调入暂存存储器的TH、TL字节。
每次DS1820上电时也自动进行这种操作。
因此,只要器件接通电源,暂存存储器器的TH和TL中已经有有效的数据供使用。
若主CPU在发出该命令之后又进行操作,只要DS1820正忙于进行调出,主CPU就读得“0”(表示“忙碌”);
完成调出操作后DS1820即返回“1”(表示“操作完毕”)。
(6)读电源(READP0WERSUPPLY){B4H}。
此项命令发送给DS1820之后,对主CPU发出的每一条读指令,DS1820都向主CPU提供电源方式信号“0”(表示由寄生电源供电)或者“1”(表示由外部电源供电)。
2.读/写时序
主CPU通过时序(亦称作“时间片”)来写入或读出DS1820中的数据。
时序用于传输数据数据位和指定进行何种操作的命令字。
(1)写时序。
主CPU把I/O线(即单线总线,亦称数据线)从高电平拉至低电平时,作为一个写周期的开始。
写时序包括两种类型:
写1时序,写0时序。
写1或写0时序必须保持至少60μs,在两个写周期之间至少要有1μs的恢复期。
DS1820在I/O线变为低电平后的15~60μs的时间内进行采样。
若I/O线为高电平,即认为写入了一位1;
若I/O线为低电平,即认为写入了一位0。
写时序的波形如图6所示。
主CPU在开始写1周期时,必须将I/O线拉至低电平,然后再释放,15μs内将I/O线拉成高电平。
主CPU在开始写0周期时,也应将I/O线拉至低电平,并保持60μs的时间。
图6DS1820写操作时序
(2)读时序。
当主CPU将I/O线从高电平拉成低电平时,就作为一个读周期的开始,并且I/O线保持低电平的时间至少为1μs。
DS1820的输出数据在读时序下降沿过后的15μs内有效。
在此期间,主CPU应释放I/O线,使之处于输入状态以便读取数据。
经过15μs后读时序结束,I/O线经外部上拉电阻又变成高电平。
读取一位数据至少需要60μs时间,并且在两位数据之间至少要有1μs的恢复期。
令初始化时间为TINT,电路的时间常数为TRC。
主CPU的采样时间为TSAMPLE,高电平的阈值电压为UIH。
要求TINT+TRC+TSAMPLE<15μs。
经过改进后,主CPU读一位数据的波形如图7所示。
采用尽量缩短TINT、TRC的周期并把主CPU采样期安排到末尾的方法,可以使总线有更充裕的稳定时间。
图7DS18B20读操作时序
3.读/写时间片
这里讲的“时间片”(timeslot)亦称时间间隙,简称时隙。
该图对其他类型的单线智能温度传感器也适用。
tslot代表时间片,tREC为恢复时间。
TLOW0、TLOW1分别表示在写0、写1时单线总线保持低电平的时间。
tRDV为读数据有效时间。
tRSTL为复位信号的低电平时间。
tPDHIGH、tPDLOW分别表示应答信号的高、低电平时间。
3.3DS18B20型单线可编程智能温度传感器
DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型产品。
3.3.1DS18B20的性能特点
DS18B20在继承DS1820全部优点的基础上,主要做了如下改进:
(1)供电电压范围扩大为3.0~5.5V。
当UDD=3.0~5.5V时,在-10~+85℃范围内,可确保测量误差不超过±
0.5℃,在-55~+125℃范围内,测量误差也不超过半。
在DS1820中当电源电压跌落过多时,测量准确度要下降。
(2)温度分辨力可编程。
DS1820的数字温度输出只用9位二进制表示,分辨力固定为0.5℃。
欲提高分辨力,只能靠软件计算来实现。
而DS18B20的数字温度输出可进行9~12位的编程。
在便笺式RAM的第五个字节是CONFIG寄存器,其格式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 温度 纪录