APP下载

基于单片机的多路温度测量系统的设计

2022-12-01刘鹏娟杨斌

电子制作 2022年20期
关键词:子程序蜂鸣器串口

刘鹏娟,杨斌

(阿坝师范学院,四川汶川,623002)

0 引言

在万物互联智能化科技时代,我国现有温度测量系统的设计仅停留在单路温度检测、单一设备孤立运行阶段,在多路同时监测、多设备终端共同控制与监测方面存在严重不足[1]。该课题基于现有情况、将利用基于单片机最小系统平台,搭载多路温度检测模块、对应路声音、光电报警、温度阈值设置、以及在Labview软件中编程实现对整套系统的实时监测。此次研究利用硬件与软件的实时通讯,打破传统的单一监测、控制,为未来智能化监测、控制方向前进。

1 系统总体设计方案

1.1 方案构建

以STC98C52RC单片机为数据处理和控制主单元,多个DS18B20温度传感器为温度采集,6个按键为人机互动设置按键,若干个LED和1个蜂鸣器为报警装置,NI-VISA为硬件系统与其他设备的桥梁,Labview对上机位编程,其各模块相互配合共同实现对多路温度检测的智能化监测与控制[2~3]。其设计总体图如图1所示。

1.2 方案论证

此方案采用单片机最小系统为平台,单片机上电进行循环扫描[4],利用智能温度传感器BS18B20的单线总线程式工作特点以及按键、报警等模块的相互配合和Keil软件对单片机的编程、Protues的系统仿真、Altium Designer的电路设计共同实现了电路简单、数据精确的多路温度测量。

系统的主要功能设计[5];利用单片机的串口程序和NIVISA软件的配合将接收到的温度数据按照依次传送规则将可用数据向外发送,通过对Labview的软件编程,对接收到的数据进行处理、显示和其他辅助控制等功能设计,最后可实现多路温度测量系统设计硬件与软件的完美配合。

2 系统硬件部分

2.1 硬件设计思路

系统硬件部分设计采用模块化设计,将整个系统分为单片机最小系统、电源指示模块组、按键控制模块组、LCD液晶显示模块组、声光报警模块组、多路(4路、可扩展到无限路)DS18B20温度检测模块、数据串口模块。各个模块正常工作后将其整体整合成一个完整的系统。

2.2 硬件设计成果

单片最小系统为控制、交互中心,可对各个模块进行控制以及对其他软件进行数据交互等功能[6];显示电路由LCD1602液晶显示模块芯片,可进行多行显示实时单片机传回通过程序转化好的温度值和其他系统操作信息;电源指示模块由一个绿色LED发光二极管和USB供电装置构成;复位电路功能为当按下复位按键后,整个系统重新启动;按键电路设为4个按键,可对相应功能进行设置;LCD液晶显示模块可以显示华氏温度和其他系统设置提示信息;声光报警模块由4路对应红色LED发光二极管和一个蜂鸣器组成;4路DS18B20温度检测模组主要由4个DS18B20测温器件构成[7]。

3 软件部分

3.1 系统程序部分

在设计中按照使用先后顺序,先用Protues软件做出设计的仿真程序,在Keil对单片机编写程序生成hex文件,配合仿真达到预期效果后,再在Altium Designer画电路原理图及PCB板。最后在Keil软件中对单片机编写数据依次传送规则串口功能,将数据向外传送、待使用。

本次系统软件设计部分功能大致可分为两个部分:核心部分整体的监测与控制[8],二是完成各种功能的执行。通过系统程序主程序对以下各个子程序进行统一部署、控制。包括温度主程序、读出温度子程序、温度转换子程序、计算温度子程序[9]、显示数据刷新子程序、数据串口程序等。具体主程序设计流程框图如图2所示。

经过对单片机hex文件的编写,和Protues仿真的编写,在Protues仿真如图3所示。

3.2 Labview部分

3.2.1 Labview编程设计思路

Labview软件是由美国NI公司研制开发的一个对测量和控制系统的开发环境,它基于BASIC和C语言之上,利用简单明了的图形来编程,图形化编程是它最大的特点;配合串口功能的使用和美国NI公司开发的基于自底向上结构模型统一数据集I/O控住软件NI-VISA一同使用,通过NI-VISA的配置、打开,对数据的读取,关闭为主线,对DS18B20温度传感器测量数据进行处理。来实现对上位机的编程。

在单片机程序中写入串口功能传出温度数据类型为A=+021.5······格式,再通过NI-VISA串口软件设置好相应COM端口,NI-VISA接收到数据后进行处理,使传入的数据具有规律性,在通过子程序温度计算对接收到的数据进行字符串的匹配、字符串截取等方式获得最后数据为整数,例如数字22,最后通过显示控件将其各路温度数据显示在显示面板上。在子程序温度计算后在设置不同的功能,例如超过温度最高上限和最低下限时布尔灯会亮、蜂鸣器会响等附加功能。设计思路程序框图如图4所示。

3.2.2 温度计算子程序

在温度计算子程序中,由于读取到的数据集格式为“A=+022.6、B=+022.9”格式,在显示面板上我只想显示其温度,如正值温度“+22”或者是“-22”,所以要对读取到的数据进行匹配,如若要显示A路温度,其显示格式为“A=+022.6”,其始终都有一个相同字符“A”,所以在匹配时只需要匹配字符A后就能获取到其温度值,但在字符串中还有“A=”是不需要的,所以要截取其字符,并且截取字符偏移量为2,剩余字符串则是需要的数据为“+22.6”,但是在显示中只想看到数值,在正温度时不想看到“+”,在负温度时要看到“-”,所以又对截取到的字符进行了数值转换,最后显示在面板上。其他路温度计算原理和A路计算原理相似。其设计思路流程框图如图5所示。

在Labview上对其进行编程,程序如图6所示。

3.2.3 Labview辅助程序设计

辅助程序主要由温度设定阈值、布尔报警灯、蜂鸣器和模块显示组成。温度值通过温度计算子程序后,进入显示模块在其前面板显示,同时由温度阈值最高温度上限和最低温度上限进行设定,通过判定范围后,如果为真则布尔报警灯和蜂鸣器不会运行,如果为假(其判定为取非)布尔报警灯和蜂鸣器运行。设计思路流程图如图7所示。

在Labview上对其进行编程,程序如图8所示。

3.2.4 Labview软件设计成果

再对Labview软件其他基础功能、选项卡事件结构、选项卡等的编程完成后,最后对主界面进行编程,其如图9所示。在对NI-VISA端口进行合理设置后,用串口线将其硬件系统与计算机相连接,在Labview主界面上点击运行,得到数据如图10所示。

4 结论

该系统采用STC89C52RC单片机为主控中心,采用测量系统模块化、总线单线程电路设计,和采用串口数据依次传送规则,利用Labview对上机位的编程,实现了电路结构简单,硬件、软件运行可靠,数据精度高,具有很好的可操作性和维护性。打破了传统单设备温度测量的局限,为未来智能化多路温度测量系统打下了坚实基础。

猜你喜欢

子程序蜂鸣器串口
电动自行车产品车速提示音检测现状和整改技术研究(2)
数控加工中数控程序的简化
子程序在数控车编程中的创新应用
掌控板制作简易钢琴
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
本尼丢了蜂鸣器
MCS—51单片机中的多串口通讯技术的应用
丰田凯美瑞240V车间隙警告蜂鸣器异常鸣响
子程序在数控车加工槽中的应用探索