数码管编码程序

[复制链接]
4675|16
 楼主| sunruiyeyipeng 发表于 2011-3-13 14:51 | 显示全部楼层 |阅读模式
本帖最后由 sunruiyeyipeng 于 2011-3-13 20:32 编辑

这个VB程序()用来生成【共阴/共阳】数码管的字型码。代码如下:
希望高手能看懂,说不定,优化这个代码。
Function creatcode()
    'Creat Mask Code By
    Dim codes As String
    codes = getio(Ldp) & getio(Lg) & getio(Lf) & getio(Le) & getio(Ld) & getio(Lc) & getio(Lb) & getio(La)
    Call bintohex(codes)
End Function
Function getio(objt As Object)
    If objt.BackColor = vbWhite Then
        getio = "0"
    Else
        getio = "1"
    End If
End Function
Function bintohex(ByVal str As String)
    Dim i As Integer
    Dim b, c As Long
    'MsgBox str
    For i = 1 To 4
        b = b + Val(Mid(str, i, 1)) * 2 ^ (4 - i)
    Next i
    For i = 5 To 8
        c = c + Val(Mid(str, i, 1)) * 2 ^ (8 - i)
    Next i
    'MsgBox "b=" & b & "  c=" & c
    Text1 = "0x" & hexs(b) & hexs(c)
End Function
Function hexs(ByVal s As Variant)
    Select Case Val(s)
        Case 0 To 9
            hexs = s
        Case 10
            hexs = "a"
        Case 11
            hexs = "b"
        Case 12
            hexs = "c"
        Case 13
            hexs = "d"
        Case 14
            hexs = "e"
        Case 15
            hexs = "f"
    End Select
End Function
Private Sub Command1_Click()
    End
End Sub
Private Sub Command2_Click()
    La.BackColor = vbWhite
    Lb.BackColor = vbWhite
    Lc.BackColor = vbWhite
    Ld.BackColor = vbWhite
    Le.BackColor = vbWhite
    Lf.BackColor = vbWhite
    Lg.BackColor = vbWhite
    Ldp.BackColor = vbWhite
    Text1.Text = ""
End Sub

Private Sub La_Click()
    If La.BackColor = vbWhite Then
        La.BackColor = vbRed
    Else
        La.BackColor = vbWhite
    End If
    Call creatcode
End Sub
Private Sub Lb_Click()
    If Lb.BackColor = vbWhite Then
        Lb.BackColor = vbRed
    Else
        Lb.BackColor = vbWhite
    End If
    Call creatcode
End Sub
Private Sub Lc_Click()
    If Lc.BackColor = vbWhite Then
        Lc.BackColor = vbRed
    Else
        Lc.BackColor = vbWhite
    End If
    Call creatcode
End Sub
Private Sub Ld_Click()
    If Ld.BackColor = vbWhite Then
        Ld.BackColor = vbRed
    Else
        Ld.BackColor = vbWhite
    End If
    Call creatcode
End Sub
Private Sub Ldp_Click()
    If Ldp.BackColor = vbWhite Then
        Ldp.BackColor = vbRed
    Else
        Ldp.BackColor = vbWhite
    End If
    Call creatcode
End Sub
Private Sub Le_Click()
    If Le.BackColor = vbWhite Then
        Le.BackColor = vbRed
    Else
        Le.BackColor = vbWhite
    End If
    Call creatcode
End Sub
Private Sub Lf_Click()
    If Lf.BackColor = vbWhite Then
        Lf.BackColor = vbRed
    Else
        Lf.BackColor = vbWhite
    End If
    Call creatcode
End Sub
Private Sub Lg_Click()
    If Lg.BackColor = vbWhite Then
        Lg.BackColor = vbRed
    Else
        Lg.BackColor = vbWhite
    End If
    Call creatcode
End Sub

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| sunruiyeyipeng 发表于 2011-3-13 16:17 | 显示全部楼层
可以将数字、符号的字型码轻易计算出来
比如
F.   0xf1   
HELLO   :  0x76  0x79  0x38 0x38 0x3f
0.25      :0xbf 0x5b 0x6d
 楼主| sunruiyeyipeng 发表于 2011-3-13 20:30 | 显示全部楼层

如图是程序界面【第二版的程序】

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| sunruiyeyipeng 发表于 2011-3-14 12:26 | 显示全部楼层
顶起来,希望对大家写程序可以起到节约时间的作用
sdpz 发表于 2011-3-14 13:57 | 显示全部楼层
不错,小工具优不优化无所谓,能用就是好东西!
ayb_ice 发表于 2011-3-14 14:28 | 显示全部楼层
根据不需要这些,C的预处理就搞定了,汇编也一样的
比如:
#define SA 1
#define SB 2
#define SC 4
....
那么“1”的码是
#define DN1 (SA+SB)
其它类似。。。
移植时只需改变SA,~SH的定义即可
 楼主| sunruiyeyipeng 发表于 2011-3-14 17:02 | 显示全部楼层
不是的,您理解错了。我的这个小工具不仅仅可以生成数字的编码。还可以生成各种符号“-”。你看,这个E如果也自己计算编码显然麻烦。何况这个工具体积小,效果好,呵呵,自夸一下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
ayb_ice 发表于 2011-3-14 17:22 | 显示全部楼层
LS
符号是一样,只要显示效果是一样的,只要先定义好每段的值是多少
 楼主| sunruiyeyipeng 发表于 2011-3-14 22:29 | 显示全部楼层
饿,反正我们这种初学者表示作用很大!呵呵
 楼主| sunruiyeyipeng 发表于 2011-3-15 22:27 | 显示全部楼层
这个可以减轻编写数码管显示编码的工作量。
 楼主| sunruiyeyipeng 发表于 2011-4-23 09:27 | 显示全部楼层
这个,没有关注?结贴算了!
danceman_uk 发表于 2011-4-23 11:20 | 显示全部楼层
很好用.再加个串口,也能控制数码管了
delin17 发表于 2011-4-23 11:35 | 显示全部楼层
以前用过一个更好的工具,可以先每个管脚,直接输出数组.
abin0415 发表于 2011-4-24 19:08 | 显示全部楼层
都爱用仿真啊?:L
wang_2003 发表于 2011-4-25 16:14 | 显示全部楼层
恩,这个不错。
 楼主| sunruiyeyipeng 发表于 2011-5-5 20:26 | 显示全部楼层
谢谢!谢谢支持。最近准备做一个色环电阻计算工具,不知道是不是有现成的了?有没有需求?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

21

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部