#include<reg52.h>
unsigned char flag,num;
void main()
{
TMOD=0x20;//定时器1工作方式2
TH1=0xfd;
TL1=0xfd;//初值设定
SM0=0;
SM1=1;//串口工作方式设置,即SCON=0X50; 选择工作模式1使能接收,允许发送,允许接收
PCON = 0x80;//1000 0000,即SMOD=1;在串行口方式1、方式2、方式3时,波特率与SMOD有关,当SMOD=1时,波特率提高一倍。复位时,SMOD=0
//方式1的波特率 =(2^SMOD/32)·(T1溢出率)
EA=1;//开总中断
TR1=1;//打开定时器1中断
ES=1;//打开串口中断
TR1=1;//启动定时器1
REN=1;//串口允许接收
SM0=0;
SM1=1;//串口工作方式设置
while(1)
{
/*if(RI==1)
{
RI=0;
P0=SBUF;
}*/
if(flag==1)//收到数据
{
ES=0;
flag=0;
SBUF='1';//发送数据
while(!TI);
TI=0;
/*SBUF='2' ;//发送数据
while(!TI);
TI=0;
SBUF='8' ;//发送数据
while(!TI);
TI=0;*/
ES=1;
}
}
}
void ser() interrupt 4
{
RI=0;
P0=SBUF;
num=SBUF;//接受数据
flag=1;
}