基于STC89C52的电子温度计的设计论文说明书[1] 2(5)

2019-01-27 16:52

大学毕业设计说明书 Vpp为本引脚的第二功能。在对EPROM型单片机8751片内EPROM固化编程时,用于施加较高的编程电压。

XTAL1(19引脚):接外部晶体的1个引脚。该引脚内部是1个反相放大器的输入端。这个反相放大器构成了片内振荡器。如果采用外接晶体振荡器时,此引脚应接地。

XTAL2(18脚):接外部晶体的另一端,在该引脚内部接至内部反相放大器的输出端。若采用外部时钟振荡器时,该引脚接收时钟振荡器的信号,即把此信号直接接到内部时钟发生器的输入端。

4.2 DS18B20数字温度传感器

DS18B20是美国DALLAS公司生产的全新单线(1-wire)数字式温度传感器,不需要另外再接A/D转换器。它采用单线技术,与单片机通信只需一个引脚2(地址、命令、数据输入或输出引脚)。独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

数字温度传感器DS18B20有两种封装方式:分别是TO-92封装和8脚SOIC封装,如图4.2所示,图的上方是DS18B20的TO-92封装,图的下方是DS18B20的8脚SOIC封装,本设计采用的是第一种DS18B20 T0-92封装形式。

图4.2 引脚封装图

4.2.1 DS18B20功能特性

DS18B20的引脚: 1:GND(地)

第 18 页

大学毕业设计说明书 2:DQ(地址、命令、数据输入或输出) 3:VDD(可选的+5V电源)

DS18B20的温度检测范围是:-55℃~+125℃,固有测温分辨率0.5℃。在-10~85℃范围内误差为±0.5℃。工作电源: 3.0~5.5V/DC。测量结果以9~12位数字量方式串行传送,适用于DN15~25, DN40~DN250各种介质工业管道和狭小空间设备测温,温度传感器可编程的分辨率为9~12位,温度转换为12位数字格式最大值为750毫秒,用户可定义的非易失性温度报警设置。应用范围包括恒温控制,工业系统,消费电子产品温度计,或任何热敏感系统。

DS18B20的数字温度计提供9至12位可编程设备温度读数。信息从DS18B20 通过1线接口,所以中央微处理器与DS18B20只有一个一条口线连接。为读写以及温度转换可以从数据线本身获得能量,不需要外接电源。 因为每一个DS18B20的包含一个独特的序号,多个DS18B20可以同时存在于一条总线。这使得温度传感器放置在许多不同的地方。它的用途很多,包括空调环境控制,感测建筑物内温设备或机器,并进行过程监测和控制。并且同一根信息线上可挂多个DS18B20而互不影响,因为每个DS18B20有惟一的63位序号,该序号存放在各自的ROM里面。温度与数据的关系如下表4.1所示:

表4.1 温度与数据的关系

温度℃ +125 +25 +1/2 0 -1/2 -25 -55 数据输出(二进制) 00000000 11111010 00000000 00110010 00000000 00000001 00000000 00000000 11111111 11111111 11111111 11001110 11111111 10010010 数据输出(十六进制) 00FA 0032 0001 0000 FFFF FFCE FF92 温度的读取:DS18B20在出厂时以配置为12位,读取温度时共读取16位,所以把后11位的二进制转化为10进制后在乘以0.0625便为所测得的温度,还需要判断其正负。前5个数字为符号位,当前5位为1时,读取的温度为负数;当前5位为0时,读取的温度为正数。16位数字摆放是从低位到高位,DS18B20有两个字节的RAM用于存储检测温度数值(以补码的形式存储),其格式如下表4.2所示:

第 19 页

大学毕业设计说明书 表4.2 存储温度数值的格式

高8位数据 符号位 S S S S S 检测温度整数 低8位数据 检测温度小数 26 25 24 23 22 21 20 2-1 2-2 2-3 2-4 当检测到正温度时S为0,当检测到负温度时S为1。在默认情况下,DS18B20的分辨率为2-4。

例如读取DS18B20的数据为0000001110111010(03BAH)则实际检测到的温度为正温度(因符号位为0),数值=01110111010=0×2+1×2+1×2+1×2+0×2+1×2+1×2+1×2-1+0×2-2+1×2-3+0×2-4=59.375℃。 4.2.2 DS18B20的内部结构

DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器,如图4.3所示。

64位ROM的结构开始8位是产品类型的编号,接下来是每一个器件的惟一序号,总共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以连接到一根数据线上进行通信的原因。温度报警触发器TH(保存上限值)和TL(保存下限值),可通过软件写入报警上下限。

DS18B20温度传感器的内部存储器还包括一个高速暂存器RAM和一个非易失性的电可擦除的EERAM。高速暂存RAM的结构为8字节的存储器,其结构如表4.3所示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器器中的分辨率转换为相应精度的温度数值。该字节各位定义如表4.4所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20在出厂时就被设置为0,R1和R0决定温度转换的精度位数,来设置分辨率。

6

5

43

2

1

0

第 20 页

大学毕业设计说明书

图4.3 DS18B20内部结构图

表4.3 高速暂存器RAM的结构 表4.4 DS18B20的字节定义

温度LSB 温度MSB TH用户字节1 TL有户字节2 配置寄存器 保留 保留 保留 CRC 4.2.3 工作原理

TM R1 R0 1 1 1 1 1 DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率的不同而不同,且温度转换时的延时时间由2s减为750ms。 DS18B20温度传感器的低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度的温度值。DS18B20温度传感器中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。测温原理图如图4.4所示:

第 21 页

大学毕业设计说明书

图4.4 测温原理图

4.2.4 使用方法

由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。

由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备,而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。

DS18B20的复位时序如图4.5所示:

图4.5 DS18B20的复位时序

DS18B20的读时序,如图4.6所示

对于DS18B20的读时序分为读0时序和读1时序两个过程。

对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,

第 22 页


基于STC89C52的电子温度计的设计论文说明书[1] 2(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:备战2016(上海版)高考数学分项汇编 专题06 数列(含答案解析)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: