EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1 前言- s, W0 H# G; ]3 E9 v. m
. N" B' B/ ^: F2 B' W L1 ]
温度是表征环境的一个重要的参数。在工程领域,尤其像工程热力学等,温度检测非常普遍,对温度精确测量以便实时控制也显得尤为重要。
# \# c+ Y. q$ e. x) }* a( W1 s) s9 L2 }& A; H4 L1 s
在控制系统中,上位机与下位机之间实现通信的方法和应用平台很多。目前,以VB和VC开发的通信软件较多,然而,这类软件虽然功能完善,但是数据采集到计算机后要进行各种处理(例如滤波,系统辨识,曲线拟合等)就显得不方便,编程比较复杂。Matlab具有强大的数据处理能力及功能丰富的工具箱,被广泛的应用于信号处理、自动控制等领域[1]。它编程语言简单易学,利用简单的命令就可以代替复杂的代码,极大地提高了开发效率。7 w B! S5 G, \
) a% p2 o# Y1 Q, ^
本实验基于Matlab环境下设计了一个小型温度检测系统,下位机使用AT89S51单片机和DS18B20完成温度数据采集,上位机在Matlab环境下,调用设备控制箱serial类操作RS-232串口,用串行通信方式交换数据,进而借助Matlab对数据进行分析和处理,得到了温度随时间变化的函数解析式,同时介绍了基于Matlab环境下PC机与单片机串行通信的实时数据处理的实现方法。% i% C6 I& G. G& F% y
7 g+ v" l; x# Q2 系统总体设计8 w5 T8 d; N$ V2 U! v f1 N
% E" U ^$ u: y2 U, _% Z5 k
![]()
+ u9 A, I5 e6 B7 l图1 系统结构图温度检测系统的整体结构如图1所示。PC机串口与单片机USART口通过MAX232电平转换芯片相连,构成一个主从式通信系统。系统工作时,单片机对串口和DS18B20初始化,在读取温度的同时等待中断。PC机通过调用Matlab设备控制工具箱中的serial类及相关函数来创建串口设备对象,并以读写文件的方式实现对PC机串行口的访问,PC机通过Matlab向串行口发送特殊指令从而触发单片机中断系统,单片机调用中断服务例程,读取即使温度并将采集的数据通过串行口回送给PC机。此时,Matlab通过查询的方式,实时接收单片机发送的数据,并完成对数据的分析处理及图形显示。
4 X) t- G8 m; X% T) ?4 q6 y D7 P 5 F7 X o1 n& A5 C/ S0 J/ W
|