如何用电脑通过串行口把单片机的数据保存起来,以便下一步处理?代码如何写?

其实我要的是电脑端的程序,单片机的程序我已经搞定的。就是要上位机的解决方案... 其实我要的是电脑端的程序,单片机的程序我已经搞定的。就是要上位机的解决方案 展开
 我来答
Zaxife
2011-01-04 · TA获得超过1254个赞
知道小有建树答主
回答量:1138
采纳率:0%
帮助的人:424万
展开全部

发送单片机数据到PC,首先要编写单片机程序,再编写PC端程序接收数据保存就可以了。

下面只列出单片机发送数据到串辩册口的程序,PC端可以用串口调试软件测试,数据格式是ASCII码格式。

已经ISIS 7.7sp2 Professional和虚拟串口软件仿真测试通过了。

重新优化了代码:

/*单片机发送P1端口值到串口*/

/*数据格式为:Now P1 Status:[00000000]*/

#include 绝液<reg51.h>

#define uchar unsigned char

#define uint unsigned int

char str[] = "Now P1 Status:[00000000]\r";

sbit P10=P1^0;

sbit P11=P1^1;

sbit P12=P1^2;

sbit 携宏宏P13=P1^3;

sbit P14=P1^4;

sbit P15=P1^5;

sbit P16=P1^6;

sbit P17=P1^7;

main()

{

 uint j;

 //char k;

 uchar i;

 TMOD=0x20;     //定时器1方式2

 TH1=0xfd;     //波特率9600 晶振11.0592MHz

 TL1=0xfd;     

 SCON=0x50;     

 PCON &= 0xef;

 TR1=1;

 IE=0x00;

 while(1)

 { 

  //k=~P1 & 0xF0 ;  //替换P1高位显示   

  //k=k>>4; 

  //if (k < 10)

  //k=k+48;

  //else

  //k=k+55; 

  //str[17]=k;

  //k=~P1 & 0x0F ;    //替换P1低位显示

  //if (k < 10)

  //k=k+48;

  //else

  //k=k+55;

  //str[18]=k;

  str[15]=P17|48;     

  str[16]=P16|48;     

  str[17]=P15|48;     

  str[18]=P14|48;     

  str[19]=P13|48;     

  str[20]=P12|48;     

  str[21]=P11|48;     

  str[22]=P10|48;

       

  i=0;

  while(str[i]!='\0')//发送字符串

  {

  SBUF=str[i];

  while(!TI);

  TI=0;

  i++;

  }

  for(j=0;j<50000;j++);

 }

}

仿真图见http://hiphotos.baidu.com/zaxife/pic/item/f77a5a11c9ff624e203f2e6f.jpg

jinfahua
2011-01-04 · TA获得超过590个赞
知道小有建树答主
回答量:285
采纳率:0%
帮助的人:231万
展开全部
你是要祥纤编写PC程序,接收单片机数谨铅仿据并保存?网上有现成的串口调试助手,自己编也不难。留下邮箱,我发给你。激念
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
728028dawei
2011-01-04 · 超过51用户采纳过TA的回答
知道答主
回答量:253
采纳率:0%
帮助的人:141万
展开全部
那个蛮复杂的!手机不好输啊!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式