微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于单片机与计算机串口的温度实时监控系统设计

基于单片机与计算机串口的温度实时监控系统设计

时间:04-22 来源:互联网 点击:

摘要:设计了一种温度实时监控系统。该系统通过单片机实现实时控制,并通过串口连接单片机与上位计算机,在计算机中实现实时监控、大容量的数据存储及数据分析等功能,解决了常规温度测量方法在温度测量实时性差、不能储存数据及缺乏数据分析功能等方面的缺陷。
关键词:串口通信;实时温度监控;MSComm控件;DS18B20

温度监控系统在农业、工业和生活中有着广泛的应用,但随着监控的面积扩大,监控点的增加及控制处理趋于智能化等新的应用要求出现,传统的温度控制系统已经逐渐不适用,首先是不便于观察而且不能及时地对异常温度变化做出迅速反应,其次是传统的温度控制系统不能储存大量数据,不能对监控的数据进行分析,不便于对温度情况进行长期的监测和科学的分析,为了解决以上问题,本文设计了一个能实时响应温度并进行控制的温度实时控制系统,并且采用与计算机串口通信结合的方式通过计算机增大了系统储存量,而且在计算机系统中收集和处理温度控制系统的数据,大幅度的增强了该系统的功能,并具备较强的扩展性。
随着计算机技术特别是单片机技术的发展,串口通信在诸多领域上得到了广泛的应用,计算机可以通过串口来获取单片机的各种数据,然后利用计算机强大的功能进行处理,再根据处理的结果发送数据到单片机,实现远程控制设备。本设计采用上位机和下位机的互联工作,而计算机的分析处理能力较强,有很好的人机界面和大容量的多种存储方式,所以上位机一般采用计算机,单片机具有价格低,功能强,较好的抗干扰能力和面向控制等特点,所以下位机采用单片机来构成互联工作模式。由于串行通信具有高效可靠、价格便宜,遵循统一的标准等特点,适用于本设计的通信要求。

1 硬件设计
1.1 电路设计
温度实时控制系统的下位机由7个部分组成(详见图1),其中测量环境温度使用DS18B20数字温度传感器,它将温度传感器、A/D传感器、寄存器、接口电路集成在一个芯片中,采用1-Wire总线协议,可实现直接数字化输出。DS18B20数字温度传感器温度测量范围为-55~+125℃,测温分辨率可达0.062 5℃,被测温度用符号扩展的16位数字量进行串行输出,适配各种单片机或系统机。使用这种传感器不需要A/D转换电路,可以大大简化电路,温度测量精度和速度都大幅提高。

本设计利用MAX232进行电平转换,实现计算机和单片机的互联通信。MAX232是低功耗、单电源双RS 232发送/接收器,适用于各种EIA-232 E和V.28/V.24的通信接口。MAX232芯片内部有一个电源电压变换器,可以把输入的+5 V电源变换成RS 232C输出电平所需±10 V电压,所以采用此芯片接口的串行通信系统只要单一的+5 V电源就可以。在MAX232芯片上,选用其中一路发送/接收,R2OUT接89C52的RXD(P3.0),T2IN接89C52的TXD(P3.1),T2OUT接PC机的RD,R2IN接PC机的TD,这样就能通过P3.0和P3.1I/O口就实现单片机与计算机互联通
信。本设计的信号灯部分一共使用6只LED灯,其中Start灯亮表示单片机上电工作,RX2(P3.0)灯亮表示接受从PC机传来的数据,TX2(P3.1)灯亮表示向PC机发送数据。m1,m2,m3三颗灯分别对应的接口为P2.5,P2.6,P2.7,当3个温度传感器探测的温度大于设定值则变亮。
总体电路设计是以单片机为中心,整合和控制各部分。本设计的单片机是STC89C52,它通过XTAL1,XTAL2引脚外接晶振和电容实现11.0 59 2 MHz的时钟周期,这能产生准确的波特率,有利于串行通信。它的RESET引脚外接电路实现上电自动复位和按键电平复位,P1.4~P1.7引脚接有4个按键,实现时间和温度的设定。单片机通过P1.0,P1.1,P1.2引脚读出3个温度传感器的温度值,然后通过P0端口和P2.0,P2.1,P2.2控制液晶板,在液晶上显示时间和温度值。同时经过单片机内部程序,控制信号灯的亮灭,发送和接受计算机的数据。
1.2 单片机程序设计
基于上节所述的硬件设计,编写程序以实现期望的功能,其中主程序不断刷新LCD显示的内容,定时器T0中断程序用于时钟的功能,定时器T1作为波特率发生器,串口中断实现与PC机的通信。
单片机刚启动,首先进行数据的初始化,初始化结束后,开始进入工作状态,若没有到结束时间,就进行温度测量并在液晶板上显示当前温度值,同时按键扫描程序不断监测是否有按键启动,若S1被按,则进入设定状态,定时器T0中断关闭,当前时间停止,液晶板上显示温度设定值和当前时间,可以通过S2,S3按键做修改(如图2)。

在工作的过程中,当单片机接收一个数据会全部储存在BUF变量里面,同时产生一个串口中断,需要软

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top