#include<reg52.h>
#define UINT unsigned int
#define UCHAR unsigned char
UINT flag,i,a;
UCHAR code table[]="I get";
void delay(UINT x)
{
unsigned int i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void init(void)
{
TMOD=0x20;//定时器18位自动重装
TH1=0xfd;//波特率9600
TL1=0xfd;
TR1=1;
IE=0x90;//开中断
SM0=0;//设置寄存器SCON为方式1
SM1=1;
REN=1;
}
void send( UINT B )//发送
{
ES=0;
SBUF=B;
while(!TI);
TI=0;
ES=1;
}
void main(void)
{
init();
while(1)
{
if( flag == 1 )
{
ES=0;
for (i=0;i<6;i++)
{
SBUF=table;
while(!TI);
TI=0;
}
delay(2);
send( a );
flag=0;
}
}
}
void ser() interrupt 4
{
RI=0;
a=SBUF;
flag=1;
}
为什么只能接收到一个字符呢?请求高人指教! |