我写的 ”以2400bps从计算机发送任一字节数据,当单片机收到该数据后,。。“ 有没地方出错?

来源:百度知道 编辑:UC知道 时间:2024/06/22 06:40:31
以2400bps从计算机发送任一字节数据,当单片机收到该数据后,在此数据前加上一序号然后连同此数据一起发送至计算机,当序号超过255时归零
#include<reg52.h>
unsigned char flag,a,num,bai,shi,ge;
unsigned char code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void main()
{
num=0;
TMOD=0X20;
TH1=0Xfd;
TL1=0Xfd;

EA=1;
TR1=1;
ES=1;
REN=1;
SM0=0;
SM1=1;

while(1)
{
if(flag==1)
{ ES=0;
flag=0;
bai=num/100;
shi=num%100/10;
ge=num%10;

SBUF=table[bai];
while(!TI)
TI=0;
SBUF=table[shi];
while(!TI)
TI=0;
SBUF=table[bai];
while(!TI)
TI=0;

SBUF=a;
while(!TI);
TI=0;
ES=1;
}
}
}
void cuan() interrupt 4
{
RI=0;
P1=SBUF;
a=SBUF;
flag=

以2400bps从计算机,啥意思?
BIT(S) PER SECOND?
那个是用来形容带宽的吧,感觉
...

TH1=0Xfd;
TL1=0Xfd;

这个初值不是2400波特率,是9600的...

while(!TI) 后面要有分号。

bai 位逻辑上有错。
发送数据时sbuf=xx. xx部分逻辑有错,不该是table【】 里的内容。 table是定义的数码管显示时的编码。