//在上位机用串口调试助手发送一个字符X,单片机收到字符后返回给上位机“I get X”,串口波特率设为9600bps。
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar flag, a, i;
uchar code table[] = "I get";
void init()
{
TMOD = 0x20; //设定T1定时器工作方式2
TH1 = 0xfd; //T1定时器装初值
TL1 = 0xfd; //T1定时器装初值
TR1 = 1; //启动T1定时器
REN = 1; //允许串口接收
SM0 = 0; //设定串口工作方式1
SM1 = 1; //设定串口工作方式1
EA = 1; //开总中断
ES = 1; //开串口中断
}
void main()
{
init();
while (1)
{
if (flag == 1)
{
ES = 0;
for (i = 0; i < 6; i++)
{
SBUF = table[i];
while (!TI);
TI = 0;
}
SBUF = a;
while (!TI);
TI = 0;
ES = 1;
flag = 0;
}
}
}
void ser() interrupt 4
{
RI = 0;
a = SBUF;
flag = 1;
}