使用51单片机与PC进行串口通信时,怎么将一个温度值(带两位小数)发送到VB编写的上位机界面上显示? 5

使用51单片机与PC进行串口通信时,怎么将一个温度值(带两位小数)发送到VB编写的上位机界面上显示?SBUF是8位的,是不是要分两次发,一次发整数部分,一次发小数部分呢?... 使用51单片机与PC进行串口通信时,怎么将一个温度值(带两位小数)发送到VB编写的上位机界面上显示? SBUF是8位的 ,是不是要分两次发,一次发整数部分, 一次发小数部分呢? 展开
 我来答
zdingyun
2015-12-04 · 知道合伙人软件行家
zdingyun
知道合伙人软件行家
采纳数:15429 获赞数:48174
1982年上海业余工业大学化工系毕业 现退休

向TA提问 私信TA
展开全部

使用51单片机与PC进行串口通信时,需将一个温度值(带两位小数)按通信协议规范组成的数据帧发送到PC机,VB则按通信协议规范组成的数据帧编写的上位机程序,接收和处理数据帧,并显示于运行程序界面或控件上。

  • 数据帧组成:分帧长、帧首、数据和帧尾等。

  • 数据:

    带两位小数的温度值发送需要制定好合适的数据约定,假释温度值是在1000摄氏度以内。

    可以使将实际温度值乘100倍取整,以两字节的整形变量传送。

    也可以使将实际温度值乘100倍取整,以5个ASCII字符直接传送。

  • 51单片机按上述方案取一组成数据帧发送给上位机串口。

  • VB编写的上位机串口接收程序的数据接收处理代码,按下位机采取的数据约定和数据帧格式接收和处理数据,取出数据除以100,获得所需的带两位小数在程序界面显示。

  • 需要注意的是整形变量方式接收需要按二进制模式接收,字符串方式接收以文本模式接收。

leoricwx
2012-11-09 · TA获得超过220个赞
知道小有建树答主
回答量:638
采纳率:0%
帮助的人:359万
展开全部
可以啊,你自己定个协议,然后PC解包就可以了,
打个比方说
你发
aa 00 xx,aa表示帧头,00表示温度高位,xx写温度高位数值
aa 01 yy,aa表示帧头,01表示温度低位,yy写温度低位数值
当然这只是比较简单的说法,还有字长啊,检验啊等等问题需要考虑
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zzliqiang12345
2012-11-09 · 超过21用户采纳过TA的回答
知道答主
回答量:105
采纳率:0%
帮助的人:41.1万
展开全部
不需要分2次发送,把小数点忽略,一般单片机里是二进制数,你就全部作为一个整数发送,上位机接收到后再分解加入小数点。你也可以单片机里转化为ASCII,就可以有小数点,再发送。但很麻烦的,不如pc机接收到再处理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wo4wuhuiting
2012-11-09 · TA获得超过457个赞
知道小有建树答主
回答量:155
采纳率:100%
帮助的人:122万
展开全部
你问度本身开始就是数字量,为什么你要先转换成小数再发呢?还有,带两位小数,你可以先扩大100倍再发啊,位数不够肯定得分两次发了,办法有很多,挑最简便易行的就好了,只要得到正确结果就ok
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
realdalang
2012-11-09 · 超过13用户采纳过TA的回答
知道答主
回答量:81
采纳率:0%
帮助的人:36.9万
展开全部
你可以移位,转换成整数
然后再发。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式