090F递增温度以9位数字量读出温度数字量转换时间200ms(典型值)用户可定义的非易失性温度报警设置
f报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件
DS18B20的测温原理如图333所示,图中低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在55℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图2中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。
斜率增加器预置τ1比较
低温度系数振荡器
计数器1加1
预置
Txτ2
0
高温度系数振荡器计数器2
温度寄存器
0
图333DS18B20测温原理图
停止
f在正常测温情况下,DS1820的测温分辨力为05℃,可采用下述方法获得高分辨率的温度测量结果:首先用DS1820提供的读暂存器指令(BEH)读出以05℃为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB),得到所测实际温度的整数部分Tz,然后再用BEH指令取计数器1的计数剩余值Cs和每度计数值CD。考虑到DS1820测量温度的整数部分以025℃、075℃为进位界限的关系,实际温度Ts可用下式计算:
Ts(Tz025℃)(CDCs)/CD
24温度传感器接口电路
图341温度传感器接口电路
3系统的软件设计
31主程序主函数voidmai
ucharadotmpcha
gefora10a0adisplaytmp在数码管上显示温度while132温度测量321初始化DS18B20初始化DS18B20
fvoiddsresetvoidse
dreseta
di
itializatio
comma
d初始化DS18B20ui
tiDS0i103whilei0iDS1i4whilei0r