📄 formula.frm
字号:
' 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 + -