📄 form1.frm
字号:
Left = 3960
TabIndex = 13
Top = 6960
Width = 1215
End
Begin VB.Label Label7
Caption = "30"
Height = 255
Left = 840
TabIndex = 12
Top = 3780
Width = 255
End
Begin VB.Label Label6
Caption = "20"
Height = 255
Left = 840
TabIndex = 11
Top = 4280
Width = 255
End
Begin VB.Label Label5
Caption = "10"
Height = 255
Left = 840
TabIndex = 10
Top = 4780
Width = 255
End
Begin VB.Label Label3
Caption = "温度波形图"
BeginProperty Font
Name = "黑体"
Size = 10.5
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 255
Left = 3360
TabIndex = 8
Top = 0
Width = 1215
End
Begin VB.Label Label2
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 1440
TabIndex = 4
Top = 6960
Width = 1455
End
Begin VB.Label Label1
Caption = "当前温度:"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 240
TabIndex = 3
Top = 6960
Width = 1215
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Public kaishi, js As Integer '全局变量定义
Dim cache(601) As Integer
Dim jishuqi As Integer
Dim cachetem1 As Integer '存储这次的温度值
Dim alarmmax, alarmmin As Double '存储温度报警值
Dim stralarm As String
Public Sub huakedu() '画刻度
Dim xh, yh, ih As Integer
Picture1.Cls
For i = 1 To 20 Step i
Picture1.Line (0, (200 - i * 10) * 50)-(200, (200 - i * 10) * 50), RGB(0, 255, 255)
Next i
Picture1.Line (200, (100 - alarmmax) * 50)-(6300, (100 - alarmmax) * 50), RGB(255, 0, 0)
Picture1.Line (200, (100 - alarmmin) * 50)-(6300, (100 - alarmmin) * 50), RGB(0, 0, 255)
End Sub
Public Sub huatu2300() '画图(接收数据少于600)
Dim i As Integer
For i = jishuqi To 2 Step -1
cache(i) = cache(i - 1)
Next i
cache(1) = cachetem1
Picture1.Cls
Call huakedu
For i = 2 To jishuqi Step 1
If cache(i) / 100 < alarmmin Then
Picture1.Line ((i - 1) * 10 + 200, (5000 - cache(i - 1) / 2))-(i * 10 + 200, (5000 - cache(i) / 2)), RGB(0, 0, 255)
ElseIf cache(i) / 100 > alarmmax Then
Picture1.Line ((i - 1) * 10 + 200, (5000 - cache(i - 1) / 2))-(i * 10 + 200, (5000 - cache(i) / 2)), RGB(255, 40, 0)
ElseIf cache(i) / 100 <= alarmmax And cache(i) / 100 >= alarmmin Then
Picture1.Line ((i - 1) * 10 + 200, (5000 - cache(i - 1) / 2))-(i * 10 + 200, (5000 - cache(i) / 2)), RGB(0, 255, 0)
End If
Next i
End Sub
Public Sub huatu1201() '画图(接收数据大于600个,将最初的数据清除,插入新测的数据)
Dim i As Integer
For i = 600 To 2 Step -1
cache(i) = cache(i - 1) '清除最初的数据
Next i
cache(1) = cachetem1 '插入新数据
Picture1.Cls
Call huakedu
For i = 2 To 600 Step 1
If cache(i) / 100 < alarmmin Then
Picture1.Line ((i - 1) * 10 + 200, (5000 - cache(i - 1) / 2))-(i * 10 + 200, (5000 - cache(i) / 2)), RGB(0, 0, 255)
ElseIf cache(i) / 100 > alarmmax Then
Picture1.Line ((i - 1) * 10 + 200, (5000 - cache(i - 1) / 2))-(i * 10 + 200, (5000 - cache(i) / 2)), RGB(255, 0, 0)
ElseIf cache(i) / 100 <= alarmmax And cache(i) / 100 >= alarmmin Then
Picture1.Line ((i - 1) * 10 + 200, (5000 - cache(i - 1) / 2))-(i * 10 + 200, (5000 - cache(i) / 2)), RGB(0, 255, 0)
End If
Next i
End Sub
Private Sub Command3_Click() '关闭串口
If js = 0 Then
Label2.Caption = ""
Label2.ForeColor = RGB(0, 0, 255)
MSComm1.PortOpen = False
js = 1
kaishi = 0
Picture1.Cls
End If
End Sub
Private Sub Command4_Click() '打开串口,开始测量温度
If kaishi = 0 Then
Label2.ForeColor = RGB(0, 255, 0)
With MSComm1
.OutBufferCount = 0
.InBufferCount = 0
.OutBufferSize = 1
.InBufferSize = 4
.RThreshold = 4
.InputLen = 4
.CommPort = 1
.Settings = "9600,n,8,1"
.PortOpen = True
Call huakedu
End With
kaishi = 1
js = 0
End If
End Sub
Private Sub Commaxtem_Click() '上限值判断
If Texmaxtem = "" Then
MsgBox ("请输入要设定的温度上限值!")
ElseIf IsNumeric(Texmaxtem) = False Then
MsgBox ("请输入合法字符!格式:数字0~9")
ElseIf alarmmin >= Val(Texmaxtem) Then
MsgBox ("上限值不能低于下限值!")
ElseIf Val(Texmaxtem) > 100 Then
MsgBox ("设定温度过高,请重新输入!")
Else
alarmmax = Val(Texmaxtem)
labalarmmax.Caption = alarmmax
Call huakedu
End If
Texmaxtem = ""
End Sub
Private Sub commintem_Click() '下限值判断
If Texmintem = "" Then
MsgBox ("请输入要设定的温度下限值!")
ElseIf IsNumeric(Texmintem) = False Then
MsgBox ("请输入合法字符!格式:数字0~9")
ElseIf alarmmax <= Val(Texmintem) Then
MsgBox ("下限值不能高于上限值!")
ElseIf Val(Texmintem) < -50 Then
MsgBox ("设定温度过低,请重新输入!")
Else
alarmmin = Val(Texmintem)
Labalarmmin.Caption = alarmmin
Call huakedu
End If
Texmintem = ""
End Sub
Private Sub Form_Load() '窗口初始化
jishuqi = 1
Label2.Caption = ""
Label2.ForeColor = RGB(0, 0, 255)
alarmmax = 23
alarmmin = 18
labalarmmax.Caption = alarmmax
Labalarmmin.Caption = alarmmin
End Sub
Private Sub MSComm1_OnComm() '串口接收程序
Dim bytInput As Variant
Dim i As Integer
Select Case MSComm1.CommEvent
Case comEvReceive
bytInput = MSComm1.Input
cachetem1 = Val(bytInput) '温度转换
Label2.Caption = Str(cachetem1 / 100) + "度"
If cachetem1 / 100 > alarmmax Then
stralarm = "o"
MSComm1.Output = "o"
Label4.Caption = "温度过高"
Label4.ForeColor = RGB(255, 0, 0)
Label2.ForeColor = RGB(255, 0, 0)
ElseIf cachetem1 / 100 < alarmmin Then
srtalarm = "o"
MSComm1.Output = "o"
Label4.Caption = "温度过低"
Label4.ForeColor = RGB(0, 0, 255)
Label2.ForeColor = RGB(0, 0, 255)
ElseIf cachetem1 / 100 >= alarmmin And cachetem1 / 100 <= alarmmax Then
stralarm = "p"
MSComm1.Output = stralarm
Label4.Caption = "温度正好"
Label4.ForeColor = RGB(0, 255, 0)
Label2.ForeColor = RGB(0, 255, 0)
End If
If (jishuqi > 1 And jishuqi < 601) Then '未画满一幅时
Call huatu2300
jishuqi = jishuqi + 1
ElseIf jishuqi = 1 Then '画第一笔
cache(jishuqi) = cachetem1
jishuqi = jishuqi + 1
ElseIf jishuqi >= 601 Then '画满一幅时
Call huatu1201
ElseIf jishuqi = 0 Then
jishuqi = jishuqi + 1
End If
End Select
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -