#include"reg51.h"
unsigned char m,n;
void main(void)
{
EA=1;//开总开关
ES=1;//开串口中断
TMOD=0x22;//定义TM0D为00100010,为8位方式
SCON=0x50;//01010000
TH1=0xFD;//定义波特率为9600
TL1=0xFD;
TR1=1;//开定时器中断
while(1)//无限循环
{
if(m==1)//如果收到串口数据执行
{
m=0;//
ES=0;//暂时关闭串口中断
//n>>=1;
SBUF=n;//将缓冲中的数据写为n
while(!TI);//正在写入数据中
TI=0;//写入完毕后置TI为0
ES=1;//重新打开串口中断
}
}
}
void chuan(void) interrupt 4
{
while(!RI);
RI=0;
m=1;
n=SBUF;
}
我用STC89C54RD+(40针)返回的数据和发送的数据是一致的,然后把这个程序又写到STC12C2052AD(20针)中,返回的数据就不是发送的数据了,这个是怎么回事?请大家给我详细讲解一下,谢谢。