⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.frm

📁 51作处理器
💻 FRM
📖 第 1 页 / 共 2 页
字号:
        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 + -