如何用电脑通过串行口把单片机的数据保存起来,以便下一步处理?代码如何写?
发送单片机数据到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