基于单片机的温度采集监控系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第11卷第6期Vol.11,No.6宜宾学院学报Journal of Yibin University 2011年6月June ,2011

收稿日期:2010-11-24.修回:2011-02-23作者简介:陈元莉(1966-),女,四川南部县人,副教授,硕士,主要从事电子技术应用方面的研究

基于单片机的温度采集监控系统

陈元莉

(西华师范大学物理与电子信息学院,四川南充637002)

摘要:使用AT89S52单片机作为主控芯片,通过温度传感器DS18B20采集温度送入单片机进行处理,将处理好的数据通过RS232串口送往上位机PC ,上位机利用获得的数据绘制温度曲线图,便于直观地进行温度监控工作.系统还可以扩充为多路温度数据采集系统.关键词:单片机;温度传感器;串行通信;电平转换中图分类号:TP368.1

文献标志码:A

文章编号:1671-5365(2011)06-0068-03

Temperature Data Collecting and Monitoring System of Microcontroller

CHEN Yuan-li

(School of Physics and Electronic Information ,China West Normal University ,Nanchong 637002,China )

Abstract :By using the temperature sensor DS18B20to collect temperature data and the microcontroller AT89S52as the core com-ponent ,data was transmitted for procession.Via RS232serial port ,the processed data was sent to PC to draw out temperature curve for directly monitoring the temperature.The system can be also expanded to multi-channel temperature data acquisition sys-tem .

Key words :microcontroller ;temperature sensor ;serial communication ;electrical level conversion 温度是工业生产中常见的工艺参数之一,任何物理变化

和化学反应过程都与温度密切相关,

因此温度控制是生产自动化的重要任务.对于在不同生产情况和工艺要求下的温度

控制、所采用的加热方式、燃料、控制方案也有所不同,因此对温度数据的采集和监控在工业生产中有着重要意义.

近年来,随着计算机技术的迅速发展,单片机的应用技术已经渗透到国民生产的各个领域.由于传统的温度采集方法不仅费时,而且精度差,满足不了各行各业对于温度数据高精度及设备可靠性的要求.单片机的出现使得温度数据的采集和处理得到了很好的解决,选择适当的单片机和温度传感器,可以获得较高精度的温度数据,且产品价格低廉、可靠性高.

1系统硬件电路的基本构成

(1)系统的核心AT89S52单片机具有下列优点[1]:①

小巧灵活、成本低、易于产品化,能方便地构成各种智能式控制设备及各种智能仪器仪表.②抗干扰能力强,适用温度范围宽,在各种恶劣环境下都能可靠地工作.③处理功能强,速度高等.因此,系统选用ATMEL 公司生产的单片机AT89S52作为系统核心,通过该单片机的P3.3口接收由温度传感器DS18B20发来的串行数据,从中提取温度数据,再将该数据通过单片机的异步通信串口发往上位机

PC ,在PC 机中绘制温度曲线,供用户直观地观察温度的变化,

以便用户根据温度的变化作出相应决策.(2)温度传感器DS18B20DS18B20是美国DALLAS

半导体公司生产的单线智能数字温度传感器,可把温度信

号直接转换为串行数字信号供计算机处理[2]

.DS18B20的测温范围为-55ʎC +125ʎC ,固有测温分辨率为0.5ħ,

最高分辨率可达到0.0625ħ,只需一条连接线即可实现与单片机之间的双向通信

[3]

.如图1所示为DS18B20与单片

机之间的连接方式,

DS18B20数据线DQ 与AT89S52单片机P3.3口连接

,同时DQ 需要接入4.7K 上拉电阻,确保传感器单总线正常通信.DS18B20将采集到的温度数据转换成9 12位(可编程)的数字量送往单片机进行处理.

图1系统的硬件组成

(3)MAX232由于单片机的串行口输入输出的是TTL 电平(0 5V)的信号,而PC机的串行口采用的是RS232电平(-10V 10V)的信号,为了实现它们之间的正常通信,必须将TTL电平的信号转换成RS232电平的信号,本系统采用日本MAXIM公司生产的MAX232芯片实现电平转换,保证单片机与PC机之间的正常通信[4].

(4)PC机PC机中使用Spcomm控件读取从单片机发来的串行温度数据,利用Delphi7进行编程,可实现根据接受到的温度数据,绘制相应温度变化曲线,供用户观察温度的变化情况[5].

2系统基本工作原理

2.1温度数据的获取

首先由单片机通过单总线向DS18B20输出复位脉冲,DS18B20收到复位脉冲后开始初始化,完成后向单片机发存在脉冲,单片机收到存在脉冲后表示温度传感器DS18B20已经准备好操作;由于本系统中只有一个温度传感器,故此时单片机向DS18B20发SKIP ROM(0CCH)命令以节省时间;紧跟着单片机向DS18B20发启动温度转换命令(44H),当温度转换完毕后,DS18B20在单总线上输出高电平“1”,单片机检测到该电平后,开始读取温度数据;DS18B20采集到的温度数据存放在高速暂存器中,高速暂存存储器由9个字节组成,温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节,单片机可通过单线接口读到该数据,读取时低位在前,高位在后,读到的16位数据高五位为符号位,其余为数据位,符号位全为0表示为正温度,只要将测到的数值乘于0.0625即可得到实际温度;符号位全为1时温度为负,此时测到的数值需要取反加1再乘于0.0625即可得到实际温度.例如:当读取数据为0191H,则:

实际温度=0191Hˑ0.0625=401ˑ0.0625=

25.0625ħ≈25.06ħ(保留2位小数)当读取数据为为FF5EH,此时为负温度,则应先将低11位数据位取反加1得A2H(符号位不变,也不作为计算),则:

实际温度=-A2Hˑ0.0625=-162ˑ0.0625=

-10.125ħ≈-10.13ħ(保留2位小数)在单片机中将计算好的温度数据转换为BCD码后存入数据缓冲区中.

2.2温度数据的传输

2.2.1数据传输的速率

在通信中,只有收发双方保持完全相同的波特率,才能保证数据准确传输.PC机的传输速度选择9600波特,为了能使单片机达到同样的波特率,单片机选用11.0592MHz的振荡频率,同时使单片机的异步通信的串行口工作在工作方式一,定时器T1工作在方式二,初始值选用FDH=253,设SMOD=0,则单片机串口工作的波特率为:

波特率=

11.0592ˑ106

32ˑ12ˑ(256-253)

=9600波特

这样,单片机和PC机之间的串行数据传输采用9600波特的速率,能保证数据的准确传输.

2.2.2数据传输的格式

将单片机中计算好的温度数据转换为三个字节的BCD码送往PC机,数据格式为,第一字节:符号位和百位,第二字节:十位和个位,第三字节:小数点后的2位.例如:要传输的温度为25.06ħ,则三个字节的数据为:

000000000010010100000110

当要传输的温度为-10.13ħ时,则三个字节的数据为:

111100000001000000010011

3软件设计

软件设计部分主要包括温度数据获取子程序,串行数据传输子程序等.

3.1读取温度数据子程序

首先单片机通过单总线向温度传感器DS18B20输出复位脉冲,启动温度传感器DS18B20的初始化,此时单片机检测到DS18B20反馈的应答脉冲后,初始化完成;跳过读序列号的操作,然后启动温度转换,转换没完成则继续等待,待转换完成后,单片机从传感器读取温度数据,经计算后存入RAM中,程序流程如图2所示

图2读取温度子程序

3.2串行数据传输子程序

选择AT89S52串行口的工作模式1,此时为波特率可变

96

第6期陈元莉:基于单片机的温度采集监控系统

相关文档
最新文档