EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1 前言4 [. I' O; L. U# r. v' @$ o- R
. T6 X4 D7 x3 V+ |. K4 h
温度是表征环境的一个重要的参数。在工程领域,尤其像工程热力学等,温度检测非常普遍,对温度精确测量以便实时控制也显得尤为重要。
( Z4 f& z( {, C- n: p' R. R
7 [+ W) I7 W( p9 p在控制系统中,上位机与下位机之间实现通信的方法和应用平台很多。目前,以VB和VC开发的通信软件较多,然而,这类软件虽然功能完善,但是数据采集到计算机后要进行各种处理(例如滤波,系统辨识,曲线拟合等)就显得不方便,编程比较复杂。Matlab具有强大的数据处理能力及功能丰富的工具箱,被广泛的应用于信号处理、自动控制等领域[1]。它编程语言简单易学,利用简单的命令就可以代替复杂的代码,极大地提高了开发效率。* n: |5 V9 G1 i( I/ Y+ u, i6 ^
" U2 `7 M5 r$ K8 d! o2 Q本实验基于Matlab环境下设计了一个小型温度检测系统,下位机使用AT89S51单片机和DS18B20完成温度数据采集,上位机在Matlab环境下,调用设备控制箱serial类操作RS-232串口,用串行通信方式交换数据,进而借助Matlab对数据进行分析和处理,得到了温度随时间变化的函数解析式,同时介绍了基于Matlab环境下PC机与单片机串行通信的实时数据处理的实现方法。
: b; {( n/ V( h2 H: b( G1 U" _9 z7 m: V
2 系统总体设计" |8 y" M- o" E( a
( S Q3 b7 N/ u9 t
2 ]! [1 B6 k( } n! ]$ I( w2 ]2 _: [
图1 系统结构图温度检测系统的整体结构如图1所示。PC机串口与单片机USART口通过MAX232电平转换芯片相连,构成一个主从式通信系统。系统工作时,单片机对串口和DS18B20初始化,在读取温度的同时等待中断。PC机通过调用Matlab设备控制工具箱中的serial类及相关函数来创建串口设备对象,并以读写文件的方式实现对PC机串行口的访问,PC机通过Matlab向串行口发送特殊指令从而触发单片机中断系统,单片机调用中断服务例程,读取即使温度并将采集的数据通过串行口回送给PC机。此时,Matlab通过查询的方式,实时接收单片机发送的数据,并完成对数据的分析处理及图形显示。
" B `6 W& \$ X m* ]2 {# i- h 1 G) I+ H6 b: v8 u$ t0 C
|