#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
void init()
{
TMOD=0x20; //设置定时器1为工作方式2,8位重装
TH1=0xfd;//
TL1=0xfd;//在波特率为9600下
EA=1; //开总中断
TR1=1;//打开定时器中断
SCON=0x50;//设置为串口工作方式1,10位数据
ES=1;//串口中断打开
}
void main()
{
init();
while(1);
}
void receive() interrupt 4
{
RI=0;//复位串口中断
P0=~SBUF;//接收数据显示在P0口
}
以上是通过串口发一个数据给单片机,然后显示在P0口LED灯上,但我用串口调试助手发送时,每次只能发一次,要想发第二次必须关掉串口,再打开串口才行,请问这是什么情况?程序哪里有问题?