陈维 尚玉廷
摘要:该文介绍了一种基于AT89S52单片机与PC机串口通信的温湿度控制系统,用单片机作下位机完成温湿度数据的采集和执行PC机发出的控制执行命令;把PC机当成上位机用来收取单片机传出的数据,立即处理好这些数据,传出控制指令给单片机,LCD1602同步显示温湿度值的变化情况。本设计充分利用PC机组态王V6.55软件强大的数据处理功能和友好的人机界面,对温度进行实时显示。
关键词:AT89S52单片机;组态王;串行通信; DHT21;数据采集以及处理
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)36-8799-03
1 课题的研究目的和意义
温、湿度是人们日常生活中接触最多的两个物理量,人们的日常生活和人们活动的周围环境的温湿度息息相关,在一些特殊场地温湿度时常变化很大,并且不容易人工实时的检测,用户也不知道何时是适合人类进入,如果运用温、湿度检测与控制技术,可以避免不必要的损失,温、湿度检测与控制技术被广泛应用于人们的日常生产和生活当中,传感器无疑是测量与控制系统中重要的组成部分[1]。但是伴随传感器而来的是大量的数据线缆。对于不常用的传感器,很难搭接线缆。为此,创造一种简便的无线通信技术,用来解决线缆搭接过于复杂的问题,必须尽早实现。随着现代科技的发展,数字设备逐渐变成测控系统中的重点。本课题将传感器技术和无线通信技术相结合,单片机与上位机软件经过串口通信,实时监测温湿度值得变化,争取用无线系统来解决线缆带来的负面问题
2 系统总体设计
本章介绍了这次设计需要完成的几个重要任务,对需要完成的内容进行了解分析,并一起介绍了一些的重要元器件。
2.1设计过程及其工艺要求设计
一个以单片机和上位机软件组态王为核心的温湿度控制系统,需要实现的功能为:
①能够准确的显示当前的温度以及湿度。温度检测的范围0℃-60℃,测温精度:±2℃;湿度检测范围20%-100%RH, 测湿精度:±5%RH。
②下位机系统的显示方式均为四位显示,采用LCD显示。
③传感器采集温湿度,然后通过电脑进行显示,并做数据处理。
2.2设计总体方案
本设计要实现的功能是:单片机进行控制,LCD1602实时显示当前环境的温湿度,单片机与上位机之间通过MAX232串口进行通信,用组态王V6.55对测试点温湿度采集,实时显示,数据处理。
1) 温度监控:对温室温度进行测量和控制并反映在显示器上。
2) 显示:LCD1602随时显示采集到的温湿度数据值。组态王V6.55同步显示温湿度值。
3) 湿度监控:对温室湿度进行测量和控制反映在显示器上。
按照之前设置好的功能,有四个重要的模块:
1) 组态王V6.55显示模块
2) 下位机显示模块
3) 数据处理模块
4) 温湿度采集模块
根据系统必备的功能需求,本系统的原理图如图1所示:
图1 温湿度监控系统原理图
主要的控制器就是单片机,它的主要任务是处理传感器传送过来的数据,然后将数据传到显示器模块,传感器主要用来收集参数,然后把所收集到的数据传到单片机,按键电路可以实现复位。组态王V6.5主要用来在上位机上实时显示当前采集到的温湿度[2]。
3 软件设计
3.1单片机系统流程图
根据温湿度监控系统功能,单片机软件设计如图2所示。
3.2上位机软件设计
3.2.1新建工程
在Windows操作系统的“开始”菜单中,执行“程序”à“组态王6.55”à“组态王6.55”命令,打开“组态王工程管理器”窗口, 双击这个信息条或单击“开发”按键或选,打开“工程浏览器”,进入组态王的开发系统,如图3所示。
图3 工程浏览器
3.2.2设计画面
第1步:如图4所示。
图4 “新画面”对话框
图5 组态王画面开发系统
第2步:在“画面名称”处输入新的画面名称,其它属性目前不用更改。点击“确定”按钮进入内嵌的组态王画面开发系统,如图5所示。
第3步:组态如图6所示的画面。
第4步:选择“文件/全部存”命令保存现有画面。
3.2.3 定义IO设备
第1步:如图7所示。
图7 “设备配置向导”对话框
图8 “设备配置向导”对话框
第2步:单击“下一步”,为外部设备取一个名称:“MCU”,如图8示。
第3步:单击“下一步”,为设备选择连接串口,假设为COM2,如图9所示。
图9 “设备配置向导”对话框
图10 “设备配置向导”对话框
第4步:单击“下一步”,填写设备地址为15.0,如图10所示。
第5步:如图11所示。
图11 “设备配置向导”对话框
图12 “设备配置向导”对话框
第6步:单击“下一步”,检查各项设置是否正确,如图12所示。确认无误后,单击“完成”。
3.2.4构造数据库
数据库是组态王的最重要部分,生产现场的状况是以动画的方式显示在屏幕上,用户用电脑发出的指令也要立即传到工业现场,这些都依靠实时数据库当作中介部分,变量在组态王画面开发系统中被定义,同时要指定变量类型和变量名称,一些特殊类型的变量还要附加一些信息,我们把数据库中变量的集合叫做“数据词典”,它保存了所有用户需要用到的变量的全部信息。
第1步:如图13所示。
图13 “定义变量”对话框
第2步:在“变量名”处输入变量名,如“采集值”。
按照上述方法继续定义两个内存变量,变量名为“湿度值”,“温度值”,变量类型为内存实数,在“连接设备”中选出先前早已定义好的IO设备“MCU”,在“寄存器”中定义为X100,在“数据类型”中定义为USHORT类型,单击“确定”即可。
同样的方法继续定义四个内存离散量,变量名为“湿度上限值”, “湿度下限值”, “温度上限值”, “温度下限值”,变量类型为内存离散,初始值为“关”,点击“确定”。
3.2.5组建动画连接
第1步:如图14所示。
图14 弹出菜单
图15 填充连接”对话框
第2步:单击“模拟量输出”按钮,在“表达式”处输入“湿度值”, “输出格式”处整数位数为“2”,小数位数为“0”,“显示格式”为“十进制”,如图15所示。
第3步:点击“确定”按键,返回到“动画连接”对话框,点击“确定”按键,回到组态王开发系统。
同样的方法对其它画面对象建立动画连接。
第4步:选择“文件\全部存”菜单命令,保存设置。
第5步:如图16所示。单击“确认”按钮,完成程序编写。
图16 “应用程序命令语言”对
参考文献:
[1] 赵继文.传感器与应用电路设计[M].科学出版社,2002.
[2] 高晓蓉.传感器技术[M].西安交通大学出版社,2003.
[3] 潘永雄.电子线路CAD实用教程[M].西安电子科技大学出版社,2004.
[4] 施保华.计算机控制技术[M].华中科技大学出版社,2007.
[5] 李长林.Visual Basic串口通讯与典型实例[M].清华大学出版社,2006.
[6] 周建新,马潮,耿德振.AVR单片机BASIC语言编程开发[M].清华大学出版社,2005.
第2步:单击“下一步”,为外部设备取一个名称:“MCU”,如图8示。
第3步:单击“下一步”,为设备选择连接串口,假设为COM2,如图9所示。
图9 “设备配置向导”对话框
图10 “设备配置向导”对话框
第4步:单击“下一步”,填写设备地址为15.0,如图10所示。
第5步:如图11所示。
图11 “设备配置向导”对话框
图12 “设备配置向导”对话框
第6步:单击“下一步”,检查各项设置是否正确,如图12所示。确认无误后,单击“完成”。
3.2.4构造数据库
数据库是组态王的最重要部分,生产现场的状况是以动画的方式显示在屏幕上,用户用电脑发出的指令也要立即传到工业现场,这些都依靠实时数据库当作中介部分,变量在组态王画面开发系统中被定义,同时要指定变量类型和变量名称,一些特殊类型的变量还要附加一些信息,我们把数据库中变量的集合叫做“数据词典”,它保存了所有用户需要用到的变量的全部信息。
第1步:如图13所示。
图13 “定义变量”对话框
第2步:在“变量名”处输入变量名,如“采集值”。
按照上述方法继续定义两个内存变量,变量名为“湿度值”,“温度值”,变量类型为内存实数,在“连接设备”中选出先前早已定义好的IO设备“MCU”,在“寄存器”中定义为X100,在“数据类型”中定义为USHORT类型,单击“确定”即可。
同样的方法继续定义四个内存离散量,变量名为“湿度上限值”, “湿度下限值”, “温度上限值”, “温度下限值”,变量类型为内存离散,初始值为“关”,点击“确定”。
3.2.5组建动画连接
第1步:如图14所示。
图14 弹出菜单
图15 填充连接”对话框
第2步:单击“模拟量输出”按钮,在“表达式”处输入“湿度值”, “输出格式”处整数位数为“2”,小数位数为“0”,“显示格式”为“十进制”,如图15所示。
第3步:点击“确定”按键,返回到“动画连接”对话框,点击“确定”按键,回到组态王开发系统。
同样的方法对其它画面对象建立动画连接。
第4步:选择“文件\全部存”菜单命令,保存设置。
第5步:如图16所示。单击“确认”按钮,完成程序编写。
图16 “应用程序命令语言”对
参考文献:
[1] 赵继文.传感器与应用电路设计[M].科学出版社,2002.
[2] 高晓蓉.传感器技术[M].西安交通大学出版社,2003.
[3] 潘永雄.电子线路CAD实用教程[M].西安电子科技大学出版社,2004.
[4] 施保华.计算机控制技术[M].华中科技大学出版社,2007.
[5] 李长林.Visual Basic串口通讯与典型实例[M].清华大学出版社,2006.
[6] 周建新,马潮,耿德振.AVR单片机BASIC语言编程开发[M].清华大学出版社,2005.
第2步:单击“下一步”,为外部设备取一个名称:“MCU”,如图8示。
第3步:单击“下一步”,为设备选择连接串口,假设为COM2,如图9所示。
图9 “设备配置向导”对话框
图10 “设备配置向导”对话框
第4步:单击“下一步”,填写设备地址为15.0,如图10所示。
第5步:如图11所示。
图11 “设备配置向导”对话框
图12 “设备配置向导”对话框
第6步:单击“下一步”,检查各项设置是否正确,如图12所示。确认无误后,单击“完成”。
3.2.4构造数据库
数据库是组态王的最重要部分,生产现场的状况是以动画的方式显示在屏幕上,用户用电脑发出的指令也要立即传到工业现场,这些都依靠实时数据库当作中介部分,变量在组态王画面开发系统中被定义,同时要指定变量类型和变量名称,一些特殊类型的变量还要附加一些信息,我们把数据库中变量的集合叫做“数据词典”,它保存了所有用户需要用到的变量的全部信息。
第1步:如图13所示。
图13 “定义变量”对话框
第2步:在“变量名”处输入变量名,如“采集值”。
按照上述方法继续定义两个内存变量,变量名为“湿度值”,“温度值”,变量类型为内存实数,在“连接设备”中选出先前早已定义好的IO设备“MCU”,在“寄存器”中定义为X100,在“数据类型”中定义为USHORT类型,单击“确定”即可。
同样的方法继续定义四个内存离散量,变量名为“湿度上限值”, “湿度下限值”, “温度上限值”, “温度下限值”,变量类型为内存离散,初始值为“关”,点击“确定”。
3.2.5组建动画连接
第1步:如图14所示。
图14 弹出菜单
图15 填充连接”对话框
第2步:单击“模拟量输出”按钮,在“表达式”处输入“湿度值”, “输出格式”处整数位数为“2”,小数位数为“0”,“显示格式”为“十进制”,如图15所示。
第3步:点击“确定”按键,返回到“动画连接”对话框,点击“确定”按键,回到组态王开发系统。
同样的方法对其它画面对象建立动画连接。
第4步:选择“文件\全部存”菜单命令,保存设置。
第5步:如图16所示。单击“确认”按钮,完成程序编写。
图16 “应用程序命令语言”对
参考文献:
[1] 赵继文.传感器与应用电路设计[M].科学出版社,2002.
[2] 高晓蓉.传感器技术[M].西安交通大学出版社,2003.
[3] 潘永雄.电子线路CAD实用教程[M].西安电子科技大学出版社,2004.
[4] 施保华.计算机控制技术[M].华中科技大学出版社,2007.
[5] 李长林.Visual Basic串口通讯与典型实例[M].清华大学出版社,2006.
[6] 周建新,马潮,耿德振.AVR单片机BASIC语言编程开发[M].清华大学出版社,2005.