在正常测温条件下,0.5℃为DS18B20温度分辨率,可以使用下面的方法来获得高分辨率的温度测量结果。读暂存器命令(BEH)由DS18B20提供,读出温度测量的分辨率为0.5℃,然后去掉测量结果中的最低有效位(LSB),得到的整数部分TZ为所测量的实际温度,然后用BEH指令计数器1的剩余CS和每度计数值的CD。考虑到DS18B20测量温度的整数部分限制在0.25℃、0.75℃,实际温度TS可以用下面公式(1):
(1)
3.2.5 接口电路
传感器数据采集电路主要指的是DS18B20温度传感器与单片机的接口电路[9,10]。DS18B20有两种供电模式,一个供电模式是采用电源供电方式,这时DS18B20引脚1接地,2脚为信号线,引脚3接电源。另一个供电模式是采用寄生电源供电方式,但是实际应用中寄生电源供电方式适应能力差并且容易损坏,所以该设计采用电源供电方式。温度传感器挂在一根I/O口线进行温度采集,I / O端口与单片机P3.3口相接。采集电路如图11所示。
图11 温度采集电路
3.3 显示电路
LCD1602也叫1602字符型液晶,它是一种专门用来显示数字、符号、字母等的点阵型液晶模块。它由若干个5X11或者5X7等点阵字符位组成,点阵字符位中的每一个都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。
LCD1602是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。
LCD1602模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:英文字母的大小写、日文假名、阿拉伯数字和常用的符号等,字符中的每一个都有一个固定的代码,比如大写的英文字母“B”的代码是01000010B(42H),显示时模块把地址42H中的点阵字符图形显示出来,我们就能看到字母“B”。
在单片机编程中还可以用字符型常量或变量赋值,如'A’。因为CGROM储存的字符代码与我们PC中的字符代码是基本一致的,因此我们在向DDRAM写C51字符代码程序时甚至可以直接用P1=‘A’这样的方法。PC在编译时就把'A'先转换为41H代码了。
由于1602微功耗、体积小、显示内容丰富、超薄轻巧,所以常用在袖珍式仪表和低功耗应用系统中。显示电路如图12所示。
图12 显示电路
3.4 报警电路
报警电路一方面是利用有源蜂鸣器进行报警输出,采用直流供电。蜂鸣器直接接P2.3引脚,当所测温度高于或者低于所预设的温度时,报警输出。另一方面由LED灯接P1.7引脚,当温度超过预设范围时,光报警。报警电路图如图13所示。 51单片机的温度自动记录仪系统设计+电路图+源码(5):http://www.751com.cn/zidonghua/lunwen_5530.html