基于51单片机的温度警报器的设计单片机课程设计报告 联系客服

发布时间 : 星期三 文章基于51单片机的温度警报器的设计单片机课程设计报告更新完毕开始阅读77acae300342a8956bec0975f46527d3250ca61a

下载可编辑

图2.2中出示了DS18B20 的主要部部件,下面对DS18B20部部分进行简单的描述[4]:

(1)64位ROM。64位ROM是由厂家使用激光刻录的一个64位二进制ROM代码,是该芯片的标识号,如表2.1所示:

表2.1 64位ROM标识 8位循环冗余检验 MSB LSB 48位序列号 MSB LSB 8位分类编号(10H) MSB LSB 第1个8位表示产品分类编号,DS18B20的分类号为10H;接着为48位序列号。它是一个大于281*1012的十进制编码,作为该芯片的唯一标示代码;最后8位为前56位的CRC循环冗余校验码,由于每个芯片的64位ROM代码不同,因此在单总线上能够并接多个DS18B20进行多点温度实习检验。

(2)温度传感器。温度传感器是DS18B20的核心部分,该功能部件可完成对温度的测量通过软件编程可将-55~125℃围的温度值按9位、10位、11位、12位的分辨率进行量化,以上的分辨率都包括一个符号位,因此对应的温度量化值分别为0.5℃、0.25℃、0.125℃、0.0625℃,即最高分辨率为0.0625℃。芯片出厂时默认为12位的转换精度。当接收到温度转换命令(44H)后,开始转换,转换完成后的温度以16位带符号扩展的的二进制补码形式表示,存储在高速缓存器RAM的第0,1字节中,二进制数的前5位是符号位。如果测得的温度大于0,这5位为0,只要将测得的数值乘上0.0625即可得到实际温度;如果温度小于0,这5位为1,测得的数值需要取反加1再乘上0.0625即可得到实际温度。

(3)高速缓存器。DS18B20部的高速缓存器包括一个高速暂存器RAM和一个非易失性可电擦除的EEPROM。非易失性可点擦除EEPROM用来存放高温触发器TH、低温触发器TL和配置寄存器中的信息。

(4)配置寄存器。配置寄存器的容用于确定温度值的数字转换率。DS18B20工作是按此寄存器的分辨率将温度转换为相应精度的数值,它是高速缓存器的第5个字节,该字节定义如表2.2所示:

表2.2 匹配寄存器

TM R0 R1 1 1 1 1 1 TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式,在DS18B20出厂时该位被设置为0,用户不要去改动;R1和R0用来设置分辨率;其余5位

.专业.整理.

下载可编辑

均固定为1。DS18B20分辨率的设置如表2.3所示:

表2.3 DS18B20分辨率的设置

R1 0 0 1 1 R0 0 1 0 1 分辨率 9位 10位 11位 12位 最大转换时间 /ms 93.75 187.5 375 750 DS18B20依靠一个单线端口通讯。在单线端口条件下,必须先建立ROM 操作协议,才能进行存储器和控制操作。因此,控制器必须首先提供下面5个ROM 操作命令之一:

1)读ROM; 2)匹配ROM; 3)搜索ROM; 4)跳过ROM; 5)报警搜索。

这些命令对每个器件的激光ROM 部分进行操作,在单线总线上挂有多个器件时,可以区分出单个器件,同时可以向总线控制器指明有多少器件或是什么型号的器件。成功执行完一条ROM 操作序列后,即可进行存储器和控制操作,控制器可以提供6 条存储器和控制操作指令中的任一条。一条控制操作命令指示DS18B20完成一次温度测量。测量结果放在DS18B20的暂存器里,用一条读暂存器容的存储器操作命令可以把暂存器中数据读出。温度报警触发器TH 和TL 各由一个EEPROM字节构成。如果没有对DS18B20使用报警搜索命令,这些寄存器可以做为一般用途的用户存储器使用。可以用一条存储器操作命令对TH 和TL 进行写入,对这些寄存器的读出需要通过暂存器。所有数据都是以最低有效位在前的方式进行读写。 2.1.3 DS18B20供电方式

DS18B20可以采用外部电源供电和寄生电源供电两种模式。外部电源供电模式是将DS18B20的GND直接接地,DQ与但单总线相连作为信号线,VDD与外部电源正极相连。如图2.3所示:

.专业.整理.

下载可编辑

VCC DS18B20 4.7K 其它单线器件 单片机 DQ VDD 外部+5V电源 图2.3 DS18B20外部供电方式

图中DS18B20的DQ端口通过接入一个4.7K的上拉电阻到VCC,从而实现外部电源供电方式。

寄生电源供电模式如图2.4所示:从图中可知,DS18B20的GND和VDD均直接接地,DQ与单总线相连,单片机其中一个I/O口与DS18B20的DQ端相连。

VCC 单片机 DS18B20 +5V 4.7K GND 图2.4 DS18B20寄生电源供电方式

2.1.4 DS18B20的测温原理

DS18B20的测温原理如图2.5所示, 其主要由斜率累加器、温度系数振荡器、减法计数器、温度存储器等功能部件组成。

.专业.整理.

下载可编辑

图2.5 DS18B20的测温原理

DS1820 是这样测温[5]的:用一个高温度系数的振荡器确定一个门周期,部计数器在这个门周期对一个低温度系数的振荡器的脉冲进行计数来得到温度值。计数器被预置到对应于-55℃的一个值。如果计数器在门周期结束前到达0,则温度寄存器(同样被预置到-55℃)的值增加,表明所测温度大于-55℃。同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。然后计数器又开始计数直到0,如果门周期仍未结束,将重复这一过程。

斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分辨率。这是通过改变计数器对温度每增加一度所需计数的的值来实现的。因此,要想获得所需的分辨力,必须同时知道在给定温度下计数器的值和每一度的计数值。

DS18B20部对此计算的结果可提供0.5℃的分辨率。温度以16bit带符号位扩展的二进制补码形式读出,表2.4 给出了温度值和输出数据的关系。数据通过单线接口以串行方式传输。DS18B20测温围-55℃~+125℃,以0.5℃递增。

表2.4 温度数据关系

温度℃ +125 +25 +0.5 0 .专业.整理.

数据输出(二进制) 00000000 11111010 00000000 00110010 00000000 00000001 00000000 00000000 数据输出(十六进制) 00FA 0032 0001 0000