PC通过串口助手向单片机发送aa 01 02 dd指令,如果单片机收到第一个字节为aa后就原样返回四个字节的数据
#include<reg52.h>
unsigned char flag;
unsigned char ch[4];
void init()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
SCON=0x50;
PCON=0x00;
EA=1;
ES=1;
PS=1;
TR1=1;
}
void rec() interrupt 4
{
unsigned char i;
if(RI)
{
RI=0;
ch[i]=SBUF;
i++;
if((i==4)&&(ch[0]==0xaa))
{
flag=1;
i=0;
}
}
}
void send(unsigned char a)
{
SBUF=a;
while(TI==0);
TI=0;
}
void sendN()
{
unsigned char j;
ES=0;
for(j=0;j<10;j++)
{
send(ch[j]);
}
ES=1;
}
void main()
{
init();
while(1)
{
if(flag==1)
{
sendN();
flag=0;
}
}
}
这是我 写的程序,可是发送指令后,接收区 没反应。不知道怎么回事,请指点一下 |