本篇文章主要用于介绍该系统是如何实现的。

程序中含有超多注释,用最直观的大白话解释清楚代码的意思,极利于学习。

首先来看一下界面:

采集的温度可以数值显示,也可绘制成温度曲线。

介绍一下本程序最重要的几部分,也是较难的几部分

一、串口连接部分

可自动识别电脑上的可用端口

和设备管理器中的端口号一一对应而不是单纯的罗列出来,电脑上那个端口可用就显示那个端口。

'函数功能:查询电脑可用的串口号,将其显示在串口选择组合框中
Private Sub Uart_Init()Dim a As Integer
Dim temp As Integer
temp = 0
For a = 1 To 16                                              '循环检查可能存在的16个串口MSComm1.CommPort = aOn Error Resume Next                                   '出现错误时,不会被打断(假如电脑上可用端口为COM1、COM2、COM4,若没有这行代码 当a=3时会报错)MSComm1.PortOpen = True                                '打开串口If MSComm1.PortOpen = True ThenCombo1_select.AddItem ("COM" & a), temp          '将检测可用的端口添加到组合框中temp = temp + 1MSComm1.PortOpen = FalseEnd If
NextEnd Sub

此外串口的相关配置可用直接控件属性中添加不需要用代码程序添加了,(如波特率列表框中的各种波特率)

直接在Combo控件中的 list属性 中输入添加即可,输入一个数据,按一次回车,在输入第二个数据。

二、连接端口子程序(与电脑端口连接)

'连接端口子程序
Private Sub initial_com(com_num As Integer)MSComm1.CommPort = com_num
MSComm1.OutBufferSize = 1024
MSComm1.InBufferSize = 1024            '整个接受缓冲区的大小,1024个字节
MSComm1.InputMode = 0                  '初始化读取数据时格式 0--文本  1--二进制
MSComm1.InputLen = 0                   '当有输入时,告诉控件读取缓冲区中的全部内容
MSComm1.InBufferCount = 0
MSComm1.SThreshold = 1                 '若设置 Sthreshold 属性为 1,当传输缓冲区完全空时,MSComm 控件产生 OnComm 事件。
MSComm1.RThreshold = 1                 '当接收字符后,若 Rthreshold 属性设置为 0(缺省值)则不产生 OnComm
MSComm1.Settings = com_settingMSComm1.PortOpen = TrueEnd Sub

三、串口接收到的温度数据处理


'比较当前采集的温度与最大、最小温度的大小,并判断采集的温度是否超出预先设定的上下限
Private Sub examine_temperature()Dim Buf As String                  '所有的温度数据组成的字符串Dim Pos1 As Integer                '这次采集的数据在总字符串中的位置Buf$ = Buf$ + MSComm1.Input'TimeDelay 1000ValueStr = Val(Mid(Buf, Pos1 + 1, 4))       '分离出正号以后的数值sum_tem = sum_tem + ValueStrIf number_tem = 0 Thenmaxtem = ValueStrmintem = ValueStrElseIf ValueStr > maxtem Thenmaxtem = ValueStrIf ValueStr > set_maxtem Then           '进一步判断是否超过温度上限Timer1.Enabled = FalseShape2.FillColor = RGB(251, 132, 158)Label_sign.Caption = "目前温度已超过上限,温度采集结束"End IfElseIf ValueStr < mintem Thenmintem = ValueStrIf ValueStr < mintem Then                '进一步判断是否低于温度下限Timer1.Enabled = FalseShape3.FillColor = RGB(251, 132, 158)Label_sign.Caption = "目前温度已低于下限,温度采集结束"End IfEnd IfEnd IfEnd Sub

四、根据数据画曲线及相关显示

'下面这段程序是画曲线If NowX = 0 ThenpicVoltage.Cls '清除图形picVoltage.PSet (0, ValueStr)  '设定起点    PSet画图Else'以下判断现在的读值是否大于前一次的读值。若是,则以红色绘线;若否,则以蓝色绘线If ValueStr > PreValue + 0.01 ThenpicVoltage.Line -(NowX, ValueStr), RGB(255, 0, 0) '由上一次的位置画至此点ElsepicVoltage.Line -(NowX, ValueStr), RGB(0, 0, 255) '由上一次的位置画至此点End IfEnd IfPreValue = ValueStr         '上一次读取到的数值NowX = NowX + 1 '位置加1    ’往右进一位If NowX > MaxPlotNo Then NowX = 0  '超过范围则数值归零number_tem = number_tem + 1average_tem = sum_tem / number_tem          '求平均温度If number_tem = Val(Text5.Text) Then        '到达所设定的采集次数Timer1.Enabled = FalseLabel_sign.Caption = "已达到采集次数,温度采集结束"End IfText1_tem.Text = Format(ValueStr, "00.00") & "℃"  'Format(,)将数据按照指定格式输出Text2_maxtem.Text = Format(maxtem, "00.00") & "℃"Text3_avetem.Text = Format(average_tem, "00.00") & "℃"Text4_mintem.Text = Format(mintem, "00.00") & "℃"

开源工程:https://download.csdn.net/download/m0_59113542/77321854?spm=1001.2014.3001.5503​​​​​​​

下面这个也是用vb6.0做的串口助手,与单片机进行交互,和日常所用的串口助手差不多。

完整开源工程:https://download.csdn.net/download/m0_59113542/76680304

欢迎大家提出宝贵的意见。

有机会一起讨论代码,嘿嘿嘿!

vb6.0开发的单片机串口温度采集系统(单片机测温、串口传输、温度曲线显示)相关推荐

  1. 串口调试助手,VB6.0开发

    1.开发的初衷 通常我们都是:在网上直接下载一个串口助手,可执行文件,直接使用,并无法得到其源码,在此我们提供了一个VB6.0开发的串口助手: (1)让你极速掌握串口开发的要点: (2)提供源码,并且 ...

  2. VB6.0开发的计算机串口通讯程序1

    VB6.0开发的计算机串口通讯程序1 下面介绍几个使用VB6.0开发的计算机串口通讯程序,这些程序可以自动发送16进制字符,并接收这些字符.这些程序可以在链接: 链接: https://pan.bai ...

  3. 基于51单片机的温度采集系统的设计四位数码管显示温度

    资源链接:加我QQ:1271370903 一.摘要 随着微机测量和控制技术的迅速发展与广泛应用,以单片机为核心的温度采集系统与控制系统的研发与应用在很大程度上提高了生产生活中对温度的控制水平.本设计论 ...

  4. 52单片机制作打卡考勤+测温一体系统(含后端管理平台)

    52单片机制作打卡考勤+测温一体系统(含后端管理平台) 技术要求 python+flask+tcp基础(管理系统后端代码) angular(管理系统前端代码) C基础(单片机代码,主要涉及:iic,t ...

  5. 基于STM32单片机的K型热电偶测温(Proteus仿真+程序)

    编号:17 基于STM32单片机的K型热电偶测温 功能描述: 本设计由STM32单片机+MAX7765+TCK热电偶+1602液晶显示模块组成. 1.主控制器是STM32单片机 2.TCK热电偶测温通 ...

  6. 【单片机毕业设计】【mcuclub-jk-003】基于单片机的非接触红外测温的设计

    最近设计了一个项目基于单片机的非接触红外测温系统,与大家分享一下: 一.基本介绍 项目名:非接触红外测温 项目编号:mcuclub-jk-003 单片机类型:STC89C52.STM32F103C8T ...

  7. vb6.0开发的上位机串口助手(自动识别电脑端口号、支持文本、十六进制发送)

    VB是可视化的编程,就是把一些图标控件拖到编程板上,然后用代码编写每个按钮的实现功能,(如:按下按钮会发生什么事) vb在零几年的时候非常流行,近年来逐渐淡出人们的视野,但是用其来编写一些简单的上位机 ...

  8. Win10下VB6.0开发之串口通信基础(二)代码功能篇

    MSComm控件串口通信开发 1. MSComm控件的处理流程   MSComm在适当时候引发控件的处理流程主要分为两步: 1)通过事件驱动处理连接端口通信   在收发一个字符或者生一个事件时,不管是 ...

  9. Win10下VB6.0开发之串口通信基础(一)控件属性篇

    前言:VB串口通信的方法一般有两种:一是通过Windows的通信API进行通信:另一种是通过VB的标准控件MSComm来实现.这篇文章要讲的是上位机如何通过VB的串口控件MSComm和下位机进行串口通 ...

  10. Win10下VB6.0开发之错误--无法打开对象窗口和代码窗口

    错误:Win10下使用VB6.0打开一个.vbp文件时,打不开对象窗口和代码窗口 解决办法:找了很久之后才发现,笔者所用笔记本外接了扩展显示屏,在断开外接显示屏连接后,打开VB,再重新外接显示屏即可. ...

最新文章

  1. 清华大作业指导:一人单刷雨课堂需要多少工作量?快手工程师详解如何两周搞定...
  2. linux中的rm 删除命令
  3. session的常用方法。
  4. Python 中名词
  5. 十八、“问余浪子今何在,唯有回头铸梦人”(2021.5.28)
  6. Mysql 的子查询
  7. 把16进制转换为ascii字符c语言,ASCII转16进制C语言
  8. 掌握jsp自定义标签:(四)
  9. 有一个字长32位的浮点数符号位1位_边缘计算专题:(二)别看只有0和1,数学不好的勿进!...
  10. mybatis中使用in查询时的注意事项
  11. git branch看不到分支_最好的Git分支管理教程
  12. linux下udp调试工具,linux tcp udp 调试工具
  13. Titanic(泰坦尼克号数据集)
  14. linux系统支持速达软件吗,速达3000系列常见问题100问
  15. 计算机小写换大写函数,excel小写换大写函数的教程
  16. android studio生成的apk文件无法安装
  17. 专业商标制作,免费logo在线设计
  18. Android 监听短信2种方式:Broadcast和ContentObserver
  19. Python 立体图形的画法(一)
  20. Sqlite3内存数据库

热门文章

  1. MAC配置thinkPHP的心路历程(课设vue-tpadmin商城)
  2. 【完结】囚生CYの备忘录(20220906-20221120)
  3. 2021年web前端开发视频教程零基础自学HTML/VUE/JS全栈项目实战全套课程
  4. 计算机辅助翻译入门第十章课后答案,计算机辅助翻译简明教程
  5. AltiumDesigner14.3.X下载安装破解教程
  6. 用python画科赫雪花
  7. 二十款免费WiFi渗透工具
  8. 微盟致远OA聚水潭YonSuite系统对接集成整体解决方案
  9. 草图大师:SketchUp 2019 for Mac
  10. 手把手教你修改iOS版QQ的运动步数