用AT89S52单片机实现温度采集,如何将温度值通过串口发送给上位机?怎么才能成功的发送小数?只需要方法

如题所述

第1个回答  2011-05-17
用MAX232芯片实现单片机与PC机的通讯,发送的数据可以是温度值的10倍,然后接收时再除以10,这样就可以发送一位小数了,如果有多位小数,可以参照此办法。追问

谢谢您了!我还想问一下,发送1 为什么用串口调试工具调试时接收区会出现81而不是1

追答

你检查一下你的奇偶校验位、数据位、停止位的个数还有波特率是不是都设置的一致,如果还是这样,我建议你发送完1以后延时一会。

第2个回答  2011-05-17
你发送时候最好在发送的位上加上48,这样转换成ACSII码,因为电脑只识别这个啊~!必须给在程序转换一下我以前做时候就是传回来不对,最后这样做就好啦~!还有就是晶振必须给选用11.0592的,别的频率的不行的~!波特率不准的~!
第3个回答  2011-05-17
将小数也作1 字节发送。收到的数据不符,是不是波特率没设好?本回答被提问者和网友采纳

串口调试工具实现效果
当下位机启动并复位后,数码管显示出数字0。通过串口与电脑相连,我们启动上位机程序,并配置了串口参数,主要是针对char类型的整数。此时,我们从上位机发送数据,单片机接收到后,数码管会实时显示接收到的数值,并通过串口向上位机回馈这个数字,然后等待下一轮数据的传输。在上位机的设计中,我们实现了...

51单片机串行口发送数据到上位机(1)
51单片机的串行口结构主要包括两个独立的数据缓冲寄存器(SBUF)、发送控制器、接受控制器、输入移位寄存器以及控制门电路。发送数据时,数据首先被写入SBUF寄存器,随后通过转换为串行数据并加上起始位和停止位后,通过TXD引脚发送出去。接收数据时,RXD引脚接收到的信号通过移位寄存器被逐位读入SBUF,最终在读...

怎样把单片机得到的温度数据通过RS232传输到电脑上显示
1,利用单片机的串口和单片机的串行接口相连,当然中然还有RS232转换电路。2,单片机编程,把想要发送的数据发送到PC上。3,PC端要显示数据,需要一个窗口,最简单是利用“串口助手”软件。4,如果不想用上述该软件,你可以用VB,VC等自己编一个上位机软件。即可显示你想要的数据。参考资料:百度一下 ...

单片机采集捕捉脉冲并上传串口
二、由于要不断采集,并且发送,如果合并8位作一个字符发送,以51单片机串口模式1发送,则至少要在0.02ms*8=0.16ms内发送一个字符,中间还要有计算开销等,所以串口波特率建议为标准115200。但是由于有特殊间隔字符标志,除非这个间隔前后的数据位为8的整数倍,否则,只能一个数据位一个数据位传输(转...

STC52单片机与PC串口通信,我需要单片机主动向上位机发数据。
程序没有问题,串口能够接收到 间隔连续的 adbs 。是否 是串口调试 程序 设置问题。

Qt串口编程,上位机如果要同时进行速度温度测量,需要两个串口还是一个...
1、PC电脑的串口可以同时存在很多个(几十个)。2、数据采集,如果你的速度和温度能在一个采集模块或者通过单片机什么的进行采集,然后通过一个串口进行数据上报,那么此时你就可以只用一个串口就连接上位机。3、如果你的速度和温度是2个采集模块,那么用2个串口就行了,Qt里面仅仅就是多开一个串口采集...

51单片机怎么同时开启两个中断的问题?
中断使能,中断允许即此中断已开启。但CPU不可以同时执行两个中断。所以中断分优先级。要优先于高级中断,再开低级中断。当系统有个定时中断。比如定时采集温度值,然后通过串口发送到上位机。这样程序里要用到定时中断和串口中断。处理了定时中断后,再处理的串口中断。

设置一个按键,功能是切换任务 任务1,8个发光二极管每隔1秒依次点亮_百...
LED点阵显示屏摘要 LED大屏幕显示系统,以AT89S52单片机为核心,由键盘显示、温度采集、串口通信、LED大屏幕显示等功能模块组成。本系统的灰阶控制功能由软件来实现,吸收了硬件软件化的思想,本系统不仅可以实现题目要求的基本功能,同时发挥部分也得到完全的实现,最主要的是LED显示屏的内容可以通过PC机进行实时修改,而且有一定...

关于单片机串口同时收发数据的时序问题
当然下位机的发送也可以使用缓冲区来保存待发送的数据。使用缓冲区的好处就是能保证不发送遗漏。比如上位机可以一次发送多个命令给下位机,这样就是在接收缓冲区中形成命令队列,即“排队”,下位机逐一处理队列中的每一条命令,然后将对应结果送入发送缓冲区中“排队”,再有串口发送中断逐一将其中的...

如何将单片机发送给上位机的十六进制数转换成十进制数并显示
这个应该从上位机的程序着手,因为即使你将下位机编写好程序,发送上去的看着是处理后的十进制数,最后上位机读出的还会是十六进制数。你可以直接发送十进制的字符串,比如“23”这样,上位机就能读到了。不过这样的用法不能用于控制,当然你仅仅是为了显示出来,这样就可以了。

相似回答