| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 993 人关注过本帖
标题:[求助]有BCD码使用经验的请进
只看楼主 加入收藏
清洁工
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2005-4-12
收藏
 问题点数:0 回复次数:7 
[求助]有BCD码使用经验的请进

如果要将类似“8888”的(原本占四个字节)的数值数据以“两个字节”的形式传送给串口设备,用BCD码压缩好像解决了字节压缩问题。
“8888”对应的BCD码为:
二进制:10001000 10001000
十六进制:88H 88H (怎么看着像是直接把十进制数当16进制数使用了)

请问在这种情况下是否只能用“二进制模式”才能实现仅占两个字节的发送?
用“文本模式”是否也能实现该功能呢?如果不能,请帮忙确定一下!谢谢!

搜索更多相关主题的帖子: BCD 二进制 经验 字节 串口 
2006-02-10 11:01
xiabian
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-2-7
收藏
得分:0 

88H不行的。80H以下的可以用文本模式。也就是ASCII码的0~128可以


2006-02-10 14:32
清洁工
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2005-4-12
收藏
得分:0 
谢谢楼上的!
7FH 以下有一个特例 00H 对应的是NUL,如果转为AscII码后好像就消失了呀
即:当我要发送字符“0000” --转为BCD码--> 00H --转为AscII--> 蒸发了……
请问哪位有办法解决这个问题啊?

2006-02-10 15:31
xiabian
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-2-7
收藏
得分:0 
我专门试了一下,0也没问题呀。我是用这个测试的:一个文本框,一个按钮
Private Sub Command2_Click()
Dim Buffer As Variant
Buffer = Text1.Text
MSComm1.PortOpen = True
MSComm1.Output = Chr(Buffer)
MSComm1.PortOpen = False
End Sub
我在TEXT1里输入0,串口就会输出00H;输入128,就输出80H;输入129,就不行了,输出00H
如果要通用的话,我想还是用二进制好。

2006-02-10 16:11
xiabian
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-2-7
收藏
得分:0 
刚才又用16进制在TEXT1里输入&h0,&h01,&h80等,都没问题呀。为什么你说00H会蒸发掉呢?

2006-02-10 16:16
清洁工
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2005-4-12
收藏
得分:0 
可能是我的发送方式不对造成的:由于我要发送的数据比较长,所以我是先用一个变量来存储这个长AscII码字符串,然后再调用 .Output 直接发送这个字串,当我把chr(&h0)存入变量时,该字符可能就已经丢失了。
再次感谢xiabian!

2006-02-10 17:13
xiabian
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-2-7
收藏
得分:0 

Private Sub Command1_Click()

Dim oustring As String

oustring = Chr$(0) & Chr$(1) & Chr$(2) & Chr$(3) & Chr$(10) & Chr$(11) & Chr$(12)

MSComm1.PortOpen = True
MSComm1.Output = oustring


MSComm1.PortOpen = False

End Sub

用这段程序,按按钮后,输出的是00 01 02 03 0A 0B 0C


2006-02-10 17:27
tanga3
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-1-27
收藏
得分:0 
我想,我们学编程的 不应该是给别人干的

我们学这一门东西,不只是为了 混口饭!!!!!!!!!

我们 学他 就要有一帆成就。 我们给别人干活,那只是暂时的 只是有一个立脚之石!
我们要在这个石头的基础上,向远出的高山上 去!!!
我希望各位朋友 能有一个适合于自己的计划,
心里一定要有一个想法--------要编出属于我自己的“天才”软件。没这个想法的人我希望
你改行,编程不适合你,更不需要你, 你走把!!!!
大家 一定要行动起来! 从现在开始还不晚!

我想意识到晚已经的人,我想那还不晚(赶快行动把!)
我想那些没意识到的人,那该多么的可悲啊!
我们应该为他叹息!------张永正
一个成功人的背后,所付出的不只是你想像的那么多!-----张永正

希望我所说的能引人深思!
有信心的 +我的QQ群 20844899

一个成功人的背后,所付出的不只是你想像的那么多! 我要编出另一个另一个“比尔·盖茨”。
2006-02-17 22:11
快速回复:[求助]有BCD码使用经验的请进
数据加载中...
 
   



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

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