毕业论文--基于labview的温度检测系统设计内容摘要:

为前面板图 图 420 历史数据显示 图 421 历史数据显示 由计算出的温度数值分为三个分支直接作为温度曲线显示显示为历史数据和通过报警模块作为温度曲线的不过多介绍由温度数值直接作温度的时间轴曲线另外数据先进行精度设置精度为 001 通过数组插入程序来返回采集次数以及移位寄存器来实现历史数据的储存和刷新而最后通过反转一维数组创建数组和二维数组转制三个程序将历史数据的显示由下而上刷新既最新的数据显示在最前面 温度报警模块 图 422 报警模块 温度报警程序由计算得出的温度值与三点温度上下限进行比 较如果小于下限或者大于上线就报警 第 5 章 调试 51 硬件调试 单片机上接上 5V 电源通过串口连接至上位机这时候工作指示灯亮不经过任何加热或者制冷 DS18B20 采集的为当时室温 52 软件调试 调试准备 1 在 VISA 资源名称上找到串口名称如图所示 图 51 串口名称 2 在甲地乙地丙地报警温度设置处输入报警温度上下限 图 52 温度设置 3 按下运行程序 图 53 运行程序 运行结果 1.首先是三点的温度曲线 图 54 温度曲线显示图 由于实验环境为室温所以三点的 Y 轴是由 15 到 35 度 2.如果温度 超过所设的三点的上限或者低于所设的温度的下限温度报警灯就会由绿色变为红色 图 55 三点报警图 3 本系统还能直观的了解到实时的温度数值 图 56 实时温度显示 4 本系统还提供历史数据的观察如图 57 图 57 历史数据显示图 这样能更好的将三点甲地乙地丙地以及各个时间段做对比当然也能找到每个温度准确的时间显示点为了方便观察历史数据的显示方式就由下而上刷新这样更一目了然 5 显示采集次数 图 58 采集次数显示 第 6 章 结束语 经过这半年的调研和编程我对 LabVIEW的兴趣大增它让我感觉到了 G语言的便捷和容易入 手正是凭借这种热爱我才不断对系统添加新的各功能这也是不断探索 LabVIEW 未知一面的过程但是介于所掌握的局限性本系统在功能和精度上和相比仍有一段差距不过我会继续学习相关知识继续完善本系统的功能 致 谢 首先我要感谢我的指导老师张磊老师是你孜孜不倦的教导让我在做毕业设计的道路上披荆斩棘克服种种困难张磊老师兢兢业业的工作态度和谦虚谨慎的处事方式永远是我学习的榜样其次我也要感谢班级里的各位同学完成的毕业设计的道路上少不了你们的指导还要感谢我的爸爸妈妈你们的悉心的问候是天下最大的慰藉最后我要感谢各位老师和学校的各 个领导 参考文献附录 I 源代码 include STC89C52RCh include reg52h includeintrinsh define uchar unsigned char define uint unsigned int void Disp uint disp_value void Bcd uint bcd_value 不声明调用出错 void Delay_ms uint delay bit dsreset bit readbit void uchar readbyte void void Delay uint t void writebit bit i void writebyte uchar dat uint tmp uchar readbyte void void tmpchange void uchar code LED_Val[] 0xC00xF90xA40xb00x990x920x820xf80x800x980xbf 09 最后一个元素是负号 uchar data num[4] uchar data led_point[4] 0xfe0xfd0xfb0xf7 sbit DS P10 define interface 定义 DS18B20 接口 sbit DS1 P11 sbit DS2 P12 uint temptemp1temp2 variable of temperature uchar aba1b1a2b2 uchar uart_r_data uchar uart_s_data[8] uchar receive_data_tmp uchar receive_tmp0receive_tmp1 uchar receive_data_s[8] uint cmd uchar i_jz863 bit uart_flag 1 define START_FLAG 0xef uchar send_data_s1[3] uchar send_data_s2[3] uchar send_data_s3[3] void Delay uint t 15t15 us while t t _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ DS218B20 初始化函数 bit DS2reset2 bit dat DS2 1 数据线置高电平 DS2 0 数据线拉低置 0 Delay 32 为保险起见延时 495us DS2 1 数据线置高电平 1 Delay 4 需要等待 1560us 这里延时 75us 后可以保证接受到的是存在脉冲 dat DS2 读数据线值 DS2 1 数据线置高电平 1 Delay 32 495us return dat 初始化成功返回 1 反之返回 0 读一位 bit readbit2 void read a bit 读一位 bit dat DS2 1 数据线置高电平 DS2 0 数据线拉低置 0 _nop_ _nop_ 总线拉低大于 1us DS2 1 数据线置高电平释放总线 _nop_ _nop_ _nop_ _nop_ dat DS2读时隙产生 7 us后读取总线数据把总 线的读取动作放在 15us时间限制的后面是为了保证数据读取的有效性 Delay 3 延时 60us 满足读时隙的时间长度要求 DS2 1 数据线置高电平释放总线 _nop_ _nop_ 延时周期恢复时间 return dat 返回读取到的数据 读一个字节 uchar readbyte2 void read a byte date 读一个字节 uchar idat for i 0i 8i dat 1 最低位在前 if readbit2 dat 0x80 else dat 0x00 return dat 将一个字节数据返回 写一位 void writebit2 bit i DS2 1 数据线置高电平 DS2 0 数据线拉低置 0 Delay 0 延时 15us 满足读时隙的时间长度要求 DS2 i 写 0 或 1 Delay 3 延时 60us 等待 DS218b20 采样读取 DS2 1 释放总线 _nop_ _n。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。