有关VB6的鄙视与恶心从线上到线下无处不在,同事也说VB6已经淘汰好多年了,不具备现代的编程特性。可我偏偏要用VB6编写小工具来处理日常问题。就如我在《用自己最拿手的语言编写程序》中说的能解决实际问题无论用什么语言写程序都一样!
由于本人日常工作中从事桌面、网络方面的应用软件开发,用的语言工具是C、C51、Basic、Gambas。还从事电子电路的制作与维修。所以,用软件的知识来辅助电子方面的工作就显得非常的方便。这次我就用VB6写一个小小的电子方面的工具---色环电阻计算器。 来证明VB6是不是想反对者所讲的那么不堪一用?如需电阻计算器.exe程序的读者,请私信!
在电子电路中存在大量的色环电阻,对于本人来说懒得背色环的值,这个时候如果有个能直观显示电阻值的小工具就显得非常的方便了。色环电阻也就是常见的直插电阻,根据色环的数量一般分为四色环和五色环。每个色环所代表的含义各不相同,下表是每种颜色代表的意义。
颜色 | 代表的数字 | 有效值后0的个数 | 误差 |
黑色 | 0 | 0 | |
棕色 | 1 | 1 | 1 |
红色 | 2 | 2 | 0.1 |
橙色 | 3 | 3 | 0.01 |
黄色 | 4 | 4 | 0.001 |
绿色 | 5 | 5 | |
蓝色 | 6 | 6 | |
紫色 | 7 | 7 | |
灰色 | 8 | 8 | |
白色 | 9 | 9 | |
金色 | 无效 | -1 | |
银色 | 无效 | -2 | |
无色 | 无效 | 无效 |
知道了各种颜色的意义后编写程序就非常的容易了。下面介绍下四环与五环电阻的读数方法。
四色环读数方法:
第一个色环:第一个有效数字;第二个色环:第二个有效数字;第三个色环:表示倍率;第四个色环:表示误差,即精度;
四色环举例:第一个色环:棕色,代表1;第二个色环:紫色,代表7;第三个色环:红色,代表10的平方;第四个色环:棕色,代表±1%;
所以,这个电阻的阻值为17×10^2=1700Ω=1.7K欧姆,误差为±1%。
五色环读数方法:第一个色环:第一个有效数字;第二个色环:第二个有效数字;第三个色环:第三个有效数字;第四个色环:表示倍率;第五个色环:表示误差,即精度;
五色环举例:第一个色环:棕色,代表1;第二个色环:紫色,代表7;第三个色环: 黑色,代表0;第四个色环:棕色,代表10;第五个色环:棕色,代表±1%;
所以,这个电阻的阻值为170×10=1700Ω=1.7K欧姆,误差为±1%。
下面是本色环电阻计算器的关键代码:
Private Function retNumAndStr(ByVal s As String, Num As Single) As String
Dim tmp As String
Select Case Right(s, 1)
Case "1"
Num = Val(s)
retNumAndStr = "Ω"
Case "0"
Num = Val(s)
retNumAndStr = "Ω"
Case "K"
Num = Val(s) ' * 1000
retNumAndStr = "KΩ"
Case "M"
Num = Val(s) '* 1000000
retNumAndStr = "MΩ"
End Select
End Function
Private Sub CalcNum(ByVal BiaoZhi As Label, XiaoZhi As Label, DaZhi As Label, ByVal WuCha As Label)
Dim tmp As String, tmp1 As String, wc As String, s As String
Dim sigTmp As Single
s = BiaoZhi.Caption
wc = WuCha.Caption
tmp = Right(s, 2)
sigTmp = Val(s)
Select Case tmp
Case "KΩ"
tmp1 = "KΩ"
Case "MΩ"
tmp1 = "MΩ"
Case Else
tmp1 = "Ω"
End Select
XiaoZhi.Caption = sigTmp * (1 - Val(wc) / 100) & tmp1
DaZhi.Caption = sigTmp * (1 Val(wc) / 100) & tmp1
End Sub
Private Function Calc(ByVal a As Single, ByVal b As Single, ByVal c As Single, ByVal d As Single, Optional ByVal isFour As Boolean = True) As Single
Dim tmp As Single
If isFour Then
tmp = (a * 10 b) * d
Else
tmp = (a * 100 b * 10 c) * d
End If
Calc = tmp
End Function
下面是截图