辛王毅
【摘 要】温度是与人们生活息息相关的参数,在民用设备中具有空调温控系统,在工业设备中具有电机测温和发动机测温系统,则温度的准确性显得越来越重要.将Proteus软件与LabVIEW虚拟仪器相结合,形成了一套准确的温度测量系统,通过RS-232串口通信,实现了温度的液晶显示与计算机数据管理功能. 【期刊名称】《湖北民族学院学报(自然科学版)》 【年(卷),期】2017(035)004 【总页数】4页(P445-448)
【关键词】虚拟仪器;串口通讯;单片机;Proteus;温度测试 【作 者】辛王毅
【作者单位】上海海事大学 商船学院,上海201306 【正文语种】中 文 【中图分类】TM33
针对传统测温系统显示精度较低、没有数据管理的缺陷,本文将虚拟机与单片机相结合,通过串口通信,实现了温度的液晶显示与计算机同时显示的功能,通过LabVIEW软件中的写入文本文件与读取文本文件功能,实现了温度的定时保存. 虚拟仪器在工业测控中占有重要地位,利用其可外接CAN与RS-232总线的优势,将单片机与虚拟仪器相结合形成一套测控系统,通过DS18B20温度传感器可以实现环境温度显示与电机温度测控功能,本文将从虚拟仪器、单片机开发与综合测试
三部分做重要介绍.
虚拟仪器是一种图形化语言,它将C语言的功能用方框图表示,被成为“G语言”,主要由前面板的人机交互和后面板的程序编写框图组成,前面板主要进行测量值显示、波形图绘制、控件操作等功能;在后面板程序框图中主要进行串口通信建立、数据处理、数据保存等程序编写,通过后面板的程序编写可以实现前面板的功能. 为了实现计算机与单片机通讯需要添加一个虚拟串口,为虚拟串口添加通信参数常量,分别为波特率、数据奇检验、停止位、数据位;为了连续读取单片机的测量温度需要添加一个while循环结构;为了判断当按下关闭按钮时,串口关闭,添加了一个条件判断结构,为了实现虚拟仪器给单片机发送指令添加了一个数据写入函数,为了实现虚拟仪器接受单片机发送回来的温度指令,添加了一个串口读取指令函数,为了以一定周期读取温度,添加了一个可供选择周期的延时函数,最后将通信设置函数的输出端分别与读字节函数输入端、写字节函数输出端、关闭串口的输入端相连,连接好的框图程序如图1所示.
硬件电路中主芯片选用STC系列的STC89C52RC单片机,通过外部P2^7端口与温度传感器相连,通过单片机P1端口引脚控制液晶温度写入操作,液晶显示中时序指令RS、R/W、E分别与单片机的P2^0、P2^1、P2^2相连,串口通信主要通过数据转换芯片完成,单片机的数据接收引脚与串口中的接受引脚相连实现数据的接受功能,单片机的数据输出引脚与串口中的输出引脚相连实现数据的发送功能,制作好的控制芯片如图2所示.
软件编写主要完成了传感器控制、数据发送与1602液晶显示等功能,在测温控制程序中首先主芯片发送启动温度转换指令,传感器接收到主芯片的指令后将温度的低八位与高八位发送给主芯片,然后主芯片通过计算实现真实温度;数据发送是通过数据缓冲区进行的,首先主芯片将换算好的温度值赋给SBUF缓冲区,等待发送,当缓冲区为空时,单片机将换算好的温度值通过串口发送给上位机;1602液晶显示主
要进行了液晶初始化,数据换算与写数据操作,将温度初始化与读取温度程序展示如下:
void Init_ temperature (void) //初始化ds1820 {
unsigned char flag=0; DQ = 1; //DQ复位 Delayns(8); //稍做延时 DQ = 0; //单片机将DQ拉低
Delayns(80); //将数据总线拉低500ns DQ = 1; //拉高总线 Delayns(14);
flag=DQ; //短暂延时过后 如果flag=0单片机与传感器连接正常 flag=1单片机与传感器连接失败 Delayns(20); }
unsigned int Readds18b20(void) //读取温度函数 {
unsigned char a=0; unsigned char b=0; unsigned int c=0; float cc=0; Init_DS18B20();
Write_cmd(0xCC); // 不读取传感器序列号操作 Write_cmd(0x44); // 启动温度转换
Init_DS18B20();
Write_cmd(0xCC); //不读取传感器序列号操作 Write_cmd(0xBE); //读取温度寄存器 a=ReadOChar(); //读低8位 b=ReadOChar(); //读高8位 c=b;clt;lt;=8;c=c|a; cc=c*0.0625;
c= cc*10+0.5; //换算出温度最终结果 return(c); }
通过Kile软件实现了C语言程序编写,通过在线调试,最终生成后缀为.hex的文件,在Proteus软件中通过Component Mode功能将51单片机、DS18B20传感器、液晶显示屏放置于操作区,根据原理图将线路连接好,虚拟仪器与单片机RS-232串口通信需要借助虚拟仪器串口软件,在串口软件中添加成对COM口,波特率的设置为9 600,虚拟仪器串口配置中选择COM1口,在单片机的虚拟串口中选择COM2口,波特率设置为9 600,通过DS18B20传感器设定温度,实现了温度的液晶显示与虚拟仪器的温度测控功能,Proteus与虚拟仪器的测控系统仿真如图3所示. 根据仿真原理,制作了最终的产品,将软件模拟与实际操作相结合,缩短了产品开发周期,测试好的测温系统如图4所示.
基于Proteus与LabVIEW的温度测控系统完成了在线软件模拟与实际测量过程,通过液晶显示被测对象的真实温度,通过串口通讯实现了温度数据的记录与保存功能,通过虚拟仪器的Web发布工具可以实现温度的网络共享功能,通过互联网即可随时观测温度变化.
利用仿真软件对实验进行了提前验证,通过模拟与实物对照的方法,避免了实验过程中遇到的问题,加快了产品开发周期,具有一定的借鉴作用. 【相关文献】
[1] 辛王毅,李宇栋.基于C#与Proteus双轮电机串口通信系统仿真[J].湖北民族学院学报(自然科学版),2017,35(1):59-62.
[2] 郭天祥.新概念51单片机C语言教程[M].北京:电子工业出版社,2009:342-349. [3] 谭浩强.C程序设计[M].北京:清华大学出版社,2010:114-120.
[4] 许维蓥,郑荣焕.Proteus电子电路设计及仿真[M].北京:电子工业出版社,2014. [5] 李毅,余少辉,周步洲.基于DS18B20的测温系统设计[J].电子技术,2009(1):11-13. [6] 叶挺秀,张伯尧.电工电子学[M].北京:高等教育出版社,2008:78-90. [7] 胡翔骏.电路分析[M].北京:高等教育出版社,2016:100-106. [8] 薛青.多功能电子钟的设计与实现[J].黑龙江科技信息,2017(9):95.
[9] 孙培君.基于单片机的温湿度测控系统设计[J].电子技术与软件工程,2016(24):256-257. [10] 张海龙.基于DS18B20的单片机测温系统[J].电子制作,2016(21):25+27. [11] 吴海滨.基于单片机控制的粮仓测温及通风系统设计[J].电子测试,2016(13):28-29.
[12] 李江全.LabVIEW虚拟仪器从入门到测控应用130例[M].北京:电子工业出版社,2013:315-342. [13] 刘小群.一种基于LabVIEW的焊接温度监测系统的设计[J].机电一体化,2016(10):45-47.
因篇幅问题不能全部显示,请点此查看更多更全内容