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() interrupt 4
{
RI=0;
a=SBUF; //計算機向51發送數據
flag=1;
}
評論