问题出在主程序初始化
void main()
{
TMOD=0x20;
PCON=0x80;
SCON=0x50;
TL1=0xfd;
TH1=0xfd;
TR1=1;
//REN = 1;//多余了
//SM0 = 1;//多余了
//SM1 = 1;//多余了
EA = 1;
//ES = 1;//这行必须打掉,串口采用查询方式发送的
//TR1 = 1;//多余了
IT0=1;
//IT1=1;//多余了
EX0=1;
//EX1=1;//多余了
初始化这里改一下:
TMOD=0x20;
PCON=0x80;
SCON=0x50;
TL1=0xfd;
TH1=0xfd;
TR1=1;
EA = 1;
TR1 = 1;
IT0=1;
EX0=1;
串口中断如果用不上的话,关闭它
还有接收允许,也用不上,让其为0好了;
按下按键后串口发送完数据,要把串口中断标志清除