使用51单片机与PC进行串口通信时,怎么将一个温度值(带两位小数)发送到VB编写的上位机界面上显示?
发布网友
发布时间:2022-05-25 12:14
我来回答
共5个回答
热心网友
时间:2023-10-26 14:47
使用51单片机与PC进行串口通信时,需将一个温度值(带两位小数)按通信协议规范组成的数据帧发送到PC机,VB则按通信协议规范组成的数据帧编写的上位机程序,接收和处理数据帧,并显示于运行程序界面或控件上。
数据帧组成:分帧长、帧首、数据和帧尾等。
数据:
带两位小数的温度值发送需要制定好合适的数据约定,假释温度值是在1000摄氏度以内。
可以使将实际温度值乘100倍取整,以两字节的整形变量传送。
也可以使将实际温度值乘100倍取整,以5个ASCII字符直接传送。
51单片机按上述方案取一组成数据帧发送给上位机串口。
VB编写的上位机串口接收程序的数据接收处理代码,按下位机采取的数据约定和数据帧格式接收和处理数据,取出数据除以100,获得所需的带两位小数在程序界面显示。
需要注意的是整形变量方式接收需要按二进制模式接收,字符串方式接收以文本模式接收。
热心网友
时间:2023-10-26 14:47
可以啊,你自己定个协议,然后PC解包就可以了,
打个比方说
你发
aa 00 xx,aa表示帧头,00表示温度高位,xx写温度高位数值
aa 01 yy,aa表示帧头,01表示温度低位,yy写温度低位数值
当然这只是比较简单的说法,还有字长啊,检验啊等等问题需要考虑
热心网友
时间:2023-10-26 14:47
不需要分2次发送,把小数点忽略,一般单片机里是二进制数,你就全部作为一个整数发送,上位机接收到后再分解加入小数点。你也可以单片机里转化为ASCII,就可以有小数点,再发送。但很麻烦的,不如pc机接收到再处理。
热心网友
时间:2023-10-26 14:48
你问度本身开始就是数字量,为什么你要先转换成小数再发呢?还有,带两位小数,你可以先扩大100倍再发啊,位数不够肯定得分两次发了,办法有很多,挑最简便易行的就好了,只要得到正确结果就ok
热心网友
时间:2023-10-26 14:49
你可以移位,转换成整数
然后再发。
51单片机与PC机的串口通讯设计的一个问题
1、用串口调试助手 2、用PC机通过串口控制8952让端口上的LED亮灭很简单,如只需发送0XFE内容,再让P0=SUBF就可让P0口上的一个LED灭。3、若要实现双工方式,设置SCON=0X50,也就是让REN=1即可,4、若要有语音提示,在主程序相应位置加一发音程序即可。以上希望能帮到你。
怎么将单片机收集的温度数据显示到电脑屏幕上
1,利用单片机的串口和单片机的串行接口相连,当然中然还有RS232转换电路。2,单片机编程,把想要发送的数据发送到PC上。3,PC端要显示数据,需要一个窗口,最简单是利用“串口助手”软件。4,如果不想用上述该软件,你可以用VB,VC等自己编一个上位机软件。即可显示你想要的数据。
c51语言编写,串口通讯程序,实现AT89S52单片机把一个整型数组数据,发送...
做一个整形到ASCII的转换函数。如果你要发送的数据最大值可以确定,可以根据最大值定义一个ASCII数组,数组的每一个单元存放整形数据的一位。发送前先对发送整形数组里的单元转换成ASCII数组,然后再按照通用的发送函数进行发送。void InttoChar (uint IntNumber)//--- // Name: void InttoChar (int...
VB中关于PC机与51单片机通信的一些问题
2.可以的,你所说的是PC连接多个从片的情况吧,这只要先发送一个地址给单片机,让单片机确认是自己的地址后,在回复PC自己的地址,PC自己确定没错后,在发送命令,传送数据,我这里有个我自己写的485通讯程序,调试过后,效果很好,你可以参考一下,当然,你只要求的是对指定地址发送一个数据,,可以...
51单片机与vb通过串口通信,单片机为什么只能发送0至255的数?然后怎么...
发送大数,你只能多次发送,一次只能发送一帧,而串口发送的一帧可能是7、8、9位,由你设置而定。
通过串口助手在上位机向单片机发送一个两位数,并在单片机上用LED灯将...
首先需要单片机初始化,设置好串口部分的波特率,通讯方式等,还要设置好LED灯的驱动端口为输出,根据你设计的电路设置好工作模式,如果直接驱动LED管可以用漏极输出方式;第二个函数以查询方式接收串口发来的数据并保存在变量中;第三个函数用来控制点亮指定的LED灯,这里用位运算就可以的。
如何实现(电脑)PC机与单片机的串行通信
1、电脑带有原生串口,就是主板上带有串行口,这个情况就太好办了。用“串口调试助手”测试一下就可以用VB写程序了。电脑和单片机用232芯片进行接口转换。2、电脑没有原生串口,就是主板上没有串行口,这个情况有点麻烦。要用USB转串口的模块,装好驱动后会在“设备管理器”中出现一个串口,直接当...
单片机中如何将DS18b20 测得的温度通过串口发送到上位机VB中?
你的一位十进制数据+0x30,不就变成字符的数字了吗例如:TN是十进制温度 fasong[0]=TN/10 + 0x30; fasong[1]=TN%10 + 0x30;DS18B20采集到的数据你可以在单片机中处理成16进制或字符后发送到上位机,也可以直接发到上位机 由电脑处理数据后显示,当然VB上位机对字符的处理能力强些可以追问。D...
求:VB 与VB之间使用API通信例程。
使用的每个MSComm控件都与一个串口对应。如果在应用程序中需要访问多个串口,必须使用多个MSComm控件,可以在Windows 控制面板中修改串口地址的中断地址。 MSComm 控件有很多重要的属性, CommPort 属性 : 设置并返回通讯端口号。 语法: object.CommPort[value ] (value 一整型值,说明端口号。) 说明: 在设计时,value...
PC与单片机通讯的问题 我有个疑问
485,232都是串口,用个485转232,就可以和电脑通讯了。单片机之间可以互相收发指令,你把电脑当成单片机撒,电脑装个串口工具如sscom就可以和单片机通讯了。