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

📄 formula.frm

📁 这是一个汇集了单片机开发人员常用的计算公式
💻 FRM
📖 第 1 页 / 共 4 页
字号:
' RC 充电时间常数的计算
    R6_Change

' 带通滤波器
    Q_Change
    R1B_Change

' RC 振荡器
    Rd_Change
    Rd1_Change
    Cd2_Change
    
' 555 振荡器
    Ra_Change
    
    Form1.Top = 500
    Form1.Left = 1350
    Form1.Height = 2350
    Form1.Width = 6520
    For i = 0 To 9
        Frame(i).Top = 500
        Frame(i).Left = 20
    Next
    
    Cmb1.AddItem " 公制(mm)和英制(mil)的换算"
    Cmb1.AddItem " LM317T的输出电压 V0 和接地调整电阻 Rx 的关系"
    Cmb1.AddItem " 并联电阻的计算"
    Cmb1.AddItem " M51定时器时间常数的计算"
    Cmb1.AddItem " 作为波特率发生器的定时器 T1 的初值Mx"
    Cmb1.AddItem " 频率 F (MHz)和周期 T (uS)的换算"
    Cmb1.AddItem " RC 充电时间常数的计算"
    Cmb1.AddItem " 带通滤波器"
    Cmb1.AddItem " RC 振荡器"
    Cmb1.AddItem " 555 振荡器"
    
    Frame(0).Visible = True
    
    SetFGrid
        
End Sub

Private Sub Cmb1_Click()
    
    Select Case Cmb1.ListIndex
        Case 0
            Form1.Height = 2350
            Frame(index).Visible = False
            Frame(0).Visible = True
            index = 0
        Case 1
            Form1.Height = 4150
            Frame(index).Visible = False
            Frame(1).Visible = True
            index = 1
        Case 2
            Form1.Height = 2350
            Frame(index).Visible = False
            Frame(2).Visible = True
            index = 2
        Case 3
            Form1.Height = 2350
            Frame(index).Visible = False
            Frame(3).Visible = True
            index = 3
        Case 4
            Form1.Height = 2350
            Frame(index).Visible = False
            Frame(4).Visible = True
            index = 4
        Case 5
            Form1.Height = 2350
            Frame(index).Visible = False
            Frame(5).Visible = True
            index = 5
        Case 6
            Form1.Height = 2350
            Frame(index).Visible = False
            Frame(6).Visible = True
            index = 6
        Case 7
            Form1.Height = 7150
            Frame(index).Visible = False
            Frame(7).Visible = True
            index = 7
        Case 8
            Form1.Height = 2700
            Frame(index).Visible = False
            Frame(8).Visible = True
            index = 8
        Case 9
            Form1.Height = 3700
            Frame(index).Visible = False
            Frame(9).Visible = True
            index = 9
   End Select

End Sub

Private Sub B_Change()
    
' 作为波特率发生器的定时器 T1 的初值Mx
    On Error GoTo LP1
    
    Dim X As Integer
    If txtSMOD = 0 Then
        X = 1
    Else
        X = 2
    End If
    
    Mx = 256 - Val(Fx) * 1000000 * X / (384 * Val(B))
    Exit Sub

LP1: Mx = "Error!"

End Sub

Private Sub Fx_Change()
    
' 作为波特率发生器的定时器 T1 的初值Mx
    B_Change

End Sub

Private Sub K_Change()
    Q_Change
End Sub

Private Sub MIL_Change()
    
' 公制(mm)和英制(0.1”)的换算
    MM = Val(MIL) * 2.54 / 100

End Sub

Private Sub MM1_Change()
    
' 公制(mm)和英制(0.1”)的换算
    MIL1 = Val(MM1) / 2.54 * 100

End Sub

Private Sub Mx_Change()
    
' 作为波特率发生器的定时器 T1 的初值Mx
    Mxh = Hex(Val(Mx))

End Sub

Private Sub Nx_Change()
    
' 作为波特率发生器的定时器 T1 的初值Mx
    Nxh = Hex(Val(Nx))

End Sub

Private Sub Q_Change()
    
    On Error GoTo LP1
    
    R1A = FormatNumber(Val(Q) * 1000000# / (2 * P * Val(F0) * Val(C) * Val(K)), 0, vbTrue, , 0)
    R2A = FormatNumber(Val(Q) * 1000000# / ((2 * Val(Q) * Val(Q) - Val(K)) * 2 * P * Val(F0) * Val(C)), 0, vbTrue, , 0)
    R3A = FormatNumber(Val(Q) * 2000000# / (2 * P * Val(F0) * Val(C)), 0, vbTrue, , 0)
    FB = FormatNumber((1000000 / (2 * P * Val(C))) * ((1 / Val(R3B) * (1 / Val(R1B) + 1 / Val(R2B))) ^ (1 / 2)), 2, , vbTrue, 0)
    Exit Sub

LP1:
    R1A = "Error!"
    R2A = "Error!"
    R3A = "Error!"

End Sub

Private Sub R_Change()

' 并联电阻的计算
    
    On Error GoTo LP1
    
    R2 = Val(R) * Val(R1) / (Val(R1) - Val(R))
    Exit Sub

LP1: R2 = "Error!"

End Sub

Private Sub R1_Change()
    
' 并联电阻的计算
    R_Change

End Sub

Private Sub R11_Change()
    
' 并联电阻的计算
    
    On Error GoTo LP1
    
    R10 = Val(R11) * Val(R12) / (Val(R11) + Val(R12))
    Exit Sub

LP1: R10 = "Error!"

End Sub

Private Sub R12_Change()
    
' 并联电阻的计算
    R11_Change

End Sub

Private Sub F1_Change()
    
' 频率 F (MHz)和周期 T (uS)的换算
    
    On Error GoTo LP1
    
    TY = 1 / Val(F1)
    T51 = 1 / Val(F1) * 12
    Exit Sub

LP1: TY = "Error!"

End Sub

Private Sub R1B_Change()
    
    On Error GoTo LP1

    CB = FormatNumber((1000000 / (2 * P * Val(F0))) * ((1 / Val(R3B) * (1 / Val(R1B) + 1 / Val(R2B))) ^ (1 / 2)), 4, , vbTrue, 0)
    
    KB = FormatNumber(Val(R3B) / (2 * Val(R1B)), 2, vbTrue, , 0)
    QB = FormatNumber(((Val(R3B) / Val(R1B) + Val(R3B) / Val(R2B)) ^ (1 / 2)) / 2, 2, , vbTrue, 0)
    FB = FormatNumber((1000000 / (2 * P * Val(C))) * ((1 / Val(R3B) * (1 / Val(R1B) + 1 / Val(R2B))) ^ (1 / 2)), 2, , vbTrue, 0)
    Exit Sub

LP1:
    CB = "Error!"
    KB = "Error!"
    QB = "Error!"
    FB = "Error!"

End Sub

Private Sub R1x_Change()
    
    V0_Change

End Sub

Private Sub R2B_Change()
    
    R1B_Change

End Sub

Private Sub R3B_Change()
    
    R1B_Change

End Sub

Private Sub Ra_Change()
    
    TL = 0.69 * Val(Rb) * Val(C5)
    TH = 0.69 * (Val(Ra) + Val(Rb)) * Val(C5)
    T5 = Val(TL) + Val(TH)
    
End Sub

Private Sub Rb_Change()
    
    Ra_Change

End Sub

Private Sub Rd_Change()
    
    On Error GoTo LP1
    
    Fd = (1.6 * 10 ^ 8) / (Val(Rd) * Val(Cd))
    Exit Sub

LP1: Fd = "Error!"

End Sub

Private Sub Rd1_Change()
    
    On Error GoTo LP1
    

    Cd1 = (1.6 * 10 ^ 8) / (Val(Rd1) * Val(Fd1))
    Exit Sub

LP1: Cd1 = "Error!"

End Sub

Private Sub T1_Change()
    
' 频率 F (MHz)和周期 T (uS)的换算
    On Error GoTo LP1
    
    FY = 1 / Val(T1)
    F51 = 1 / Val(T1) * 12
    Exit Sub

LP1: FY = "Error!"

End Sub

Private Sub Text5_Change()

End Sub

Private Sub Text1_Change()

End Sub

Private Sub Tx_Change()
    
' M51定时器时间常数的计算
    Nx = Val(M) - (Val(Tx) * Val(F) / 12)

End Sub

Private Sub F_Change()
    
' M51定时器时间常数的计算
    Tx_Change

End Sub

Private Sub M_Change()
    
' M51定时器时间常数的计算
    Tx_Change

End Sub

Private Sub txtSMOD_Change()
    
' 作为波特率发生器的定时器 T1 的初值Mx
    B_Change

End Sub

Private Sub V0_Change()
    
' LM317T的输出电压 V0 和接地调整电阻 Rx 的关系
    Rx = Val(R1x) * (Val(V0) - 1.25) / 1.25

End Sub

' ---------------------------------------------------------------------------------------
' RC 充电时间常数的计算

Private Sub R6_Change()

    e = 2.718282
    
    If Vc >= V Then
        MsgBox "Vc 不能大于或等于 V"
        Exit Sub
    End If
    
    T = Val(R6) * Val(C6) * Log(Val(V) / (Val(V) - Val(Vc))) / Log(e)
    
    If T < 0.1 Then
        T = T * 1000
        Label32.Caption = "T(uS)"
    Else
        Label32.Caption = "T(mS)"
    End If

End Sub

Private Sub C6_Change()
    
    R6_Change

End Sub

Private Sub V_Change()
    
    R6_Change

End Sub

Private Sub Vc_Change()
    
    R6_Change

End Sub



Private Sub C_Change()
    
    Q_Change

End Sub

Private Sub CB_Change()
    
    R1B_Change

End Sub

Private Sub Cd_Change()
    
    Rd_Change

End Sub

Private Sub Cd2_Change()
    
    On Error GoTo LP1
    
    Rd2 = (1.6 * 10 ^ 8) / (Val(Cd2) * Val(Fd2))
    Exit Sub

LP1: Rd2 = "Error!"

End Sub

Private Sub F0_Change()
    
    Q_Change
    CB = FormatNumber((1000000 / (2 * P * Val(F0))) * ((1 / Val(R3B) * (1 / Val(R1B) + 1 / Val(R2B))) ^ (1 / 2)), 4, , vbTrue, 0)

End Sub

Private Sub Fd1_Change()

    Rd1_Change
    
End Sub

Private Sub Fd2_Change()
    
    Cd2_Change

End Sub

Private Sub C5_Change()

    Ra_Change
    
End Sub

Private Sub SetFGrid()
    
    FGridRcd.ColWidth(0) = 0
    FGridRcd.ColWidth(1) = 1200
    FGridRcd.ColWidth(2) = 1400

    FGridRcd.ColAlignment(0) = 3
    FGridRcd.ColAlignment(1) = flexAlignCenterBottom
    FGridRcd.ColAlignment(2) = flexAlignCenterBottom
    
    FGridRcd.Clear
    FGridRcd.TextMatrix(0, 1) = "频率 F(Hz)"
    FGridRcd.TextMatrix(0, 2) = "电容 C(F)"
    FGridRcd.TextMatrix(1, 1) = "1 - 10"
    FGridRcd.TextMatrix(1, 2) = "20u - 1u"
    FGridRcd.TextMatrix(2, 1) = "10 - 100"
    FGridRcd.TextMatrix(2, 2) = "1u - 0.1u"
    FGridRcd.TextMatrix(3, 1) = "100 - 1K"
    FGridRcd.TextMatrix(3, 2) = "0.1u - 0.01u"
    FGridRcd.TextMatrix(4, 1) = "1K - 10K"
    FGridRcd.TextMatrix(4, 2) = "0.01u - 1000p"
    FGridRcd.TextMatrix(5, 1) = "10K - 100K"
    FGridRcd.TextMatrix(5, 2) = "1000p - 100p"
    FGridRcd.TextMatrix(6, 1) = "100K - 1M"
    FGridRcd.TextMatrix(6, 2) = "100p - 10p"

End Sub

' ---------------------------------------------------------------------------------------

⌨️ 快捷键说明

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