基于Matlab与单片机的动态温度监控系统的设计.doc

基于Matlab与单片机的动态温度监控系统的设计.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于Matlab与单片机的动态温度监控系统的设计

基于Matlab/Simulink 与单片机的动态温度监控系统的设计 Matlab 有着强大的数值处理能力,已应用于工程计算、控制系统设计、数字信号处理 等诸多领域之中。工业控制中,常常需要对温度进行监控,以AT89S52 单片机作为控制器,在Simulink中建立温度监控模型,由DS18B20 检测到的温度数据通过串行通信,发送至上位机实时显示,当温度超出设定警戒值时, 由上位机发出指令信号给AT89S52 单片机, 控制警报动作。实验利用Simulink 平台下Instrument Control Toolbox,控制可行且方便。 0 引言 无论在工业控制中,还是在日常生活中,经常会需要了解某一对象的当前温度、历史温度以及温 度的变化趋势等相关信息,同时还能在温度出现超出警戒的情况下自动报警。所以对其进行监控显得十分重要。考虑到系统尽可能体积小,结构简单,成本低,感器选择方面,在温度测量范围要求不是很高的情况下,常采用DS18B20 芯片,该芯片不需要外接电源,只需要一条通信线,能实现多点测量,简化了分布式温度测量的应用,可编程的分辨率为9~12 位测量温度范围为-55~+125 ℃。MATLAB/Simulink 作为动态建模、仿真及分析的一款重要工具,为工程设计人员提供了大量的帮助, 平台下Instrument Control Toolbox,能很好地支持串行通信,通过该工具箱, 能从Simulink 中发送指令信号给下位机,也能直接从下位机中读取数据信息进行分析和处理。 本文是将Simulink 与单片机结合起来,通过串行通信,进行温度监控。 1 Matlab/Simulink 模型的建立 如图1 所示为Simulink 与AT89S52 单片机组成的动态温度监控系统框图, 采集的温度信号由 DS18B20 经P3.4 口送入AT89S52,报警装置由P1.0口控制。 在Matlab2010b/Simulink 中建立温度监控模型,如图2 所示。该模型利用Instrument Control Toolbox下Query Instrument 来接收从下位机AT89S52 发送过来的温度数据信息,通过scope 得到直观的实时温度曲线,同时对温度数值进行条件判断,当超过所设定的最高警戒值后,通过To Instrument 将编辑的指令信号发送给下位机控制报警器动作,设定警戒温度为50 ℃。 2 动态监控的具体实现 下位机单片机采用C 语言编程,需要设定好串口的波特率, 要与simulnk 中Query Instrument、To Instrument 保持一致。DS18B20 采集到的对象温度数据为float 型, 要通过串口发送给上位机接收,可以通过共用体实现。部分程序如下所示: union //定义共用体 { float f; char u[4];}wendu; void main(void) {char wendu0, wendu1, wendu2, wendu3; union wendu; ………………//其中串口设定、温度采集转换程序 代码略 wendu.f = temp_f; //temp_f 为实际温度,数据类型为 float wendu0 = wendu.u[0];wendu1 = wendu.u[1]; wendu2 = wendu.u[2];wendu3 = wendu.u[3]; Serial_SendChar(wendu0);//调用发送函数 Serial_SendChar(wendu1); Serial_SendChar(wendu2); Serial_SendChar(wendu3); if(RI) //判断接收是否完成 {RI = 0; //接收完毕,RI 由软件清零 P1=SBUF;//将simulik 发送来的指令送P1,控制喇叭 报警 }} Serial_SendChar(char i)//串行发送函数 { SBUF=i; while(! TI); TI = 0; } //发送完毕,TI 由软件清零 将编写好的程序,编译生成.HEX 文件,然后烧 录至AT89S52 单片机中。Simulink 模型中Query Instrument、To Instrument 设定Port 为COM3,Baudrate 为2400b/s,其中Query 选项Data format 为Binary, Precision 为32 -bit float,Byte order 为Little Endian;Send 选项Output 为ASCII 3 实验结果及结论 如图3 所示,图3(a)为0~110 s 实时温度曲线,以及指令信号,图3(b)为55~60 s 的细节显示。通过观察发现,当在57

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档