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

📄 module1.bas

📁 DSO2902示波器源码,半年多才做好的,功能超牛
💻 BAS
📖 第 1 页 / 共 3 页
字号:
            Form2.Label3.Caption = "On"
        End If

      Case board2
        If Trans(2) = 0 Then
            Form2.Label7.Caption = "Off"
        Else
            Form2.Label7.Caption = "On"
        End If

        If Trans(3) = 0 Then
            Form2.Label3.Caption = "Off"
        Else
            Form2.Label3.Caption = "On"
        End If
    End Select

End Sub

Sub setprobe()
    p_attn(selectchannel) = Form2.HScroll16.Value
    Select Case Form2.HScroll1.Value
      Case board1
        temp0 = p_attn(0)
        temp1 = p_attn(1)
        Call PROBEDISPLAY
      Case board2
        temp0 = p_attn(2)
        temp1 = p_attn(3)
        Call PROBEDISPLAY
    End Select

    Call DIV_ATTEU
    Call setoffset
    Call setlevel
End Sub

Sub SetTrigCh()
    Select Case Form2.HScroll9.Value
      Case aCH0
        Form2.HScroll10.Value = TrigWd1A
      Case aCH1
        Form2.HScroll10.Value = TrigWd2A
      Case aCH2
        Form2.HScroll10.Value = TrigWd3A
      Case aCH3
        Form2.HScroll10.Value = TrigWd4A
    End Select
    TrigCh = chlogic
    Form2.Label20.Caption = "逻辑"
    Select Case Form2.HScroll9.Value
      Case aCH0
        TrigCh = aCH0
        Form2.Label20.Caption = "A1"
        Call setlevel
      Case aCH1
        TrigCh = aCH1
        Form2.Label20.Caption = "A2"
        Call setlevel
      Case (aCH2 And board_model = dso2904_256)
        TrigCh = aCH2
        Form2.Label20.Caption = "A3"
        Call setlevel
      Case (aCH3 And board_model = dso2904_256)
        TrigCh = aCH3
        Form2.Label20.Caption = "A4"
        Call setlevel

    End Select

End Sub
Sub setlevel()
    temp0 = Form2.HScroll10.Value + (VOffDex(Form2.HScroll9.Value) - 128)
    Select Case Form2.HScroll9.Value
      Case aCH0
        If temp0 < 254 And temp0 > 2 Then TrigWd1A = temp0

      Case aCH1
        If temp0 < 254 And temp0 > 2 Then TrigWd2A = temp0

      Case aCH2
        If temp0 < 254 And temp0 > 2 Then TrigWd3A = temp0

      Case aCH3
        If temp0 < 254 And temp0 > 2 Then TrigWd4A = temp0

    End Select
    Call chpixelvoltage(TrigCh)

    constant1 = 1000
    '    VOffDex(TrigCh) = Form2.HScroll10.Value
    If Form2.HScroll10.Value > 128 Then
        offsetvoltage = (pixelvoltage * (Form2.HScroll10.Value - 128)) / constant1
        Select Case offsetvoltage
          Case Is < 999.9
            Form2.Label21.Caption = "-0" + Format$(offsetvoltage, "###.##") + "mV"
          Case Is < 999.9 * 1000
            Form2.Label21.Caption = "-0" + Format$(offsetvoltage / constant1, "###.##") + "V"
          Case Is < 999.9 * 1000 * 1000
            Form2.Label21.Caption = "-0" + Format$(offsetvoltage / (constant1 * 1000), "#####.##") + "V"
          Case Is < 999.9 * 1000 * 1000 * 1000
            Form2.Label21.Caption = "-0" + Format$(offsetvoltage / (constant1 * 1000 * 1000), "#####.##") + "000V"

        End Select

    Else
        offsetvoltage = (pixelvoltage * (128 - Form2.HScroll10.Value)) / 1000
        Select Case offsetvoltage
          Case Is < 999.9
            Form2.Label21.Caption = "0" + Format$(offsetvoltage, "###.##") + "mV"
          Case Is < 999.9 * 1000
            Form2.Label21.Caption = "0" + Format$(offsetvoltage / constant1, "#####.##") + "V"
          Case Is < 999.9 * 1000 * 1000
            Form2.Label21.Caption = "0" + Format$(offsetvoltage / (constant1 * 1000), "#####.##") + "V"
          Case Is < 999.9 * 1000 * 1000 * 1000
            Form2.Label21.Caption = "0" + Format$(offsetvoltage / (constant1 * 1000 * 1000), "#####.##") + "000V"
        End Select

    End If

End Sub
Sub settrigslop()
    Select Case Form2.HScroll11.Value
      Case POSITIVE
        Form2.Label22.Caption = "正沿"
        TrigSlope(TrigCh) = POSITIVE
      Case NEGATIVE
        Form2.Label22.Caption = "负沿"
        TrigSlope(TrigCh) = NEGATIVE
    End Select

End Sub

Public Sub settrigmode()
    Select Case Form2.HScroll14.Value
      Case cap_once
        Form2.Label24.Caption = "单一"
      Case cap_repeat
        Form2.Label24.Caption = "正常"
      Case cap_auto
        Form2.Label24.Caption = "自动"
    End Select

End Sub

Public Sub setrate()
    ' If Form2.HScroll12.Value = mhz400 Then Form2.HScroll12.Value = mhz500
    tt = Form2.HScroll12.Value
    If Form2.HScroll12.Value >= mhz250 - 3 Then
        ClkRate = Form2.HScroll12.Value + 3
        tt = tt + 3

    End If
    Select Case tt
      Case ghz020
        Form2.Label25.Caption = "20GSa(50ps)"
        timeperiod = 50
        ClkRate = ghz020
      Case ghz010
        Form2.Label25.Caption = "10GSa(100ps)"
        timeperiod = 100
        ClkRate = ghz010
      Case ghz005
        Form2.Label25.Caption = "5GSa(200ps)"
        timeperiod = 250
        ClkRate = ghz005
        '   Case ghz004
        '           Form2.Label25.Caption = "4GSa(250ps)"
        '        timeperiod = 200

      Case 3
        Form2.Label25.Caption = "2GSa(500ps)"
        timeperiod = 500
        ClkRate = 4
      Case 4
        Form2.Label25.Caption = "1GSa(1ns)"
        timeperiod = 1000
        ClkRate = 5
        '   Case mhz800
        '   Form2.Label25.Caption = "800MSa(1.25ns)"
        '       timeperiod = 1250
      Case 5
        Form2.Label25.Caption = "500MSa(2ns)"
        timeperiod = 2000
        ClkRate = 7
        '   Case mhz400
        '          Form2.Label25.Caption = "400MSa(2ns)"
        '       timeperiod = 2500
      Case mhz250
        Form2.Label25.Caption = "250MSa(4ns)"
        timeperiod = 4000

      Case mhz200
        Form2.Label25.Caption = "200MSa(5ns)"
        timeperiod = 5000
      Case mhz100
        Form2.Label25.Caption = "100MSa(10ns)"
        timeperiod = 10000
      Case mhz050
        Form2.Label25.Caption = "50MSa(20ns)"
        timeperiod = 20000
      Case mhz020
        Form2.Label25.Caption = "20MSa(50ns)"
        timeperiod = 50000
      Case mhz010
        Form2.Label25.Caption = "10MSa(100ns)"
        timeperiod = 100000
      Case mhz005
        Form2.Label25.Caption = "5MSa(200ns)"
        timeperiod = 200000
      Case mhz002
        Form2.Label25.Caption = "2MSa(500ns)"
        timeperiod = 500000
      Case mhz001
        Form2.Label25.Caption = "1MSa(1us)"
        timeperiod = 1000000
      Case khz500
        Form2.Label25.Caption = "500KSa(2us)"
        timeperiod = 2000000
      Case khz200
        Form2.Label25.Caption = "200ka(5us)"
        timeperiod = 5000000
      Case khz100
        Form2.Label25.Caption = "100KSa(10us)"
        timeperiod = 10000000
      Case khz050
        Form2.Label25.Caption = "50KSa(20us)"
        timeperiod = 20000000
      Case khz020
        Form2.Label25.Caption = "20ka(50us)"
        timeperiod = 50000000
      Case khz010
        Form2.Label25.Caption = "10KSa(100us)"
        timeperiod = 100000000
      Case khz005
        Form2.Label25.Caption = "5KSa(200us)"
        timeperiod = 200000000
      Case khz002
        Form2.Label25.Caption = "2ka(500us)"
        timeperiod = 500000000
      Case khz001
        Form2.Label25.Caption = "1KSa(1ms)"
        timeperiod = 1000000000
      Case hz500
        Form2.Label25.Caption = "500Sa(2ms)"
        timeperiod = 2000000000
      Case hz200
        Form2.Label25.Caption = "200Sa(5ms)"
        timeperiod = 5000000000#
      Case hz100
        Form2.Label25.Caption = "100Sa(10ms)"
        timeperiod = 10000000000#
      Case hz050
        Form2.Label25.Caption = "50Sa(20ms)"
        timeperiod = 20000000000#
      Case hz020
        Form2.Label25.Caption = "20Sa(50ms)"
        timeperiod = 50000000000#
      Case hz010
        Form2.Label25.Caption = "10Sa(100ms)"
        timeperiod = 100000000000#
      Case hz005
        Form2.Label25.Caption = "5Sa(200ms)"
        timeperiod = 200000000000#
      Case hz002
        Form2.Label25.Caption = "2Sa(500ms)"
        timeperiod = 500000000000#
      Case hz001
        Form2.Label25.Caption = "1Sa(1s)"
        timeperiod = 1000000000000#
    End Select
    '    ClkRate = Form2.HScroll12.Value
End Sub

Public Sub setzoom()
    Select Case Form2.HScroll13.Value
      Case zoom1_50
        Form2.Label26.Caption = "1:50(1 Sa/Div)"
        zoomperiod = 1
        zoomperiod1 = 1 / 50
      Case zoom1_20
        Form2.Label26.Caption = "1:20(2 Sa/Div)"
        zoomperiod = 2
        zoomperiod1 = 1 / 20
      Case zoom1_10
        Form2.Label26.Caption = "1:10(5 Sa/Div)"
        zoomperiod = 5
        zoomperiod1 = 1 / 10
      Case zoom1_5
        Form2.Label26.Caption = "1:5(10 Sa/Div)"
        zoomperiod = 10
        zoomperiod1 = 1 / 5
      Case zoom1_2
        Form2.Label26.Caption = "1:2(20 Sa/Div)"
        zoomperiod = 20
        zoomperiod1 = 1 / 2
      Case zoom1_1
        Form2.Label26.Caption = "1:1(50 Sa/Div)"
        zoomperiod = 50
        zoomperiod1 = 1
      Case zoom2_1
        Form2.Label26.Caption = "2:1(100 Sa/Div)"
        zoomperiod = 100
        zoomperiod1 = 2
      Case zoom4_1
        Form2.Label26.Caption = "4:1(200 Sa/Div)"
        zoomperiod = 200
        zoomperiod1 = 4
      Case zoom10_1
        Form2.Label26.Caption = "10:1(500 Sa/Div)"
        zoomperiod = 500
        zoomperiod1 = 10
      Case zoom20_1
        Form2.Label26.Caption = "20:1(1000 Sa/Div)"
        zoomperiod = 1000
        zoomperiod1 = 20
      Case zoom40_1
        Form2.Label26.Caption = "40:1(2000 Sa/Div)"
        zoomperiod = 2000
        zoomperiod1 = 40
      Case zoom100_1
        Form2.Label26.Caption = "100:1(5000 Sa/Div)"
        zoomperiod = 5000
        zoomperiod1 = 100
      Case zoom200_1
        Form2.Label26.Caption = "200:1(10000 Sa/Div)"
        zoomperiod = 10000
        zoomperiod1 = 200
      Case zoom400_1
        Form2.Label26.Caption = "400:1(20000 Sa/Div)"
        zoomperiod = 20000
        zoomperiod1 = 400

    End Select
End Sub

Sub dotdraw(ByVal drawcolor)

    Call SetPixeltest(ByVal Form1.Picture1.hdc, ByVal analogch0, disanalog0(0), ByVal drawcolor)
    Call SetPixeltest(ByVal Form1.Picture1.hdc, ByVal analogch1, disanalog0(0), ByVal drawcolor)

    '    Form1.Picture1.PSet (cx, disanalog0(cx)), red

    If board_model = dso2904_256 Then

        Call SetPixeltest(ByVal Form1.Picture1.hdc, ByVal analogch2, disanalog0(0), ByVal drawcolor)
        Call SetPixeltest(ByVal Form1.Picture1.hdc, ByVal analogch3, disanalog0(0), ByVal drawcolor)
    End If

End Sub

'it is visual basic function ,be replaced by visual c call linedraw
Public Sub linedraw1(ByVal channel, ByVal linecolor As Long)
    Form1.Picture1.ForeColor = linecolor
    For cx = 0 To 650 Step 1    '秆猂

⌨️ 快捷键说明

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