| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4535 人关注过本帖
标题:[求助]求助,C#如何通过串口写汉字到LED显示屏?有VB源码。
取消只看楼主 加入收藏
redcar
Rank: 2
等 级:论坛游民
帖 子:210
专家分:60
注 册:2006-9-13
结帖率:100%
收藏
 问题点数:0 回复次数:3 
[求助]求助,C#如何通过串口写汉字到LED显示屏?有VB源码。

有个VB的列子,可以通过读取HZK16和ASC16这2个UCDOS下的文件,再通过MSCOMM控件写入LED显示屏,来显示点阵汉字,请问要如何修改到C#上使用呢?

Function CALL_LED(ledstring As String) As String
Dim zw(1 To 32) As Byte
Dim zc(1 To 32) As Byte
Dim zimo As Integer
For I = 1 To Len(ledstring) Step 1
If Asc(Mid$(ledstring, I, 1)) < 0 Then
'写入的是汉字
If zimo = 1 Then MSComLED.Output = zc: zimo = 0
AA = Hex(Asc(Mid(ledstring, I, 1)))
bb = (94 * (CLng("&H" & Mid(AA, 1, 2)) - &HA1) + (CLng("&H" & Mid(AA, 3, 2)) - &HA1)) * 32 + 1
HzFile = App.Path + "\" + "hzk16"
Open HzFile For Binary Access Read As #1 '读取该汉字在16*16点阵字库中的原始字模
Get #1, bb, zw
Close #1
MSComLED.Output = zw
Else
'写入的不是汉字
If zimo = 0 Then
AA = Hex(Asc(Mid(ledstring, I, 1)))
bb = (CLng("&H" & Mid(AA, 1, 2))) * 16 + 1
HzFile = App.Path + "\" + "ASC16"
Open HzFile For Binary Access Read As #2 '读取该汉字在8*16点阵字库中的原始字模
Get #2, bb, zw
Close #2
zc(1) = zw(1): zc(3) = zw(2): zc(5) = zw(3): zc(7) = zw(4): zc(9) = zw(5): zc(11) = zw(6)
zc(13) = zw(7): zc(15) = zw(8): zc(17) = zw(9): zc(19) = zw(10): zc(21) = zw(11): zc(23) = zw(12)
zc(25) = zw(13): zc(27) = zw(14): zc(29) = zw(15): zc(31) = zw(16): zimo = 1
zc(2) = 0: zc(4) = 0: zc(6) = 0: zc(8) = 0: zc(10) = 0: zc(12) = 0: zc(14) = 0: zc(16) = 0
zc(18) = 0: zc(20) = 0: zc(22) = 0: zc(24) = 0: zc(26) = 0: zc(28) = 0: zc(30) = 0: zc(32) = 0
Else
AA = Hex(Asc(Mid(ledstring, I, 1)))
bb = (CLng("&H" & Mid(AA, 1, 2))) * 16 + 1
HzFile = App.Path + "\" + "ASC16"
Open HzFile For Binary Access Read As #3 '读取该汉字在8*16点阵字库中的原始字模
Get #3, bb, zw
Close #3
zc(2) = zw(1): zc(4) = zw(2): zc(6) = zw(3): zc(8) = zw(4): zc(10) = zw(5): zc(12) = zw(6)
zc(14) = zw(7): zc(16) = zw(8): zc(18) = zw(9): zc(20) = zw(10): zc(22) = zw(11): zc(24) = zw(12)
zc(26) = zw(13): zc(28) = zw(14): zc(30) = zw(15): zc(32) = zw(16): zimo = 0

MSComLED.Output = zc
End If
End If
Next
If zimo = 1 Then MSComLED.Output = zc: zimo = 0
End Function

搜索更多相关主题的帖子: LED 串口 汉字 源码 显示屏 
2006-10-30 21:20
redcar
Rank: 2
等 级:论坛游民
帖 子:210
专家分:60
注 册:2006-9-13
收藏
得分:0 
没有啊,这个改c#太难了,能不能把这个用VB6做成个DLL,让C#直接调用呢?
2006-10-30 21:46
redcar
Rank: 2
等 级:论坛游民
帖 子:210
专家分:60
注 册:2006-9-13
收藏
得分:0 
以下是引用noshow在2006-10-31 10:06:25的发言:
在C#下读HZ16字库网上有源码的 而且很好实现
楼主还是主要关心一下怎么写串口通讯吧

兄弟,给1个看看啊,串口通讯用那个seril就可以了啊

2006-10-31 13:01
redcar
Rank: 2
等 级:论坛游民
帖 子:210
专家分:60
注 册:2006-9-13
收藏
得分:0 
AA = Hex(Asc(Mid(ledstring, I, 1)))
bb = (94 * (CLng("&H" & Mid(AA, 1, 2)) - &HA1) + (CLng("&H" & Mid(AA, 3, 2)) - &HA1)) * 32 + 1

这个应该是VB的关键算法吧?如果换成c#要怎么弄呢?
2006-10-31 19:48
快速回复:[求助]求助,C#如何通过串口写汉字到LED显示屏?有VB源码。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012179 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved