APP下载

基于DS18B20的温度采集系统设计

2017-04-09魏慧竹

四川水泥 2017年5期
关键词:预置数码管低电平

魏慧竹

(沈阳理工大学 辽宁沈阳 110035)

基于DS18B20的温度采集系统设计

魏慧竹

(沈阳理工大学 辽宁沈阳 110035)

1 DS18B20的工作原理

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

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

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

2 AT89C52简介

低功耗,高性能CMOS 8位单片机,片内含4K BytesISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及AT89C52引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元。

3 数码管显示电路

发光二极管LED是一种通电后能发光的半导体器件,其导电性质与普通二极管类似。它使用了8个LED发光二极管,其中7个显示字符,1个显示小数点,故通常称之为7段发光二极管数码显示器,为了显示字符,要为 LED显示器提供段码(或称字形代码),组成个“8”字形的7段,再加上1个小数点位,共计8段。共阳极接法:把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5 V, 每个发光二极管的阴极通过电阻与输入端相连。当阳极端输入低电平时,段发光二极管就导通点亮,而输入高电平时则不点亮。

本设计采用LED数码管显示电路,该显示电路由7段共阳数码管,限流电阻,三极管,基极电阻,P0口,P2口等组成。P0口通过与电阻排与数码管的8个数据位相连,送显示数码。电阻即可起到限流作用,又可起到上拉电阻的作用。P2口的P2.0~P2.3通过4个10kΩ的电阻和4个三极管与4个7段数码管相连,起位选的作用。

温度报警电路是检测当前温度的值并与预置的温度上下限进行比较,当当前温度超出预置的温度上下限时,系统就会立即发出报警信号。此设计的温度报警电路是由声光报警电路组成,用到了蜂鸣器和LED发光二极管。

4 DS18B20复位检测子程序流程

主机控制DS18B20完成任何操作之前必须先初始化,即主机发一复位脉冲(最短为480us的低电平),接着主机释放总线进入接收状态,DS18B20在检测到I/O引脚上的上升沿之后,等待15-60us然后发出存在脉冲(60-240us的低电平)。

DS18B20复位检测子程序的主要功能为检测DS18B20是否存在。若存在则将标志位FLAG1置1,反则置0.后续程序可以通过判断标志位来决定进行何种操作。

温度转换命令子程序主要是发温度转换命令,当采用12位分辨率时转换时间约为750ms。

写时间片:将数据从高电平拉至低电平,产生写起始信号。在15us之内将所需写的位送到数据在线,在15us到60us之间对数据线进行采样,如果采样为高电平,就写1,如果为低电平,写0就发生。在开始另一个写周期前必须有1us以上的高电平恢复期。

读时间片:主机将数据线从高电平拉至低电平1us以上,再使数据线升为高电平,从而产生读起始信号。主机在读时间片下降沿之后15us内完成读位。每个读周期最短的持续期为60us,各个读周期之间也必须有1us以上的高电平恢复期。如图5-8.

读温度子程序只读出DS18B20缓存器前4个字节的数据:温度值LSB温度值MSB、温度报警值TH和TL,并将它们分别存入25H~28H单元中。

温度计算子程序首先判断温度值MSB的符号位,当符号位S=0时,表示测得的温度值为正,可以直接将二进制转换为十进制;当符号位S=1时,表示测得的温度值为负,要先将补码变成原码,再计算十进制值。计算时先将温度值LSB的低四位取出,进行小数部分数据处理。再将温度值LSB的高四位和温度值MSB的低四位取出,重新组合后进行整数部分数据处理。

5 调试与仿真

软件的仿真是用的Proteus ISIS,是英国Labcenter公司开发的电路分析与实物仿真软件。将设计的电路图连接好,将程序加入到AT89C52中,进行仿真,和多次的修改,最终得到预测的结果。

[1]彭桂兰,张学军,张新东.温室环境计算机测控技术的研究现状和发展趋势 [J].现代化农业,2001.

[2]彭里.温室大棚检测控制系统的研究 [J ].计算机工程,2000.

[3]何鹏,袁其,丁春欣.传感器在温室大棚环境控制中的应用 [J ].计算机与农业,2002.

[4]崔志富,赵亭荃,李建国.温度传感器在农业生产中的应用 [J ].现代化农业,2002.

[5]周月霞,孙传友. DS1820传感器及其测温方法的改进 [J ].石油仪器,2002.

TU7

B

1007-6344(2017)05-0124-01

猜你喜欢

预置数码管低电平
铁道车辆高/低电平信号智能发生器设计
基于排队论的水下预置反舰导弹部署优化
微课教学设计之“数码管动态显示”
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
多级网络物资预置—前送模型及改进布谷鸟搜索算法研究
15-MeV电子直线加速器的低电平系统
混料设计在6061铝合金激光焊预置Al-Si-Ni粉末中的应用