📄 form1.frm
字号:
dataI(i) = dataI(i) * 5 / 255 * 10 '扩大10倍还原电流值
Next i
Timer1.Interval = 200
Timer1.Enabled = True
Cndks.Enabled = False
Cndzt.Enabled = True
Cndtz.Enabled = True
Cndtc.Enabled = True
Cnddk.Enabled = False
ErrorHandler:
Exit Sub
End Sub
Private Sub Cndks_Click()
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
MSComm1.OutBufferCount = 0
MSComm1.InBufferCount = 0
Ix = 0
countdata = 0
countU = 0
countI = 0
countpicU = 0
countpicI = 0
Picture1.Cls
Call XoY
MSComm1.Output = "C"
Cndks.Enabled = False
Cndzt.Enabled = False
Cndtz.Enabled = True
Cndtc.Enabled = True
Cnddk.Enabled = False
End Sub
Private Sub Cndtc_Click()
If MSComm1.PortOpen Then
MSComm1.PortOpen = False
End If
End
End Sub
Private Sub Cndtz_Click()
Timer1.Enabled = False
If MSComm1.PortOpen Then
MSComm1.Output = "T"
MSComm1.PortOpen = False
End If
Picture1.Cls
Call XoY
Ix = 0
Text1.Text = ""
Text2.Text = ""
Cndks.Enabled = True
Cndzt.Enabled = False
Cndtz.Enabled = False
Cndtc.Enabled = True
Cnddk.Enabled = True
End Sub
Private Sub Cndzt_Click()
If Cndzt.Caption = "暂 停" Then
Timer1.Enabled = False
Cndzt.Caption = "继 续"
Else
Timer1.Enabled = True
Cndzt.Caption = "暂 停"
End If
Cndks.Enabled = False
Cndzt.Enabled = True
Cndtz.Enabled = True
Cndtc.Enabled = True
Cnddk.Enabled = False
End Sub
Private Sub Form_Load()
'Timer2.Interval = 1
'Timer2.Enabled = True
Timer1.Enabled = False
MSComm1.CommPort = 2
MSComm1.Settings = "9600,n,8,1"
MSComm1.InputMode = 1
MSComm1.RThreshold = 1
MSComm1.InputLen = 0
MSComm1.InBufferSize = 1024
countdata = 0
countU = 0
countI = 0
countpicU = 0
countpicI = 0
Ix = 0
Call XoY
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
Cndks.Enabled = True
Cndzt.Enabled = False
Cndtz.Enabled = False
Cndtc.Enabled = True
Cnddk.Enabled = True
End Sub
Sub XoY()
With Form1
.Picture1.Scale (-100, 1300)-(2100, -100)
.Picture1.DrawStyle = 0
.Picture1.DrawWidth = 1
.Picture1.FontSize = 10
.Picture1.Line (0, 0)-(2050, 0) '建立xoy
.Picture1.Line (0, 0)-(0, 1250)
.Picture1.Line (2050, 0)-(2020, 20)
.Picture1.Line (2050, 0)-(2020, -20)
.Picture1.Line (0, 1250)-(20, 1220)
.Picture1.Line (0, 1250)-(-20, 1220)
.Picture1.FontSize = 16 '标写t
.Picture1.CurrentX = 2070
.Picture1.CurrentY = -10
.Picture1.Print "t"
.Picture1.FontSize = 10
.Picture1.DrawStyle = 2
End With
For i = 100 To 2000 Step 100 'x轴坐标
With Form1
.Picture1.Line (i, 0)-(i, 1250) '画网格
.Picture1.CurrentX = i
.Picture1.CurrentY = 0
.Picture1.Print i / 100
End With
Next i
For i = 0 To 1200 Step 120 'y轴坐标
With Form1
.Picture1.Line (0, i)-(2000, i) '画网格
.Picture1.CurrentX = -100
.Picture1.CurrentY = i
.Picture1.Print i / 6
.Picture1.CurrentX = 0
.Picture1.CurrentY = i
.Picture1.Print i / 24
.Picture1.CurrentX = -70
.Picture1.CurrentY = 1280
.Picture1.Print "U"
.Picture1.CurrentX = 50
.Picture1.CurrentY = 1280
.Picture1.Print "I"
End With
Next i
Form1.Picture1.DrawStyle = 0
Form1.Picture1.DrawWidth = 2
End Sub
Private Sub MSComm1_OnComm()
Dim inbyte() As Byte
Select Case MSComm1.CommEvent
Case 2
Open Format$(Now, "yyyymmddhh") & ".txt" For Append As #1 '打开文件进行读写
inbyte() = MSComm1.Input
ReDim Preserve data(countdata)
data(countdata) = inbyte(0)
Print #1, inbyte(0)
countdata = countdata + 1
Close #1
If (UBound(data) Mod 2) = 0 Then '画电流曲线
ReDim Preserve dataI(countI)
dataI(countI) = data(UBound(data)) * 5 / 255 * 10
YI = dataI(countI) * 24
If countpicI > 2000 / divX Then '一屏画满后,清零
Picture1.Cls
Call XoY
countpicI = 0
Ix = 0
Picture1.PSet (0, YI), vbGreen
Text2.Text = YI / 24
ElseIf countpicI = 0 Then
Picture1.PSet (0, YI), vbGreen
Text2.Text = YI / 24
Else
Ix = countpicI * divX
Picture1.Line (Ix - divX, Ifar)-(Ix, YI), vbGreen
Text2.Text = YI / 24
End If
Ifar = YI
countpicI = countpicI + 1
countI = countI + 1
Else
ReDim Preserve dataU(countU) '画电压曲线
dataU(countU) = data(UBound(data)) * 5 / 255 * 40
YU = dataU(countU) * 6
If countpicU > 2000 / divX Then '一屏画满后,清零
Picture1.Cls
Call XoY
countpicU = 0
Ix = 0
Picture1.PSet (0, YU), vbBlue
Text1.Text = YU / 6
ElseIf countpicU = 0 Then
Picture1.PSet (0, YU), vbBlue
Text1.Text = YU / 6
Else
Ix = countpicU * divX
Picture1.Line (Ix - divX, Ufar)-(Ix, YU), vbBlue
Text1.Text = YU / 6
End If
Ufar = YU
countpicU = countpicU + 1
countU = countU + 1
End If
End Select
End Sub
Private Sub Timer1_Timer()
Timer1.Enabled = False
YI = dataI(C) * 24
YU = dataU(C) * 6
If countpicU > 2000 / divX Then '一屏画满后,清零
Picture1.Cls
Call XoY
countpicU = 0
Ix = 0
Text2.Text = YI / 24
Text1.Text = YU / 6
Picture1.PSet (0, YI), vbGreen
Picture1.PSet (0, YU), vbBlue
ElseIf countpicU = 0 Then
Text2.Text = YI / 24
Text1.Text = YU / 6
Picture1.PSet (0, YI), vbGreen
Picture1.PSet (0, YU), vbBlue
Else
Ix = countpicU * divX
Text2.Text = YI / 24
Text1.Text = YU / 6
Picture1.Line (Ix - divX, Ifar)-(Ix, YI), vbGreen
Picture1.Line (Ix - divX, Ufar)-(Ix, YU), vbBlue
End If
Ifar = YI
Ufar = YU
countpicU = countpicU + 1
C = C + 1
If C > UBound(dataU) Then
C = 0
countpicU = 0
Timer1.Enabled = False
Else
Timer1.Enabled = True
End If
End Sub
Private Sub Timer2_Timer()
Label4.Caption = Format(Now)
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -