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

📄 mdiform1.frm

📁 DSO2902示波器源码,半年多才做好的,功能超牛
💻 FRM
📖 第 1 页 / 共 2 页
字号:
    Form2.Label24.ForeColor = Form1.Text17.ForeColor

    Call SETSELECTCHANNEL               '选择模拟输入通道1~4
    Call SETBOARD                       '设置板1和板2,并设置显示通道颜色
    Call setprobe                       '设置通道1~4的探头比
    Call SETDISPLAY                     '设置通道1~4的显示和关闭
    Call DIV_ATTEU
    Call setoffset
    Call setcoupling
    Call SetTrigCh
    Call setlevel
    Call settrigslop
    Call settrigmode
    Call setrate
    Call setzoom
    Call timedivacq
    Call setvoltage(Form1.VScroll2.Value, Form1.Label9)
    Call setvoltage(Form1.VScroll3.Value, Form1.Label10)
    Call setv1_v2
    Call refreshscreen1
    Call DISTANCEA_B
    Call setsize

End Sub

Private Sub MDIForm_Unload(Cancel As Integer)
    Call PowerOff(UIP(0), UCP(0, 0, 0))
    End
End Sub

Private Sub memory128k_Click()
    MemMode = MemLarge
End Sub

Private Sub memory1k_Click()
    MemMode = MemSmall
End Sub

Private Sub memory256k_Click()
    MemMode = MemHuge
End Sub

Private Sub memory8k_Click()
    MemMode = MemMedium
End Sub

Private Sub rate100hz_Click()
    ClkRate = hz100
End Sub

Private Sub rate100khz_Click()
    ClkRate = khz100
End Sub

Private Sub rate100mhz_Click()
    ClkRate = mhz100
End Sub

Private Sub rate10ghz_Click()
    ClkRate = ghz010
End Sub

Private Sub rate10hz_Click()
    ClkRate = hz010
End Sub

Private Sub rate10khz_Click()
    ClkRate = khz010
End Sub

Private Sub rate10mhz_Click()
    ClkRate = mhz010
End Sub

Private Sub rate1ghz_Click()
    ClkRate = ghz001
End Sub

Private Sub rate1hz_Click()
    ClkRate = hz001
End Sub

Private Sub rate1khz_Click()
    ClkRate = khz001
End Sub

Private Sub rate1mhz_Click()
    ClkRate = mhz001
End Sub

Private Sub rate200hz_Click()
    ClkRate = hz200
End Sub

Private Sub rate200khz_Click()
    ClkRate = khz200
End Sub

Private Sub rate200mhz_Click()
    ClkRate = mhz200
End Sub

Private Sub rate20ghz_Click()
    ClkRate = ghz020
End Sub

Private Sub rate20hz_Click()
    ClkRate = hz020
End Sub

Private Sub rate20khz_Click()
    ClkRate = khz020
End Sub

Private Sub rate20mhz_Click()
    ClkRate = mhz020
End Sub

Private Sub rate250mhz_Click()
    ClkRate = mhz250
End Sub

Private Sub rate2ghz_Click()
    ClkRate = ghz002
End Sub

Private Sub rate2hz_Click()
    ClkRate = hz002
End Sub

Private Sub rate2khz_Click()
    ClkRate = khz002
End Sub

Private Sub rate2mhz_Click()
    ClkRate = mhz002
End Sub

Private Sub rate500hz_Click()
    ClkRate = hz500
End Sub

Private Sub rate500khz_Click()
    ClkRate = khz500
End Sub

Private Sub rate500mhz_Click()
    ClkRate = mhz500
End Sub

Private Sub rate50hz_Click()
    ClkRate = hz050
End Sub

Private Sub rate50khz_Click()
    ClkRate = khz050
End Sub

Private Sub rate50mhz_Click()
    ClkRate = mhz050
End Sub

Private Sub rate5ghz_Click()
    ClkRate = ghz005
End Sub

Private Sub rate5hz_Click()
    ClkRate = hz005
End Sub

Private Sub rate5khz_Click()
    ClkRate = khz005
End Sub

Private Sub rate5mhz_Click()
    ClkRate = mhz005
End Sub

Private Sub refreshscreen_Click()
    Call refreshscreen1
End Sub

Private Sub readdefaultini_Click()
Module2.readdefaultini
End Sub

Private Sub readinifile_Click()

Dim strFilename As String

With Dso29.CommonDialog1

.DialogTitle = "选择配置文件"
.DefaultExt = "ini"
.InitDir = App.Path
.Filter = "*.ini"
.ShowOpen

strFilename = .filename

End With

If Len(strFilename) > 0 Then
    If LCase(Right(strFilename, 4)) <> ".ini" Then
        strFilename = strFilename & ".ini"
    End If
    Module2.readini strFilename
End If

End Sub

'保存到Excel
Private Sub savedso_Click()
    Dim strBuff As String
    Dim SavePathstr As String
    Dim Sizetxt As String, Ratetxt As String
    
    SavePathstr = InputBox("输入存储数据路径", "路径", "H:\")
    Sizetxt = Form2.Label6.Caption
    Ratetxt = Form2.Label25.Caption
    Dim t As Integer
    savedsodata 2, SavePathstr, Sizetxt

End Sub

'保存配置到指定文件
Private Sub saveinifile_Click()

Dim strFilename As String

With Dso29.CommonDialog1

.Filter = "*.ini"
.ShowSave

strFilename = .filename

End With

If Len(strFilename) > 0 Then
    If LCase(Right(strFilename, 4)) <> ".ini" Then
        strFilename = strFilename & ".ini"
    End If
    Module2.saveini strFilename
End If

End Sub

Private Sub Timer1_Timer()
    triggerdisflag = 0

    Call refreshscreen1
    Dso29.Timer1.Interval = 0
End Sub

Private Sub Timer2_Timer()

    v1v2disflag = 0
    Call refreshscreen1
    Dso29.Timer2.Interval = 0
End Sub

Private Sub Timer3_Timer()
    autocapturetime = 1

    Dso29.Timer3.Interval = 0
End Sub

Private Sub timingdot_Click()
    timingtype = dot
End Sub

Private Sub timingline_Click()
    timingtype = Line
End Sub

Private Sub timinglinedot_Click()
    timingtype = linedot
End Sub

Private Sub timingpersistence_Click()   '持续跟踪显示
    If Dso29.timingpersistence.Checked = True Then
        Dso29.timingpersistence.Checked = False
        persistance = 0                         '每显示一次清屏一次
    Else
        Dso29.timingpersistence.Checked = True
        persistance = 1                         '每显示一次,不清屏
    End If

End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

    Select Case Button.Key
      Case Is = "go"

        toolbarstop = 0
        number1 = 1

        TrigPos = Form1.HScroll6.Value   '触发位置,红线左边为触发前显示,右边为触发后显示,触发位置任意可变
        Call capture(bufanalog0(0, 0), bufanalog1(0, 0), bufanalog2(0, 0), bufanalog3(0, 0), buflogic0(0, 0), buflogic1(0, 0), ByVal ABufLen, ByVal MemMode, ByVal board_model, UIP(0), UCP(0, 0, 0), s_val(0), ByVal ClkRate, ByVal TrigCh, TrigSlope(0), ByVal TrigWd1A, ByVal TrigWd1B, ByVal TrigWd2A, ByVal TrigWd2B, ByVal TrigWd3A, ByVal TrigWd3B, ByVal TrigWd4A, ByVal TrigWd4B, ByVal v_tshd, ByVal v_tshd2, ByVal v_tshd3, ByVal v_tshd4, cp_val(0), p_attn(0), ByVal TrigPos, VOffDex(0), ByVal ClkSource, Trans(0), AdjAddr(0))
        Do While number1 > 0 And toolbarstop = 0

            toolbarstop = 0
            Button.Value = tbrPressed

            TrigPos = Form1.HScroll6.Value

            paraon = 0
            tt = 2
            Do While tt = 2 And paraon = 0
                tt = GetTrigStat(bufanalog0(0, 0), bufanalog1(0, 0), bufanalog2(0, 0), bufanalog3(0, 0), buflogic0(0, 0), buflogic1(0, 0), ByVal ABufLen, ByVal MemMode, ByVal board_model, UIP(0), UCP(0, 0, 0), s_val(0), ByVal ClkRate, ByVal TrigCh, TrigSlope(0), ByVal TrigWd1A, ByVal TrigWd1B, ByVal TrigWd2A, ByVal TrigWd2B, ByVal TrigWd3A, ByVal TrigWd3B, ByVal TrigWd4A, ByVal TrigWd4B, ByVal v_tshd, ByVal v_tshd2, ByVal v_tshd3, ByVal v_tshd4, cp_val(0), p_attn(0), ByVal TrigPos, VOffDex(0), ByVal ClkSource, Trans(0), AdjAddr(0))
                Form2.CurrentX = 10
                Form2.CurrentY = 4500
                Form2.Label11.Caption = "Filling post_Trigger"
                DoEvents
                ' dummy = doevens
            Loop
            temp0 = Form2.ForeColor
            Form2.ForeColor = Form2.BackColor
            Form2.CurrentX = 10
            Form2.CurrentY = 4500
            Form2.Print "                    ";
            Form2.ForeColor = temp0
            Dso29.Timer3.Interval = 200

            If Form2.HScroll12.Value > 13 Then Dso29.Timer3.Interval = 400
            If Form2.HScroll12.Value > 22 Then Dso29.Timer3.Interval = 800
            autocapturetime = 0
            tt = 3
            Do While tt = 3 And toolbarstop = 0 And paraon = 0

                If (autocapturetime = 1 And Form2.HScroll14.Value = cap_auto) Or (board_model = dso2902_256 And Form2.HScroll9.Value = 4) Or ((board_model = dso2902_128 Or board_model = dso2902_256 Or board_model = dso2902_512) And Form2.HScroll9.Value <> 0 And Form2.HScroll9.Value <> 1) Then
                    Call ForceTrigger(UIP(0), UCP(0, 0, 0))
                End If

                tt = GetTrigStat(bufanalog0(0, 0), bufanalog1(0, 0), bufanalog2(0, 0), bufanalog3(0, 0), buflogic0(0, 0), buflogic1(0, 0), ByVal ABufLen, ByVal MemMode, ByVal board_model, UIP(0), UCP(0, 0, 0), s_val(0), ByVal ClkRate, ByVal TrigCh, TrigSlope(0), ByVal TrigWd1A, ByVal TrigWd1B, ByVal TrigWd2A, ByVal TrigWd2B, ByVal TrigWd3A, ByVal TrigWd3B, ByVal TrigWd4A, ByVal TrigWd4B, ByVal v_tshd, ByVal v_tshd2, ByVal v_tshd3, ByVal v_tshd4, cp_val(0), p_attn(0), ByVal TrigPos, VOffDex(0), ByVal ClkSource, Trans(0), AdjAddr(0))
                Form2.CurrentX = 10
                Form2.CurrentY = 4500
                Form2.Label11.Caption = "等待触发"
                DoEvents

            Loop

            tt = 3
            Do While tt <> 6 And toolbarstop = 0 And paraon = 0
                tt = GetTrigStat(bufanalog0(0, 0), bufanalog1(0, 0), bufanalog2(0, 0), bufanalog3(0, 0), buflogic0(0, 0), buflogic1(0, 0), ByVal ABufLen, ByVal MemMode, ByVal board_model, UIP(0), UCP(0, 0, 0), s_val(0), ByVal ClkRate, ByVal TrigCh, TrigSlope(0), ByVal TrigWd1A, ByVal TrigWd1B, ByVal TrigWd2A, ByVal TrigWd2B, ByVal TrigWd3A, ByVal TrigWd3B, ByVal TrigWd4A, ByVal TrigWd4B, ByVal v_tshd, ByVal v_tshd2, ByVal v_tshd3, ByVal v_tshd4, cp_val(0), p_attn(0), ByVal TrigPos, VOffDex(0), ByVal ClkSource, Trans(0), AdjAddr(0))
                Form2.CurrentX = 10
                Form2.CurrentY = 4500
                Form2.Label11.Caption = "Trigger Filling Buffer"
                DoEvents
                '        Form1.Picture1.Picture = Form1.Picture2.Picture

            Loop
            If toolbarstop = 0 And paraon = 0 Then Call EndCapture(bufanalog0(0, 0), bufanalog1(0, 0), bufanalog2(0, 0), bufanalog3(0, 0), buflogic0(0, 0), buflogic1(0, 0), ByVal ABufLen, ByVal MemMode, ByVal board_model, UIP(0), UCP(0, 0, 0), s_val(0), ByVal ClkRate, ByVal TrigCh, TrigSlope(0), ByVal TrigWd1A, ByVal TrigWd1B, ByVal TrigWd2A, ByVal TrigWd2B, ByVal TrigWd3A, ByVal TrigWd3B, ByVal TrigWd4A, ByVal TrigWd4B, ByVal v_tshd, ByVal v_tshd2, ByVal v_tshd3, ByVal v_tshd4, cp_val(0), p_attn(0), ByVal TrigPos, VOffDex(0), ByVal ClkSource, Trans(0), AdjAddr(0))
            Call capture(bufanalog0(0, 0), bufanalog1(0, 0), bufanalog2(0, 0), bufanalog3(0, 0), buflogic0(0, 0), buflogic1(0, 0), ByVal ABufLen, ByVal MemMode, ByVal board_model, UIP(0), UCP(0, 0, 0), s_val(0), ByVal ClkRate, ByVal TrigCh, TrigSlope(0), ByVal TrigWd1A, ByVal TrigWd1B, ByVal TrigWd2A, ByVal TrigWd2B, ByVal TrigWd3A, ByVal TrigWd3B, ByVal TrigWd4A, ByVal TrigWd4B, ByVal v_tshd, ByVal v_tshd2, ByVal v_tshd3, ByVal v_tshd4, cp_val(0), p_attn(0), ByVal TrigPos, VOffDex(0), ByVal ClkSource, Trans(0), AdjAddr(0))

            Call refreshscreen1
            Form2.Picture1.CurrentX = 0
            Form2.Picture1.CurrentY = 0
            Form2.Picture1.Cls
            Form2.Picture1.Print number1;
            Form2.Label11.Caption = "完成"
            If paraon = 0 Then number1 = number1 + 1
            If Form2.HScroll14.Value = cap_once Then number1 = 0
        Loop
        Button.Visible = False
        Button.Value = tbrUnpressed
        Button.Visible = True
      Case Is = "stop"
        Form2.Label11.Caption = ""
        toolbarstop = 1
    End Select

End Sub

Private Sub viewtoolbar_Click()

    Dso29.viewtoolbar.Checked = Not Dso29.viewtoolbar.Checked
    Dso29.Toolbar1.Visible = Dso29.viewtoolbar.Checked

End Sub

Private Sub windowArrangeIcons_Click()
    Dso29.Arrange vbArangeIcons
End Sub

Private Sub windowCascade_Click()
    Dso29.Arrange Cascade
End Sub

Private Sub windowTileHorizontal_Click()
    Dso29.Arrange vbTileHorizontal
End Sub

Private Sub windowTileVertical_Click()
    Dso29.Arrange vbTileVertical
End Sub

⌨️ 快捷键说明

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