打印

数码管编码程序

[复制链接]
3093|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 sunruiyeyipeng 于 2011-3-13 20:32 编辑

这个VB程序( CodeMaker.rar (6.78 KB) )用来生成【共阴/共阳】数码管的字型码。代码如下:
希望高手能看懂,说不定,优化这个代码。
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 | 只看该作者
顶起来,希望对大家写程序可以起到节约时间的作用

使用特权

评论回复
5
sdpz| | 2011-3-14 13:57 | 只看该作者
不错,小工具优不优化无所谓,能用就是好东西!

使用特权

评论回复
6
ayb_ice| | 2011-3-14 14:28 | 只看该作者
根据不需要这些,C的预处理就搞定了,汇编也一样的
比如:
#define SA 1
#define SB 2
#define SC 4
....
那么“1”的码是
#define DN1 (SA+SB)
其它类似。。。
移植时只需改变SA,~SH的定义即可

使用特权

评论回复
7
sunruiyeyipeng|  楼主 | 2011-3-14 17:02 | 只看该作者
不是的,您理解错了。我的这个小工具不仅仅可以生成数字的编码。还可以生成各种符号“-” 。你看,这个E如果也自己计算编码显然麻烦。何况这个工具体积小,效果好,呵呵,自夸一下。

使用特权

评论回复
8
ayb_ice| | 2011-3-14 17:22 | 只看该作者
LS
符号是一样,只要显示效果是一样的,只要先定义好每段的值是多少

使用特权

评论回复
9
sunruiyeyipeng|  楼主 | 2011-3-14 22:29 | 只看该作者
饿,反正我们这种初学者表示作用很大!呵呵

使用特权

评论回复
10
sunruiyeyipeng|  楼主 | 2011-3-15 22:27 | 只看该作者
这个可以减轻编写数码管显示编码的工作量。

使用特权

评论回复
11
sunruiyeyipeng|  楼主 | 2011-4-23 09:27 | 只看该作者
这个,没有关注?结贴算了!

使用特权

评论回复
12
danceman_uk| | 2011-4-23 11:20 | 只看该作者
很好用.再加个串口,也能控制数码管了

使用特权

评论回复
13
delin17| | 2011-4-23 11:35 | 只看该作者
以前用过一个更好的工具,可以先每个管脚,直接输出数组.

使用特权

评论回复
14
abin0415| | 2011-4-24 19:08 | 只看该作者
都爱用仿真啊?:L

使用特权

评论回复
15
wang_2003| | 2011-4-25 16:14 | 只看该作者
恩,这个不错。

使用特权

评论回复
16
sunruiyeyipeng|  楼主 | 2011-5-5 20:26 | 只看该作者
谢谢!谢谢支持。最近准备做一个色环电阻计算工具,不知道是不是有现成的了?有没有需求?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

21

帖子

0

粉丝