80C51单片机的串行通信问题:发送的数据在上位机上显示不一致,是为什么?

下面是我的源程序。#include<reg52.h>unsignedcharMessage[]={1,2,5,5,6,7,6,8,9,8,9};unsignedcharC... 下面是我的源程序。
#include<reg52.h>

unsigned char Message[]={1,2,5,5,6,7,6,8,9,8,9};
unsigned char Count=0;

void delay(unsigned int i)
{
unsigned char j;
for(i;i>0;i--)
for(j=0;j<200;j++)
;
}

void main(void)
{
SCON=0x50;
TMOD|=0x20;
PCON|=0x80;
TH1=0xF3;
TL1=0xF3;
TR1=1;
ES=1;
EA=1;

while(1)
{

Count=0;
while(Message[Count]!='\0')
{
SBUF=Message[Count];
while(!TI);
TI=0;
Count++;
}
delay(1000);
}
}
然后在上位机上的显示如图:

如上面所示,为什么接收的数据和原数据不一致呢?求解释??
展开
 我来答
stronger2019
2013-05-05 · 超过35用户采纳过TA的回答
知道答主
回答量:196
采纳率:0%
帮助的人:38.4万
展开全部
你用的晶振是多少的哦?应该是你的上位机和单片机的波特率不一致的哦。晶振不能是整数倍的晶振哦。
更多追问追答
追问
晶振是12MHz,上位机波特率是9600,晶振不能是整数倍的晶振是什么意思呀??不是很明白,谢谢!
追答
那肯定有错哦,不能用2的整数倍的晶振,改成11.0529这样的   0XFD
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式