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

📄 mainform.frm

📁 使用VB编写的USB上位机程序
💻 FRM
📖 第 1 页 / 共 2 页
字号:
    order = 0
End Sub
Private Sub Command3_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    order = 3
    GetsSetPara
    Text1.Text = "(Date & Time )" & Text1.Text & Chr(13) & Chr(10) & "Go left! " _
    & Chr(13) & Chr(10) & "******************************" & Chr(13) & Chr(10)
    Open "c:\note.txt" For Append As #1
    Write #1, Text1
    Close #1
    
    pictureini
End Sub
Private Sub Command3_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    order = 0
End Sub
Private Sub Command4_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    order = 4
    GetsSetPara
    Text1.Text = "(Date & Time )" & Text1.Text & Chr(13) & Chr(10) & "Go left! " _
    & Chr(13) & Chr(10) & "******************************" & Chr(13) & Chr(10)
    Open "c:\note.txt" For Append As #1
    Write #1, Text1
    Close #1
    
    pictureini
End Sub
Private Sub Command4_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    order = 0
End Sub
Private Sub Command5_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    order = 5
    GetsSetPara
    Text1.Text = "(Date & Time )" & Text1.Text & Chr(13) & Chr(10) & "Go left! " _
    & Chr(13) & Chr(10) & "******************************" & Chr(13) & Chr(10)
    Open "c:\note.txt" For Append As #1
    Write #1, Text1
    Close #1
    
    pictureini
End Sub
Private Sub Command5_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    order = 0
End Sub

Private Sub Form_Load()
    a = 0
    mCmdNum = 0
    For i = 1 To 50
        Combo1.AddItem (i)
    Next i
    For j = 1 To 255
        Combo2.AddItem (j)
    Next j
    
    For s = 0 To 255
        Combo4.AddItem (s)
    Next s
    Combo5.AddItem ("正脉冲")
    Combo5.AddItem ("负脉冲")
    Combo5.AddItem ("双向脉冲")
    For t = 1 To 255
        Combo6.AddItem (100 * t)
    Next t
    
      '新添控件档位的初始化
    Combo7.AddItem (100)
    Combo7.AddItem (10)
    Combo7.AddItem (1)
End Sub

'关闭窗口时,关闭USB设备并退出程序。
Private Sub Form_Unload(Cancel As Integer)
    SI_Close (hUSBDevice)
    End
End Sub


'定时器检测缓冲区是否准备好数据。
Private Sub Timer1_Timer()
    Dim BytesSucceed As Long
    Dim BytesWriteRequest As Long
    Dim BytesReadRequest As Long

    BytesSucceed = 0
    BytesWriteRequest = IOBufSize - 4
    BytesReadRequest = IOBufSize - 4
    
    'send data to the board
    Status = SI_Write(hUSBDevice, IOBuf(0), BytesWriteRequest, BytesSucceed)
    
    If (BytesSucceed <> BytesWriteRequest) Or (Status <> SI_SUCCESS) Then
        MsgBox "Error writing to USB. Wrote " + Str(BytesSucceed) + " of " + Str(BytesWriteRequest) + _
        " bytes. Application is aborting. Reset hardware and try again."
        End
    End If
    
End Sub
'获得设置参数子函数。
Private Sub GetsSetPara()
    
    If mCmdNum < 255 Then
        mCmdNum = mCmdNum + 1
    Else: mCmdNum = 0
    End If
        
        mWidth = Val(Combo1.Text)
        mLen = Val(Combo2.Text)
        
        '新添赋值程序
         SFmTime = Val(Combo6.Text)
         SFmFreq = Val(Text2.Text)
        
    
    a = Text2.Text
    b = a \ 256
    c = a - b * 256
        mFreqL = c
        mFreqH = b
       
       
        mNum = Val(Combo4.Text)
    If Combo5.Text = "正脉冲" Then
        mPn = 0
    ElseIf Combo5.Text = "负脉冲" Then
        mPn = 1
    Else
        mPn = 2
    End If
    '以毫秒为单位
    mTime = Val(Combo6.Text)
   
    
    d = 1000 / a
    e = (mLen * d + mTime) \ 100
    
    
    IOBuf(1) = order
    IOBuf(2) = mPn
    IOBuf(3) = mLen
    IOBuf(4) = mFreqL
    IOBuf(5) = mFreqH
    IOBuf(6) = mWidth
    IOBuf(7) = e
    IOBuf(8) = mNum
    IOBuf(9) = mCmdNum
   
    
    Text1.Text = "发送参数情况如下:" & Chr(13) & Chr(10) & "正/负脉冲:" & mPn & Chr(13) & Chr(10) & "脉冲长度:" & mLen _
    & Chr(13) & Chr(10) & "频率:" & a & Chr(13) & Chr(10) & "占空比:" & mWidth & Chr(13) & Chr(10) & "脉冲间隔:" _
    & mTime & Chr(13) & Chr(10) & "脉串数:" & mNum
        
End Sub


'新增添程序画图初始化程序

Private Sub Picture1_Paint()

Picture1.Line (105, 75)-(105, 335 * 15)
Picture1.Line (105, 75)-(15, 150)
Picture1.Line (105, 75)-(195, 150)
Picture1.Line (105, 170 * 15)-(480 * 15, 170 * 15)
Picture1.Line (480 * 15, 170 * 15)-(475 * 15, 164 * 15)
Picture1.Line (480 * 15, 170 * 15)-(475 * 15, 176 * 15)
Dim sum2 As Integer
Do While sum2 < 489 * 15
    
    Picture1.Line (105 + sum2, 170 * 15)-(105 + sum2, 166 * 15)
    sum2 = sum2 + 1200
Loop

End Sub

Private Sub Picture2_Paint()

    Picture2.Line (105, 75)-(105, 205 * 15)
    Picture2.Line (105, 75)-(15, 150)
    Picture2.Line (105, 75)-(195, 150)
    Picture2.Line (105, 100 * 15)-(480 * 15, 100 * 15)
    Picture2.Line (480 * 15, 100 * 15)-(475 * 15, 94 * 15)
    Picture2.Line (480 * 15, 100 * 15)-(475 * 15, 106 * 15)
    Dim sum2 As Integer
    Do While sum2 < 489 * 15
    
        Picture2.Line (105 + sum2, 100 * 15)-(105 + sum2, 96 * 15)
        sum2 = sum2 + 1200
    Loop
End Sub

Private Sub pictureini()

    Dim temp As Double
    Picture1.Refresh
    Picture2.Refresh
    i = 0
    sum = 0
    sum1 = 0
    
    temp1 = mLen
    tempNum = mNum

    Dim ratio1, ratio2 As Double '频率的比率和占空比
    mBasewidth = 12000 / Val(Val(Combo7.Text))
    ratio1 = 100 / SFmFreq
    temp = mBasewidth * ratio1
    vHeight = (temp / 100) * mWidth
    vLow = temp / 100 * (100 - mWidth)
    Timer2.Enabled = True
    Timer3.Enabled = True

End Sub

Private Sub Timer2_Timer()


    Dim num1 As Integer '存储脉冲数



Dim PWidth, PHeight As Double
PWidth = Picture1.Width
PHeight = Picture1.Height

If tempNum > 0 Then
    If mLen > 0 Then

        If mPn = 0 Then '仅仅改好了模式0下的程序,发出正脉冲
        
    
            Picture1.Line (sum + 105, 170 * 15)-(vLow + sum + 105, 170 * 15)
                sum = sum + vLow
                If sum + 105 > PWidth Then
                Do While sum + 105 > PWidth
                    sum = sum + 105 - PWidth
                Loop
                    
                    Picture1.Refresh
                    Picture1.Line (105, 170 * 15)-(sum + 105, 170 * 15)
                End If
            Picture1.Line (sum + 105, 170 * 15)-(sum + 105, 85 * 15)
       
       
            Picture1.Line (sum + 105, 85 * 15)-(vHeight + sum + 105, 85 * 15)
                sum = sum + vHeight
                If sum + 105 > PWidth Then
                Do While sum + 105 > PWidth
                    sum = sum + 105 - PWidth
                Loop
                    Picture1.Refresh
                    Picture1.Line (105, 85 * 15)-(sum + 105, 85 * 15)
                End If
            
            Picture1.Line (sum + 105, 85 * 15)-(sum + 105, 170 * 15)
            mLen = mLen - 1
       
    
        ElseIf mPn = 1 Then '发出负脉冲
            Picture1.Line (sum + 105, 170 * 15)-(vLow + sum + 105, 170 * 15)
        
                sum = sum + vLow
                If sum + 105 > PWidth Then
                Do While sum + 105 > PWidth
                    sum = sum + 105 - PWidth
                Loop
                    
                    Picture1.Refresh
                    Picture1.Line (105, 170 * 15)-(sum + 105, 170 * 15)
                End If
            
            Picture1.Line (sum + 105, 170 * 15)-(sum + 105, 255 * 15)
       
            Picture1.Line (sum + 105, 255 * 15)-(vHeight + sum + 105, 255 * 15)
        
                sum = sum + vHeight
                If sum + 105 > PWidth Then
                Do While sum + 105 > PWidth
                    sum = sum + 105 - PWidth
                Loop
                    
                
                    Picture1.Refresh
                    Picture1.Line (105, 255 * 15)-(sum + 105, 255 * 15)
                End If
            
            Picture1.Line (sum + 105, 255 * 15)-(sum + 105, 170 * 15)
            mLen = mLen - 1
     
        ElseIf mPn = 2 Then '发出正负脉冲
            Picture1.Line (sum + 105, 255 * 15)-(vLow + sum + 105, 255 * 15)
        
                sum = sum + vLow
                If sum + 105 > PWidth Then
                Do While sum + 105 > PWidth
                    sum = sum + 105 - PWidth
                Loop
 
                    Picture1.Refresh
                    Picture1.Line (105, 255 * 15)-(sum + 105, 255 * 15)
                End If
            
            Picture1.Line (sum + 105, 255 * 15)-(sum + 105, 85 * 15)
        
            Picture1.Line (sum + 105, 85 * 15)-(vHeight + sum + 105, 85 * 15)
                sum = sum + vHeight
                If sum + 105 > PWidth Then
                Do While sum + 105 > PWidth
                    sum = sum + 105 - PWidth
                Loop
                    
                    Picture1.Refresh
                    Picture1.Line (105, 85 * 15)-(sum + 105, 85 * 15)
                End If
            Picture1.Line (sum + 105, 85 * 15)-(sum + 105, 255 * 15)
            mLen = mLen - 1
    
        End If
    ElseIf mLen = 0 Then
        mLen = temp1
        sum = sum + SFmTime * 1200 / Val(Val(Combo7.Text))
            Do While sum > 489 * 15
                sum = sum - 489 * 15
         
            Loop
            Picture1.Refresh
        If mPn = 0 Then
            Picture1.Line (105, 170 * 15)-(sum + 105, 170 * 15) '正脉冲时的间隔
        ElseIf mPn = 2 Then
            Picture1.Line (105, 255 * 15)-(sum + 105, 255 * 15)  '正负脉冲的间隔
        ElseIf mPn = 1 Then
            Picture1.Line (105, 170 * 15)-(sum + 105, 170 * 15)  '负脉冲的间隔
        End If
    
        tempNum = tempNum - 1
    
   
  
    End If
        
End If
    If tempNum = 0 Then
        Picture1.Refresh
    End If
End Sub

Private Sub Timer3_Timer()
    If mPn = 0 Then
        Picture2.Line (105, 100 * 15)-(vLow + 105, 100 * 15)
 
        Picture2.Line (vLow + 105, 100 * 15)-(vLow + 105, 50 * 15)
       
        Picture2.Line (vLow + 105, 50 * 15)-(vHeight + vLow + 105, 50 * 15)

        Picture2.Line (vHeight + vLow + 105, 50 * 15)-(vHeight + vLow + 105, 100 * 15)
        
    ElseIf mPn = 2 Then
        Picture2.Line (105, 150 * 15)-(vLow + 105, 150 * 15)
      
        Picture2.Line (vLow + 105, 150 * 15)-(vLow + 105, 50 * 15)
        
        Picture2.Line (vLow + 105, 50 * 15)-(vHeight + vLow + 105, 50 * 15)
           
        Picture2.Line (vHeight + vLow + 105, 50 * 15)-(vHeight + vLow + 105, 150 * 15)
        
    ElseIf mPn = 1 Then
        Picture2.Line (105, 100 * 15)-(vLow + 105, 100 * 15)
     
        Picture2.Line (vLow + 105, 100 * 15)-(vLow + 105, 150 * 15)
       
        Picture2.Line (vLow + 105, 150 * 15)-(vHeight + vLow + 105, 150 * 15)
        
        Picture2.Line (vHeight + vLow + 105, 150 * 15)-(vHeight + vLow + 105, 100 * 15)
        
        
    End If
    Timer3.Enabled = False
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -