[串口通信]怎么生成的序号是乱码
单片机吧
全部回复
仅看楼主
level 2
叶子涵i 楼主

题目是这样的:以
1200bps
从计算机发送任一字节数据,当单片机收到该数据后,在此数据前加上一序号然后连同此数据一起发送至计算机,当序号超过
255
时归零。
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char a,n,m,flag;
void init() //初始化与串口相关寄存器
{
TMOD=0X20; //定时器初始化
TL1=0xe6;
TH1=0Xe6;
TR1=1;
SM0=0; //串口初始化
SM1=1;
REN=1;
EA=1; //中断初始化
ES=1;
}
void main()
{
init();
while(1)
{
if(flag==1)
{
ES=0;//串口中断
n++;
if(n==255)
n=0;
SBUF=n;
while(!TI);
TI=0;
SBUF=a;
while(!TI);
TI=0;
flag=0;
ES=1;
}
}
}
void ser()interrupt 4//串口中断函数
{
RI=0;
a=SBUF;
flag=1;
}
2014年05月31日 07点05分 1
level 2
叶子涵i 楼主
求不沉啊啊啊啊~~
2014年05月31日 07点05分 2
level 11
波特率是不是一致?只发送简单的字符能不能行?慢慢来,不要急躁
2014年05月31日 08点05分 3
1