一种基于单片机和VB的多点温度监测系统设计

2014-06-27 05:48祖一康黄冈师范学院机电工程学院湖北黄州438000
长江大学学报(自科版) 2014年19期
关键词:温度传感器电平上位

祖一康 (黄冈师范学院机电工程学院,湖北黄州 438000)

徐妙婧 (黄冈师范学院电子信息工程学院,湖北黄州 438000)

一种基于单片机和VB的多点温度监测系统设计

祖一康 (黄冈师范学院机电工程学院,湖北黄州 438000)

徐妙婧 (黄冈师范学院电子信息工程学院,湖北黄州 438000)

基于单片机和VB设计了一个多点温度监测系统,该系统采用数字式温度传感器DS18B20采集温度,利用LCD1602实时显示温度。并采用Visual Basic6.0编写了上位机温度监视界面程序,同时给出了系统硬件和软件的设计方法。实际应用表明,该系统结构简单、操作方便,能够进行多点温度监测且运行稳定。

多点温度监测系统;单片机;Visual Basic6.0;DS18B20;LCD1602

在工农业生产及日常生活中,温度是重要的控制量之一。如在冶金、窑炉、粮库、温室大棚和居住场所等都需要对温度进行实时监测。目前,一般通过模拟式温度传感器获取温度信号,但模拟式温度传感器输出的是模拟信号,且硬件结构复杂,如果扩展到多点监测,会增大硬件、软件的设计难度[1-3]。下面,笔者采用数字温度传感器DS18B20获取温度信号,结合STC89C52单片机、LCD1602液晶显示器、Visual basic6.0构建多点温度监测系统。

1 系统总体架构

多点温度监测系统总体架构图如图1所示。利用8个温度传感器对8个点的温度信号进行检测,上位机通过串口经由单片机控制相应温度传感器工作,单片机驱动LCD1602实时显示温度值,并通过串口将温度信号传输给上位机,实现远程监测。当被测温度达到设定的极限值时,单片机驱动蜂鸣器和红色发光二极管发出声光报警。

2 硬件电路设计

图1 系统总体架构图

2.1 多点温度检测电路

采用美国Dallas公司生产的1-Wire接口数字式温度传感器DS18B20进行温度检测,测量范围为-55~+125℃,增量值为0.5℃,编程设置9~12位的分辨率。该系统采用8个DS18B20实现多点温度检测,将它们的VCC引脚相连后接+5V电源、GND引脚相连后接地、DQ引脚相连后接4.7K上拉电阻,并与单片机的P1.0相接(见图2)。由此可见,DS18B20只占用一根I/O口线即可实现测温,线路简单,容易实现。

2.2 温度显示电路

采用LCD1602字符型液晶显示器进行温度显示,其工作电压范围为3~5V,工作电流为几微安。LCD1602字符型液晶显示器可以显示2行16列字符,其第1行的地址为80H~8FH,第2行地址为C0H~CFH[4-5]。该显示器有16个引脚,其中Vss引脚接地,VDD接+5V电源引脚,VO引脚接电位器,RS引脚接单片机P2.0引脚,R/W引脚接单片机P2.1引脚,E引脚接P2.2引脚,DB0~DB7引脚接单片机的P0口(见图2)。

图2 硬件电路原理图

2.3 通信和报警电路

单片机输入输出的逻辑电平为TTL电平,而PC机RS-232C标准接口的逻辑电平为负逻辑,所以单片机与PC机间的通信要添加电平转换电路[6]。该系统采用MAX232芯片来实现电平转换(见图2)。当温度达到设定极限时发出声光报警,声光报警通过单片机P2.3引脚驱动蜂鸣器、P2.4引脚驱动发光二极管来实现。

3 系统软件设计

系统软件设计内容包括温度检测程序、温度显示程序以及上位机监测程序等,基本设计思想如下: ①8个DS18B20按1~8的顺序编号,在将DS18B20温度传感器接入系统前,分别读出8个DS18B20序列号,放入8个数组中,比如sn1[8]、sn2[8]、…、sn8[8];②上位机通过串口发送DS18B20的编号给单片机以控制相应的温度传感器工作;③LCD1602第1行显示温度传感器的编号,第2行显示温度值。系统主程序如图3所示。

3.1 温度检测子程序

由于温度检测是系统实现的关键,因而对DS18B20的读写应遵照严格的时序。在进行温度检测时必须经过以下步骤,即初始化、写字节和读字节操作。每一次读写操作前都要先将DS18B20初始化,3个步骤缺一不可。温度检测子程序如图4所示。采用以下方式处理温度信号:定义变量templ存放温度低8位,变量temph存放温度高8位。如果temph高5位全为1,则为负数,需取反加1后才能转换为实际温度,具体代码如下:

3.2 温度显示子程序

利用LCD1602字符型液晶显示器进行温度显示,具体包括4种基本操作,即写命令、写数据、读状态和读数据,由该显示器的3个引脚RS、R/W和E的不同组合状态确定。在进行写命令、写数据和

读数据操作前,必须先进行读状态操作,查询忙标志,当忙标志为0时,方可进行上述操作[7]。

图3 系统主程序流程图

图4 温度检测子程序

温度的整数部分显示需将其分解,设数组dis[6]用于存放待显示的数,具体代码如下:

3.3 上位机程序设计

采用微软公司研发的可视化软件Visual Basic 6.0编写上位机监视界面。可视化软件Visual Basic 6.0有许多控件提供给编程者选用,笔者选用MSComm控件实现通信功能,MSComm控件属性设置如下:

4 系统实现

采用Keil u Vision 4编写单片机程序,结合Proteus7.7和Visual Basic 6.0联合调试,对系统进行验证(见图5)。通过下拉列表选择传感器编号,单击“发送”按钮,将编号发送给单片机驱动相应编号的传感器工作;单击“接收”按钮,单片机将温度值通过串口发送给上位机(图5中显示的是3号温度传感器的温度值,可在Proteus中点击3号传感器的温度上升或下降键观察运行情况)。实际应用表明,该系统能够进行多点温度监测且运行稳定。

5 结语

图5 温度检测界面图

基于单片机和VB设计了多点温度监测系统。该系统用单总线数字式温度传感器DS18B20采集温度、LCD1602显示温度,上位机和单片机采用串口通信。实际应用表明,该系统结构简单、操作方便,能够进行多点温度监测且运行稳定,具有很好的具有市场应用前景。

[1]陈杰,黄鸿.传感器与检测技术[M].北京:高等教育出版社,2002.

[2]王庆利,袁建敏.单片机设计案例实践教程[M].北京:电子工业出版社,2010.

[3]朱奕丹,倪浩如.基于单片机控制的高精度多点温度检测显示系统[J].自动化仪表,2008,29(8):58-64.

[4]王静霞.单片机应用技术(C语言版)[M].北京:电子工业出版社,2009.

[5]刘勇军,张新锋.基于C51的温度测量与显示系统设计[J].洛阳理工学院学报(自然科学版),2011,21(4):65-67.

[6]郭天祥.新概念51单片机C语言教程——入门、提高、开发、拓展全攻略[M].北京:电子工业出版社,2009.

[7]李江全,魏中岩,姚帅,等.单片机通信与控制应用编程实例[M].北京:中国电力出版社,2012.

[编辑]李启栋

TP368.1

A

1673-1409(2014)19-0050-04

2014-02-14

祖一康(1983-),男,硕士,讲师,现主要从事智能检测与控制和网络化控制方面的教学与研究工作。

猜你喜欢
温度传感器电平上位
温度传感器DS18B20在温度计设计中的应用
一种高性能CMOS温度传感器
XTR105电流变送器在温度传感器中的应用
特斯拉 风云之老阿姨上位
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
NPC五电平Z源逆变器的设计研究
以新思路促推现代农业上位
基于三电平光伏并网逆变器控制系统的研究与实践
基于NPC三电平变换器的STATCOM研究