📄 振荡电路.frm
字号:
VERSION 5.00
Object = "{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}#1.1#0"; "SHDOCVW.DLL"
Begin VB.Form Form1
BorderStyle = 1 'Fixed Single
Caption = "振荡电路计算器"
ClientHeight = 6060
ClientLeft = 150
ClientTop = 720
ClientWidth = 8445
Icon = "振荡电路.frx":0000
LinkTopic = "Form1"
MaxButton = 0 'False
ScaleHeight = 6060
ScaleWidth = 8445
StartUpPosition = 3 '窗口缺省
Begin SHDocVwCtl.WebBrowser WebBrowser1
Height = 5655
Left = 3480
TabIndex = 16
Top = 360
Width = 4935
ExtentX = 8705
ExtentY = 9975
ViewMode = 0
Offline = 0
Silent = 0
RegisterAsBrowser= 0
RegisterAsDropTarget= 1
AutoArrange = 0 'False
NoClientEdge = 0 'False
AlignLeft = 0 'False
ViewID = "{0057D0E0-3573-11CF-AE69-08002B2E1262}"
Location = ""
End
Begin VB.CommandButton Command1
Caption = "计算"
Default = -1 'True
Height = 375
Left = 2400
TabIndex = 9
Top = 1920
Width = 855
End
Begin VB.TextBox Text5
Height = 375
Left = 1080
MaxLength = 10
TabIndex = 5
Top = 1920
Width = 1095
End
Begin VB.TextBox Text4
Height = 375
Left = 1080
MaxLength = 10
TabIndex = 4
Top = 1440
Width = 1095
End
Begin VB.TextBox Text3
Height = 375
Left = 1080
MaxLength = 10
TabIndex = 3
Top = 960
Width = 1095
End
Begin VB.TextBox Text2
Height = 375
Left = 1080
MaxLength = 10
TabIndex = 2
Top = 480
Width = 1095
End
Begin VB.Label Label1
Height = 255
Left = 120
TabIndex = 1
Top = 600
Width = 735
End
Begin VB.Image Image1
Height = 900
Left = 360
Picture = "振荡电路.frx":030A
Top = 4560
Width = 3000
End
Begin VB.Label Label8
Caption = "f="
Height = 375
Left = 120
TabIndex = 15
Top = 3960
Width = 2655
End
Begin VB.Label Label13
ForeColor = &H00FF0000&
Height = 375
Left = 4560
TabIndex = 14
Top = 240
Width = 1215
End
Begin VB.Label Label12
Caption = "河南汝州 徐世锋 制作"
ForeColor = &H00FF0000&
Height = 255
Left = 840
TabIndex = 13
Top = 5640
Width = 2415
End
Begin VB.Label Label7
Caption = "T="
Height = 255
Left = 120
TabIndex = 12
Top = 3480
Width = 2655
End
Begin VB.Label Label6
Height = 255
Left = 120
TabIndex = 11
Top = 3000
Width = 2655
End
Begin VB.Label Label2
Height = 255
Left = 120
TabIndex = 10
Top = 1080
Width = 735
End
Begin VB.Label Label5
Height = 255
Left = 120
TabIndex = 8
Top = 2520
Width = 2655
End
Begin VB.Label Label4
Height = 255
Left = 120
TabIndex = 7
Top = 2040
Width = 735
End
Begin VB.Label Label3
Height = 255
Left = 120
TabIndex = 6
Top = 1560
Width = 735
End
Begin VB.Label Lable1
Caption = "电路简介"
Height = 255
Left = 3600
TabIndex = 0
Top = 120
Width = 975
End
Begin VB.Menu mnuSel
Caption = "选择电路"
Begin VB.Menu mnuRc1
Caption = "RC正弦波振荡电路(文氏电桥)"
End
Begin VB.Menu mnuRc2
Caption = "RC多谐振荡电路(分立元件)"
End
Begin VB.Menu mnuRc3
Caption = "RC多谐振荡电路(非门)"
End
Begin VB.Menu mnuRc4
Caption = "RC多谐振荡电路(NE555)"
End
Begin VB.Menu mnuLc1
Caption = "LC振荡电路(变压器反馈)"
End
Begin VB.Menu mnuLc2
Caption = "LC振荡电路(电感三点式)一"
End
Begin VB.Menu mnuLc3
Caption = "LC振荡电路(电感三点式)二"
End
Begin VB.Menu mnuLc4
Caption = "LC振荡电路(电容三点式)"
End
Begin VB.Menu mnuQuartz1
Caption = "石英晶体振荡电路一"
End
Begin VB.Menu mnuQuartz2
Caption = "石英晶体振荡电路二"
End
End
Begin VB.Menu mnuHelp
Caption = "帮助"
Begin VB.Menu mnuHelp1
Caption = "帮助内容"
End
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Public adress As String
Public j As Integer
Private Sub Command1_Click()
'提取文本框内的数据,并进行计算
Dim st(4) As String
Dim n As Integer, p As Integer, q As Integer
Dim R1 As Double, R2 As Double, C1 As Double, C2 As Double
st(1) = Text2.Text
st(2) = Text3.Text
st(3) = Text4.Text
st(4) = Text5.Text
R1 = Val(Text2.Text)
R2 = Val(Text3.Text)
C1 = Val(Text4.Text)
C2 = Val(Text5.Text)
Select Case j
Case 1
If R1 * R2 <> 0 And test(st(1)) = True And test(st(2)) = True Then
Label5 = ""
Label6 = ""
t = ta(R1, R2)
Label7 = "T=" & t & "ms"
f = 1 / t
Label8 = "f=" & f & "kHz"
Else
MsgBox ("输入的数据有错误!")
End If
Case 2
If R1 * R1 * C1 * C2 <> 0 And test(st(1)) = True And test(st(2)) = True And test(st(3)) = True And test(st(4)) = True Then
t1 = tb1(R1, C1)
t2 = tb2(R2, C2)
t = t1 + t2
f = 1 / t
Label5 = "T1=" & t1 & "ms"
Label6 = "T2=" & t2 & "ms"
Label7 = "T=" & t & "ms"
Label8 = "f=" & f & "kHz"
Else
MsgBox ("输入的数据有错误!")
End If
Case 3
If R1 * R2 <> 0 And test(st(1)) = True And test(st(2)) = True Then
t = tc(R1, R2)
f = 1 / t
Label5 = ""
Label6 = ""
Label7 = "T=" & t & "ms"
Label8 = "f=" & f & "kHz"
Else
MsgBox ("输入的数据有错误!")
End If
Case 4
If R1 * R2 * C1 <> 0 And test(st(1)) = True And test(st(2)) = True And test(st(3)) = True Then
t1 = td1(R1, R2, C1)
t2 = td2(R2, C1)
t = t1 + t2
f = 1 / t
Label5 = "T1=" & t1 & "ms"
Label6 = "T2=" & t2 & "ms"
Label7 = "T=" & t & "ms"
Label8 = "f=" & f & "kHz"
Else
MsgBox ("输入的数据有错误!")
End If
Case 5
If R1 * R2 <> 0 And test(st(1)) = True And test(st(2)) = True Then
t = te(R1, R2)
f = 1 / t
Label5 = ""
Label6 = ""
Label7 = "T=" & t & "ms"
Label8 = "f=" & f & "kHz"
Else
MsgBox ("输入的数据有错误!")
End If
Case 6
If R1 * C1 * C2 <> 0 And test(st(1)) = True And test(st(2)) = True And test(st(3)) = True Then
t = tf(R1, R2, C1, C2) / 1000
f = 1 / t
Label5 = ""
Label6 = ""
Label7 = "T=" & t & "μs"
Label8 = "f=" & f & "MHz"
Else
MsgBox ("输入的数据有错误!")
End If
Case 7
MsgBox ("不用计算!")
End Select
End Sub
Private Sub Form_Load()
adress = App.Path
WebBrowser1.Navigate (adress & "\html\osc1.htm")
Label1 = "R (kΩ)"
Label2 = "C (μF)"
Label3 = "None"
Label4 = "None"
j = 1
End Sub
Private Sub mnuHelp1_Click()
WebBrowser1.Navigate (adress & "\html\help.htm")
j = 7
End Sub
Private Sub mnuLc1_Click()
'选择电路
WebBrowser1.Navigate (adress & "\html\osc5.htm")
Label1 = "L (mH)"
Label2 = "C (μF)"
Label3 = "None"
Label4 = "None"
j = 5
End Sub
Private Sub mnuLc2_Click()
WebBrowser1.Navigate (adress & "\html\osc6.htm")
Label1 = "L (mH)"
Label2 = "C (μF)"
Label3 = "None"
Label4 = "None"
j = 5
End Sub
Private Sub mnuLc3_Click()
WebBrowser1.Navigate (adress & "\html\osc7.htm")
Label1 = "L (mH)"
Label2 = "C (μF)"
Label3 = "None"
Label4 = "None"
j = 5
End Sub
Private Sub mnuLc4_Click()
WebBrowser1.Navigate (adress & "\html\osc8.htm")
Label1 = "L (μH)"
Label2 = "C (pF)"
Label3 = "C1 (pF)"
Label4 = "C2 (pF)"
j = 6
End Sub
Private Sub mnuQuartz1_Click()
WebBrowser1.Navigate (adress & "\html\osc9.htm")
Label1 = "None"
Label2 = "None"
Label3 = "None"
Label4 = "None"
j = 7
End Sub
Private Sub mnuQuartz2_Click()
WebBrowser1.Navigate (adress & "\html\osc10.htm")
Label1 = "None"
Label2 = "None"
Label3 = "None"
Label4 = "None"
j = 7
End Sub
Private Sub mnuRc1_Click()
WebBrowser1.Navigate (adress & "\html\osc1.htm")
Label1 = "R1 (kΩ)"
Label2 = "C1 (μF)"
Label3 = "None"
Label4 = "None"
j = 1
End Sub
Private Sub mnuRc2_Click()
WebBrowser1.Navigate (adress & "\html\osc2.htm")
Label1 = "R1 (kΩ)"
Label2 = "R2 (kΩ)"
Label3 = "C1 (μF)"
Label4 = "C2 (μF)"
j = 2
End Sub
Private Sub mnuRc3_Click()
WebBrowser1.Navigate (adress & "\html\osc3.htm")
Label1 = "R (kΩ)"
Label2 = "C (μF)"
Label3 = "None"
Label4 = "None"
j = 3
End Sub
Function ta(R1, R2)
'计算公式
ta = 2 * 3.1416 * R1 * R2
End Function
Function tb1(R1, C1)
tb1 = 0.693 * R1 * C1
End Function
Function tb2(R2, C2)
tb2 = 0.693 * R2 * C2
End Function
Function tc(R1, R2)
tc = 2.197 * R1 * R2
End Function
Function td1(R1, R2, C1)
td1 = 0.693 * (R1 + R2) * C1
End Function
Function td2(R2, C1)
td2 = 0.693 * R2 * C1
End Function
Function te(R1, R2)
te = 2 * 3.1416 * Sqr((R1 * R2) / 1000)
End Function
Function tf(R1, R2, C1, C2)
tf = 2 * 3.1416 * Sqr(R1 * (2 + R2 + (C1 * C2 / (C1 + C2))))
End Function
Function test(st As String) As Boolean
'判断文本框内的数字是否合法。
n = 1
p = 0
q = 0
While Mid$(st, n, 1) <> ""
If Asc(Mid$(st, n, 1)) > 47 And Asc(Mid$(st, n, 1)) < 58 Then p = p + 1
If Asc(Mid$(st, n, 1)) = 46 Then q = q + 1
n = n + 1
Wend
If n = p + q + 1 And q < 2 And n > 1 Then test = True
End Function
Private Sub mnuRc4_Click()
WebBrowser1.Navigate (adress & "\html\osc4.htm")
Label1 = "R1 (kΩ)"
Label2 = "R2 (kΩ)"
Label3 = "C (μF)"
Label4 = "None"
j = 4
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -