基于单片机与PC机的温度监测系统设计

发布者:yunhao最新更新时间:2013-01-18 来源: 电子设计工程 关键字:单片机  PC机  温度监测  Matlab 手机看文章 扫描二维码
随时随地手机看文章

    温度是一个重要的物理量,在工农业生产和日常生活中,经常需要对环境温度进行监测。本文设计了一个温度监测系统,温度传感器采用DS18B20,下位机采用AT89S52单片机,实现温度测量、显示、超限报警等功能,上位机采用PC机,利用Matlab设计了友好人机交互界面,实现温度的采集、显示、绘图、报警、保存数据等功能。

1 系统总体设计
    系统采用AT89S52单片机作为下位机,PC机作为上位机,二者通过串口发送或接收数据,实现环境温度的测量、显示、超限报警、测温数据保存等功能。系统总体设计框图如图1所示。

d.JPG


    单片机最小系统包括单片机工作所必需的复位电路、时钟电路和电源电路。温度传感器采用DS18B20芯片,测量温度范围为-55~+125 ℃,该芯片不需要外接电源,可编程的分辨率为9~12位,测温分辨率最高可达0.062 5℃,数据传送只需要一条通信线,接单片机的P2.0口。温度显示部分使用4个八段LED共阳极数码管,采用动态驱动方式,数码管的a,b,c,d,e,f,g,DP八段由单片机P0.0—P0.7口控制,单片机的P1.0—P1.3口控制4个数码管轮流动态显示。超限温度报警采用蜂鸣器,由单片机的P2.1口控制发声。
    PC机的串行口采用的是标准的RS 232接口,而单片机的串行口电平是TTL电平,与RS 232的电气特性不匹配,所以系统采用常用芯片MAX 232来完成电平的转换,使单片机的串行口能与RS 232接口通信。上位机动态温度监测系统利用Matlab软件设计友好人机交互界面,实现温度数据的设置、采集、计算、显示与保存等功能。

2 下位机程序设计
    单片机作为下位机,其主要任务是:
    1)通过DS18B20实现温度数据的采集和处理,并在LED数码管上实时显示当前温度,保留小数点后1位;
    2)通过串口接收上位机设定的上下限报警温度,并在LED数码臂上显示;
    3)通过串口接收要求发送温度数据的命令,向上位机发送温度数据;
    4)判断当前温度,如果超限启动蜂鸣器报警,设定不同频率的方波驱动蜂鸣器发出不同声音,用来区分超上限还是超下限。

a.JPG


    单片机采用Keil C51编写程序,DS18B20分辨率设为12位,其主程序流程图如图2所示。主程序主要完成系统的初始化,主要包括DS18B20和串口的初始化;4个LED数码管显示“0000”,等待上位机发送上限温度数据;接收数据后显示,等待上位机发送下限温度数据;接收数据,显示下限温度并延迟约2秒后开始测湿。读DS18B20温度值,将读取的低8位字节和高8位字节组成16位无符号整型温度数据(其中低4位为沮度的小数部分,中间8位为温度的整数部分),处理沮度数据并在数码臂上显示温度值;判断温度,超限报警;接收到上位机发送的命令字“255”就向上位机发送由DS18B20读出的16位温度数据,先发送低8位字节,后发送高8位字节;返回读DS18B20温度值。
[page]

3 上位机程序设计
    PC机作为上位机,主要任务包括:
    1)设定上下限报警温度,通过串口发送给下位机;
    2)通过串口发送要求单片机传送温度数据的命令,命令数据为“255”;
    3)通过串口接收下位机的温度数据,做各种运算后显示温度值,并绘图;
    4)判断当前温度,如果超限启动报警指示和发声报警;
    5)保存测温时间及数据,以备查询。
    上位机采用Matlab编写程序实现与下位机通信及温度监测。Matlab是MathWorks公司开发的科学计算软件,具有强大的数值计算和图形显示功能,利用Matlab,用户还可以操作计算机的串口与外部设备进行通信,并且支持BS-232、RS422和RS485接口标准。Matlab内置了GUI(Gr aphie UserInterface)模块,具有界面设计开发功能。本文利用MatlabGUI设计了上位机系统界面,采用M文件编程设计的方式,比GUIDE(Graphical User Interface Development Environment)辅助设计的方式功能更强,且代码易于修改。系统测温的界面如图3所示。

b.JPG


    测温界面保留了MATLAB窗体框架窗口的菜单,利用菜单设计函数uimenu()设计了一级菜单About和二级菜单Operation steps和Contact us,可以弹出窗口显示系统的操作步骤和作者的联系方式。
    利用函数uicontrol()的Style属性的text类型在窗口左下角建立设定上下限温度的显示、超限报警指示、测温开始和结束时间显示,在窗口右上角建立当前、最大、最小和平均温度显示。利用函数axes()建立1个位于窗口中心坐标轴,用于绘制动态温度曲线。利用函数uicontrol()的Style属性的pushbutton类型在窗口右下角建立5个按钮。对各控件编辑Callback回调函数,实现完整的上位机温度监测功能。
    “打开串口”按钮操作主要完成串口初始化,其中利用了obi=serial(‘coml’,‘baudrate’,9600,‘parity’,‘none’,‘databits’,8,‘stopbits’,1)语句设定串口对象obj连接到串口com1,设定波特率为9600,不做奇偶校验,设定传输的数据位数目为8位,字节终止位数为1位。再利用fopen(obj)打开串口对象。
    “关闭串口”按钮操作主要利用fclose(obj)和delete(obj)语句完成串口的释放。
    “开始测温”按钮操作是系统软件的核心,利用了fwrite(obj,255)语句发送命令字“255”,要求下位机发送温度数据;利用fread(obj,2)语句接收2字节的16位温度数据,先接收低8位字节,后接收高8位字节,16位数据中低12位为温度数据,首先判断温度正负,再计算当前温度,累计测量温度的最大值、最小值和平均值,小数点后保留1位显示在界面的右上角数据显示区;根据当前温度利用plot()函数实时
绘制温度曲线;判断温度是否超限,如果超限进行报警指示,当前温度显示红色,并利用sound()函数发声报警。当温度超限时的报警界面如图4所示。

c.JPG


    “保存数据”按钮操作打开文件保存对话框,选择路径、保存测温数据及测温时间,其中调用了Matlab保存文件对话框函数uiputfile(),用save函数保存.mat格式的数据。
    上位机操作步骤为鼠标单击“打开串口”按钮,用户先后输入报警上限和下限温度;单击“开始测温”按钮开始测温。测温结束时单击“关闭串口”按钮;再单击“保存数据”按钮,选择保存路径,输入文件名保存测温数据及测温时间;最后单击“退出”按钮关闭窗口退出系统。

4 结论
    设计的基于单片机和PC机的动态温度监测系统分别在上位机和下位机实现了温度显示和报警功能,上位机还实现了绘制动态温度曲线,保存数据以备查询。系统利用了Matlab强大的数值计算、图形显示和申口操作功能,具有友好的人机交互界面,实现了温度的动态监测。

关键字:单片机  PC机  温度监测  Matlab 引用地址:基于单片机与PC机的温度监测系统设计

上一篇:一种便携式的多功能SLD数字测控系统设计
下一篇:MCS-51单片机嵌入式Internet技术的工作原理简述

推荐阅读最新更新时间:2024-03-16 13:16

CRC校验码在单片机中的程序实现及其冗余码表的求取
  由单片机嵌入式系统与微机组成的工业检测和数据采集系统中,计算机与单片机之间经常需要进行数据通信。在数字通信过程中,干扰有可能使接收到的二进制数和发送的不一致,造成“0”和“1”互变的差错。一个实用的通信系统必需能发现这种差错,并加以纠正或给出重新发送信息。CRC(CyclicRedundancy Code循环冗余码),也称多项式编码。是一种检错效率高、原理简单、易于实现的通信编码,是目前在数字通信领域应用最为广泛的一种检验方式。如16位的 CRC—CCITT标准可以检测出所有的单位错、双位错、奇位数错及小于等于16位的突发错,大于17位的突发错检错率为99.9984%[1]。可见, CRC码的检错率要大大高于一般的奇偶校验。因
[单片机]
CRC校验码在<font color='red'>单片机</font>中的程序实现及其冗余码表的求取
FreescaleMK30X256单相电表参考设计方案
Freescale公司的MK30X256是集成了段式LCD控制器的低功耗基于100MHz ARM Cortex™-M4内核的MCU,支持多达320段LCD.K30系列采用创新的90nm薄膜存储(TFS)闪存技术和FlexMemory (EEPROM),提供一流的低功耗和混合信号集成, 器件提供1.25 Dhrystone MIPS per MHz的性能,工作电压和闪存写入电压均为1.71- 3.6 V,多达16路DMA,主要用在自动调温器,智能仪表,心率监视仪和血气分析仪.本文介绍了K30 MCU主要特性和优势, 方框图以及MQXTM + ZigBee® MK30X256单相电表参考设计主要特性, 单相电表方框图和电表主要指标. K
[电源管理]
FreescaleMK30X256单相电表参考设计方案
应用MSP430F149单片机的超低频波形发生器
    摘要: 介绍了应用MSP430F149芯片开发超低频波形发生器的设计原理及其在生理滤波器调试中的应用。     关键词: MSP430F149芯片 单片机 波形发生器 滤波系统 在载人运输系统振动分析仪中常用超低频波形发生器作为仿真的信号源。要求在0.1Hz~100Hz范围内稳定工作,波形失真小,且能以0.1Hz为步长细调。传统超低频波形发生器设计中存在着很多的不足:(1)应用通用电路,元器件多,尤其是电容的体积大,且波形的稳定性差、失真大,调节上极不方便;(2)应用专用电路,如ICL8038、MAX038,其失真和稳定性方面有明显提高,但在超低频应用上仍不合适。而且电路调节器件多,对电源的要求较高,代
[应用]
单片机实现具有掉电记忆功能的计时器
项目描述: 用单片机实现0 ~ 99s的计时,将计时实时显示在LCD上,并用24C02实现掉电记忆。 仿真原理图如下: C语言代码如下: /*------------------------ FileName: clock.h Function: 头文件 Author: Zhang Kaizhou Date: 2019-6-12 18:07:29 ------------------------*/ #include reg52.h #include intrins.h #include string.h #define uchar unsigned char #define uint unsigned int
[单片机]
<font color='red'>单片机</font>实现具有掉电记忆功能的计时器
51单片机多任务操作系统的原理与实现
前言 想了很久,要不要写这篇文章?最后觉得对操作系统感兴趣的人还是很多,写吧.我不一定能造出玉,但我可以抛出砖. 包括我在内的很多人都对51使用操作系统呈悲观态度,因为51的片上资源太少.但对于很多要求不高的系统来说,使用操作系统可以使代码变得更直观,易于维护,所以在51上仍有操作系统的生存机会. 流行的uCos,Tiny51等,其实都不适合在2051这样的片子上用,占资源较多,唯有自已动手,以不变应万变,才能让51也有操作系统可用.这篇贴子的目的,是教会大家如何现场写一个OS,而不是给大家提供一个OS版本.提供的所有代码,也都是示例代码,所以不要因为它没什么功能就说LAJI之类的话.如果把功能写全了,一来估计你也不想看了,二来也
[单片机]
FPGA和单片机的串行通信接口设计
1 前言 现场可编程逻辑器件(FPGA)在高速采集系统中的应用越来越广,由于FPGA对采集到的数据的处理能力比较差,故需要将其采集到的数据送到其他CPU系统来实现数据的处理功能,这就使FPGA系统与其他CPU系统之间的数据通信提到日程上,得到人们的急切关注。本文介绍利用VHDL语言实现 FPGA与单片机的串口异步通信电路。 整个设计采用模块化的设计思想,可分为四个模块:FPGA数据发送模块,FPGA波特率发生控制模块,FPGA总体接口模块以及单片机数据接收模块。本文着重对FPGA数据发送模块实现进行说明。 2 FPGA数据发送模块的设计 根据RS232 异步串行通信来的帧格式,在FPGA发送模块中采用的每一帧格
[嵌入式]
单片机控制MC55模块实现远程无线数据传输
GPRS(General PACket Radio Service)是通用分组无线业务的简称,是一种以全球手机系统(GSM)为基础的数据传输技术。GPRS网不但具有覆盖范围广、数据传输速度快、通信质量高、永远在线和按流量计费等优点,而且其本身就是一个分组型数据网,支持TCP/IP协议,无需经过PSTN(公用电话交换网)等网络的转接,可直接与Internet网互通。因此GPRS业务在无线上网、环境监测、交通监控、移动办公等行业中具有无可比拟的性价比优势。 西门子MC55是带有GSM/GPRS全套语音和数据功能的先进无线模块。其超小的体积----所有功能都集中在一块集成的芯片内(仅50 x 33 x 7.2 mm);最简便的开发--
[单片机]
<font color='red'>单片机</font>控制MC55模块实现远程无线数据传输
80C51单片机中断的编程使用方法介绍
1、单片机中断: 找了一张 80C51 单片机的图如下: 其中,在 P3.2、P3.3 的位置,即 12 ,13 引脚处,标有 INT0 和 INT1,那两个引脚就是外部中断的输入。上面一个横杠代表低电平有效,给 P3.2、P3.3 赋值 0,就可以运行已经写好的中断服务程序。具体怎么用,还要熟悉一些中断寄存器的使用。 2、中断寄存器: (1)、IE (Interrupt Enable):中断允许控制寄存器 EA (IE.7):EA=0 时,所有中断禁止(即不允许中断) EA=1 时,各中断的产生由个别的允许位决定 ET2 (IE.5):定时器 2 溢出中断允许(8052 用,博主用的 STC89C54RD+ 也有) ES
[单片机]
80C51<font color='red'>单片机</font>中断的编程使用方法介绍
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved