当前位置:首页 > 基于51单片机的温度警报器的设计单片机课程设计报告
.
表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 -0.5 -25 -55 数据输出(二进制) 00000000 11111010 00000000 00110010 00000000 00000001 00000000 00000000 11111111 11111111 11111111 11001110 11111111 10010010 数据输出(十六进制) 00FA 0032 0001 0000 FFFF FFCE FF92 S18B20遵循单总线协议,每次测温时都必须有4个过程[6]: ? 初始化;
? 传送ROM 操作命令; ? 传送ROM操作命令; ? 数据交换;
资料.
共分享92篇相关文档