随着时代的进步和发展,单片机已经普及到我们生活、工作、科研各个领域,而且温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械、石油等工业中具有举足轻重的作用。所以,温度测控在工业领域具有广泛的应用,设计一种基于89C51单片机的温度测量系统的硬件结构具有价格低廉、精度高、微型化、抗干扰能力强、易扩展等一系列优点。在以单片机为基础的数据采集和实时温度控制系统中,通过计算机中的MAX-232接口进行计算机与单片机之间的命令和数据传送,就可以利用计算机对生产现场进行检测和控制。
1 系统的总体方案设计
本设计包括硬件和软件两个部分。系统的硬件部分大致可分为六部分:DS18B20、电源电路、显示电路、单片机最小系统、温度测试电路、串口通信电路,软件部分可分为两大部分:串口通信部分、VB数据处理与显示部分。系统的总体结构框图如图1所示。
2 系统的硬件方案设计
硬件电路作为整个系统运行的必要框架,是软件运行的结构基础,离开了硬件结构,整个系统需要实现的功能就无从谈起。此部分介绍了系统的整体硬件模块。经过任务分析。具体的硬件方案设计如下:本设计是以DS18B20为传感器、89C51单片机为控制核心组成的接口电路图。
2.1 温度传感器DS18B20
DS18B20温度传感器是美国DALLAS公司继DS1820之后推出的一种改进型和增强型单总线智能数字温度传感器。它在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。其具有适应电压范围更宽,独特的单线接口方式,支持多点组网功能,不需要任何外围元件,温度分辨力可编程,内部有温度上、下限警告设置优点。
2.2 单片机最小系统设计
由单片机以及时钟电路和复位电路构成了单片机的最小系统。
1)单片机
本设计使用的是美国ATMEL公司的89C51单片机,该型号单片机功能强大,价格低廉,可以灵活应用于各种控制领域。89C51是一种带4 k字节闪烁可编程可擦除只读存储器(FPEROM-Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。单片机系统是本温度测控系统的核心部件,包括时钟电路和复位电路的设计。
2)时钟电路和复位电路
单片机内部的振荡电路是一个高增益反相放大器,XTAL1脚和XTAL2脚分别构成内振荡器的反相放大器的输入端和输出端,外接石英晶振或陶瓷晶振以及补偿电容C1、C2构成并联谐振电路。在本硬件系统设计中,为保证串行通信波特率的误差,选择了11.059 2 MHz的标准石英晶振,电容C1、C2为30pF。
单片机的复位是靠外部电路实现的。单片机工作后,只要在它的RST引线上加载10 ms以上的高电子,单片机就能够有效地复位。复位后,P0到P3并行I/O口全为高电子,其它寄存器全部清零,只有SBUF寄存器状态不确定。
2.3 电平转换和串口通信电路的设计
1)电平转换
单片机的PC机与单片机之间的通信需通过RS232串口来实现,因为232电平与单片机输出的TTL电平不兼容,本次系统通过MAX232芯片实现TTL电平与RS232电平的转换。MAX232芯片是包含两路接收器和驱动器的RS232电平转换芯片,适用于各种232通信接口。芯片内部有一个电源电压变换器,可以把输入的+5 V电源电压变换成RS232输出电平所需的±10 V电压。所以采用此芯片接口的串行通信系统只需要单一的+5 V电源即可。
2)串口通信
串口通信是计算机与外围设备之间进行信息交换的一种方式,是指数据一位一位的按顺序在一根信号线上进行传输的通信方式。串行通信有两种基本工作方式:异步传送和同步传送,本系统中采用异步串行通信方式来实现单片机与PC之间的通信。89C51有一个全双工的串行通讯口,所以单片机和计算机之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如计算机的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换。
综上所述,可以得到系统的硬件电路图及仿真图如图2所示。
3 系统的软件方案设计
整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。下位机通过DS18B20传感器的测量,将温度采集,采集上来的温度信息经过MAX232电平转换上传给上位机,这些上传到上位机的温度信息的处理是该温度采集系统上位机最重要的一部分,实现了温度信息的查询、显示、趋势图等功能。
3.1 VB与单片机通信的建立
由单片机的测试点实时采集温度,通过MAX232传输到上位机PC,利用在Visual Basic 6.0的通信控件MSCOMM属性设置和事件响应的基础上,实现与单片机串行通信。在上位机中,完成温度传感器ROM读取并显示、实时温度数据显示、数据存储、曲线绘制、历史数据查询,其中在数据查询功能中,设计了时间查询、温度查询等功能。温度采集系统中下位机将温度转换并将温度值存储到单片机的RAM里,实现温度采集系统的上位机(PC机)向下位机(单片机)发送信息以及上位机接收下位机的温度信息并加以处理。
MSCOMM控件的目的是为了简化Windows下串行通信编程,它既可以用来提供简单的串口端口通信功能,也可以用来创建功能完备的、事件驱动的高级通信工具。使用它可以建立与串行端口的连接,通过串行端口连接到其它通信设备(如调制解调器),发出命令,交换数据,以及监视和响应串行连接中发生的事件和错误。MSCOMM控件通信的流程图如图3所示。编写程序时,只需要按照下面的流程图,即可实现通信功能。
4 结论
研究了一种基于单片机技术的温度采集系统的设计,本设计采用89C51单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从数字温度传感器传递到单片机上。通过对本设计的思考,更加加深了对单片机的认识,熟练了单片机的编程,更对当前的温度传感器有了更深刻的认识与了解。但是由于此系统依赖温度传感器,因而对温度传感器的稳定性,线性等诸多方面有着严格的要求,但是传感器的性能越好,相对而言其价格也就越高,因而在此设计中,温度传感器我个人觉的还是存在遗憾。随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,要为现代人工作、科研、生活提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。