51单片机串口通信测试程序
unsigned char flag,a;
void delay();
void main()
{
TMOD=0x20;//设置定时器1为工作方式2
TH1=0xfa;
//TH1=256-2^0*22118400/32/12/9600
波特率为9600,晶振为22.1184Mhz
TL1=0xfa;
TR1=1;
//定时器1打开
REN=1;
//允许串行接收位。由软件置REN=1,则启动串行口接收数据
SM0=0; //选择串行口工作方式1
SM1=1;
EA=1;
//开总中断
ES=1; //开串口中断
while(1)
{
if(flag==1)
{
ES=0;
flag=0;
while(!TI);
TI=0;
ES=1;
}
}
}
void ser()
interrupt4
{
RI=0;
a=SBUF; //计算机向51发送数据
flag=1;
}
评论