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

时间:2013-01-15来源:网络


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强大的数值计算、图形显示和申口操作功能,具有友好的人机交互界面,实现了温度的动态监测。

1 2

关键词: 单片机 PC机 温度监测 Matlab 串口

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版